@Pride_Winner

Почему происходит добавление (пустых) строк в таблицу mysql при загрузке страницы с формами?

Изучаю добавление данных через формы, столкнулся с проблемой.
Открываю форму add.php, сразу выполняется код, выводится "данные добавлены" и вносятся пустые строки в таблицу. Подскажите в чем ошибся (я так понимаю код не должен выполняться пока не нажму кнопку добавить?)

add.php

<?php
include ('connect.php');

$fio = $_POST['fio'];
$grup = $_POST['grup'];
$namenum = $_POST['namenum'];
$poz = $_POST['poz'];
$school = $_POST['school'];
$poditel = $_POST['poditel'];
$parent = $_POST['parent'];
$tel = $_POST['tel'];
$sex = $_POST['sex'];

$sql = 'INSERT INTO student(fio, grup, namenum, poz, school, poditel, parent, tel, sex) 
VALUES("'.$fio.'", "'.$grup.'", "'.$namenum.'", "'.$poz.'", "'.$school.'", "'.$poditel.'", "'.$parent.'", "'.$tel.'", "'.$sex.'")';

if(!mysql_query($sql))
{echo '<center><p><b>Ошибка при добавлении данных!</b></p></center>';} 
else 
{echo '<center><p><b>Данные добавлены!</b></p></center>';}
?>

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title>Страница управления</title>
</head>
<body>

<form method='post' action='/add.php'>

ФИО: <br><input name="fio" type="text"><br>
Группа: <br><input name="grup" type="text"><br>
Поименый номер: <br><input name="namenum" type="text"><br>
Приказ о зачисление: <br><input name="poz" type="text"><br>
Школа: <br><input name="school" type="text"><br>
Законные представители: <br><input name="poditel" type="text"><br>
Зак пред 2: <br><input name="parent" type="text"><br>
Тел: <br><input name="tel" type="text"><br>
Общежитие: <br><input name="sex" type="text"><br>

<input type='submit' value='Добавить запись' />

</body>
</html>
  • Вопрос задан
  • 4666 просмотров
Решения вопроса 1
и еще, не забудьте предусмотреть защиту от повторного получения тех же данных ( пользователь нажал на кнопку "назад" в браузере, или просто обновил страницу).
обычно это решают либо редиректом куда либо(хоть на ту же самую страницу), после получения данных, либо добавлением скрытого поля и проверкой его значения.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 3
BuriK666
@BuriK666
Компьютерный псих
запихните весь PHP код в if ($_SERVER['REQUEST_METHOD'] == "POST" ){
Ответ написан
Комментировать
@barsukoff
или просто if ($_POST) {}
Ответ написан
Комментировать
вынести код добавления записи в базу данных в функцию, и как сказали выше:
if ($_POST) { setNewStudent();}
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы