| |
|
|
| | Есть файл 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());
?>
|
Так вот, выходит так, что при нажатии на сслыку из меню, которая ведет к выполнению даного скрипта происходит запись в БД и обновление. А необходимо, чтобы данные записывали только после того, как нажималась кнопка Сохранить. Поясните, что не так в коде? | |
| |
|
|
| |
|
|
| |
для: Dizels
(19.10.2007 в 17:07)
| | | Какого меню не понятно, но если есть ссылка в меню на эту страницу, то так и должно происходить. Измените у SUBMIT
<input type="submit" name="sender" value="Сохранить">
|
И перед записью в базу проверяйте:
<? if (isset($_POST['sender'])) { //далее запись
|
| |
| |
|
|