Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: условие "только после нажатия кнопки записывать в БД"
 
 автор: Dizels   (19.10.2007 в 17:07)   письмо автору
 
 

Есть файл index.php, который вызывается из персонального меню пользователя на сайте, вот он:

<?php 
include("../users/index.php");

// Устанавливаем соединение с БД
require_once("../admin/config.php");

// Проверяем, не вводил ли информацию о себе пользователь ранее.

$query "SELECT * FROM user_info WHERE id_users = '$id'";
$usr mysql_query($query);
$info mysql_fetch_array($usr);


$login=$info['login'];
$pol=$info['pol'];
$bithday=$info['bithday'];
$dev_surname=$info['dev_surname'];
$otchestvo=$info['otchestvo'];
$bithday_sity=$info['bithday_sity'];
$fam_statys=$info['fam_statys'];
$dopolnitelno=$info['dopolnitelno'];

?>

<form method="post">
<table border="0">
<tr>
<td colspan="2"><b>Персональные данные:</b></td>
</tr>

<tr>
<td>Логин:</td>
<td><input type="text" name="login" size="30" value= <?php echo "$login"?> ></td>
</tr>

<tr>
<td>Фамилия:</td>
<td><input type="text" name="surname" size="30" value= <?php echo "$surname"?> ></td>
</tr>

<tr>
<td>Имя:</td>
<td><input type="text" name="name" size="30" value= <?php echo "$name"?> ></td>
</tr>

<tr>
<td>Пол:</td>
<td>
<input type="radio" name="pol" onChange="dfamilia(1, this)">Муж   
<input type="radio" name="pol" onChange="dfamilia(2, this)" checked>Жен 
</td>
</tr>

<script> 
function dfamilia(which, obj) 

  obj.form.dsurname.disabled = !( 
    (which==1 && !obj.checked) || 
    (which==2 && obj.checked) 
  ); 

</script>

<tr>
  <td>Девичья фамилия:</td>
  <td><input type="text" name="dsurname" size="30" value= <?php echo "$dev_surname"?> ></td>
</tr>

<tr>
<td>Отчество:</td>
<td><input type="text" name="otchestvo" size="30" value= <?php echo "$otchestvo"?> ></td>
<tr>

<tr>
<td>Дата рождения :</td>
<td>
<?php
     
// Выпадающий список для дня
     
echo "<select class=input type=text name='date_day'>";
     for(
$i 1$i <= 31$i++)
     {
       if(
$date_day == $i$temp "selected";
       else 
$temp "";
       echo 
"<option value=$i $temp>".sprintf("%02d"$i);
     }
     echo 
"</select>";
     
// Выпадающий список для месяца
?>

<select name =date_month>
<option value=1>Январь (01)</option>
<option value=2>Февраль (02)</option>
<option value=3>Март (03)</option>
<option value=4>Апрель (04)</option>
<option value=5>Май (05)</option>
<option value=6>Июнь (06)</option>
<option value=7>Июль (07)</option>
<option value=8>Август (08)</option>
<option value=9>Сентябрь (09)</option>
<option value=10>Октябрь (10)</option>
<option value=11>Ноябрь (11)</option>
<option value=12>Декабрь (12)</option>

<?php
     
// Выпадающий список для года
     
echo "<select class=input type=text name='date_year'>";
     for(
$i 1940$i <= 2010$i++)
     {
       if(
$date_year == $i$temp "selected";
       else 
$temp "";
       echo 
"<option value=$i $temp>$i";
     }
     echo 
"</select><br>";
?>
</td>
</tr>

<tr>
<td>Место рождения:</td>
<td><input type="text" name="bithday_sity" size="30" value= <?php echo "$bithday_sity"?> ></td>
<tr>

<tr>
<td>Семейное положение:</td>
<td>
<select name="fam_statys">
<option value="1">холост / не замужем</option>
<option value="2">женат / за мужем</option>
<option value="3">вдовец / вдова</option>
<option value="4">разведен / разведена</option>
</select>
</td>
</tr>



<tr>
<td>Дополнительно:</td>
<td><textarea name=dopolnitelno rows=10 cols=40 value= <?php echo "$dopolnitelno"?> ></textarea></td>
</tr>

<tr>
<td colspan="2"><input type="submit" value="Сохранить"></td>
</tr>
</table>
</form>

<?php
// Обработчик php формы.


///////////////////////////////////////////
// Получаем данные
///////////////////////////////////////////

$login trim($_POST['login']); 
$surname trim($_POST['surname']);
$name trim($_POST['name']); 
$pol $_POST['pol']; 
$dsurname trim($_POST['dsurname']); 
$otchestvo trim($_POST['otchestvo']); 
$date_day $_POST['date_day']; 
$date_month $_POST['date_month']; 
$date_year $_POST['date_year']; 

$bithday $date_year."-".$date_month."-".$date_day;

$bithday_sity trim($_POST['bithday_sity']);
$fam_statys trim($_POST['fam_statys']); 
$dopolnitelno trim($_POST['dopolnitelno']); 


///////////////////////////////////////////
// Блок проверки правильности ввода данных
///////////////////////////////////////////

// Если на сервере не включены "магические кавычки",
// обрабатываем введенные пользователем данные
// функцией mysql_escape_string()

if (!get_magic_quotes_gpc())
{
    
$login mysql_escape_string($login);
    
$surname mysql_escape_string($surname);
    
$dsurname mysql_escape_string($dsurname);
    
$otchestvo mysql_escape_string($otchestvo);
    
$bithday_sity mysql_escape_string($bithday_sity);
    
$dopolnitelno mysql_escape_string($dopolnitelno);
}

////////////////////////////////////////////////
// Блок внесения информации о пользователе
////////////////////////////////////////////////


echo "$id<br>$login<br>$pol<br>$bithday<br>$dsurname<br>$otchestvo<br>$bithday_sity<br>$fam_statys<br>$dopolnitelno";

// Подключаемся к БД

require_once("../admin/config.php");

// Формируем и выполняем SQL-запрос на
// добавление информации о пользователе

$query "INSERT INTO user_info
    VALUES(    
$id,
        '
$login',
        '
$pol',
        '
$bithday',
        '
$dsurname',
        '
$otchestvo',
        '
$bithday_sity',
        '
$fam_statys',
        '
$dopolnitelno')";

if(
mysql_query($query))
{
  echo 
"<HTML><HEAD>
         <META HTTP-EQUIV='Refresh'
        CONTENT='0; URL=../users/index.php'>
        </HEAD></HTML>"
;
} else exit(
" Ошибка при добавлении информации о пользователе -".mysql_error());
?>

Так вот, выходит так, что при нажатии на сслыку из меню, которая ведет к выполнению даного скрипта происходит запись в БД и обновление. А необходимо, чтобы данные записывали только после того, как нажималась кнопка Сохранить. Поясните, что не так в коде?

   
 
 автор: sim5   (19.10.2007 в 17:16)   письмо автору
 
   для: Dizels   (19.10.2007 в 17:07)
 

Какого меню не понятно, но если есть ссылка в меню на эту страницу, то так и должно происходить. Измените у SUBMIT


<input type="submit" name="sender" value="Сохранить">

И перед записью в базу проверяйте:

<? if (isset($_POST['sender'])) { //далее запись

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования