[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Insert into, запутался
d'Dos
if ($submit)	{
$db = mysql_connect("localhost","name","password");
mysql_select_db("testinfo");
$sql = "INSERT INTO 'people' ('name', 'birth') VALUES ('$name','$birth'";
$result = mysql_query($sql);
echo "Спасибо, ваши данные внесены в базу.\n";
} else {

?>
Заполните, пожалуйста, небольшую форму.
<form action="<?php echo $PHP_SELF?>" method="POST">
Имя: <input type="text" name="name"><br>
Дата рождения (дд.мм.гггг): <input type="text" name="birth""><br>
<input type="
submit" name="submit" value="Записаться">
</form>

<?php
}
?>

Думаю, идея понятна, долго пытался исправить сам, в конце концов запутался окончательно.
После ввода в форму и нажатия кнопки - ничего не происходит.
вообще сделал по примеру отсюда
Цитата
http://www.cap-design.ru/php/59.htm
, видимо зря.
Объясните, пожалуйста, с описанием ошибки, чтоб у меня мозг чуть вырос=)



Спустя 8 минут, 27 секунд (11.07.2011 - 19:57) ИНСИ написал(а):
d'Dos даааа.

1. Название полей и таблиц надо обрамлять апострафами :) а не одинарными ковычками
2. С формы отправляются не переменные, а $_POST в котором хранятся все твои поля.

Как пример смотри и изучай код:
<?php
if(isset($_POST['submit'])) {
$db = mysql_connect("localhost","name","password");
mysql_select_db("testinfo");

mysql_query("
INSERT
INTO `people`(`name`,`birth`)
VALUES('
{$_POST['name']}','{$_POST['birth']}')
"
) or die(mysql_error());

echo "Спасибо, ваши данные внесены в базу.\n";
} else {

?>
Заполните, пожалуйста, небольшую форму.
<form action="" method="POST">
Имя: <input type="text" name="name"><br>
Дата рождения (дд.мм.гггг): <input type="text" name="birth"><br>
<input
type="submit" name="submit" value="Записаться">
</form>
<?php
} ?>


P.S. В плане безопасности, данный код имеет ОГРОМНЫЕ дыры :) Но это уже ты сам ...

Спустя 1 минута, 19 секунд (11.07.2011 - 19:58) Игорь_Vasinsky написал(а):
if ($submit)

замени на
if (isset($submit)) //если нажата кнопка name=submit

определи переменный из формы $name и $birdth - тернарным оператором (в моём журнале)
$name = isset($_POST['name']) ? $_POST['name'] : null;
$name = isset($_POST['birth']) ? $_POST['birth'] : null;
потом
$sql = "INSERT INTO 'people' ('name', 'birth') VALUES ('$name','$birth'";
на
$sql = "INSERT INTO `people` (`name`, `birth`) VALUES ('".$name."','"$birth."')"; //про это в подписиу меня про SQL


конструкцию or die(mysql_error()); - удобно использовать при отладке - для пользователей же совершенно не нужно показывать ошибки. (проэто в моём журнале.)

action="" - указать допустимо пустой - т.к. обработчик в том же файле,что и форма

Спустя 4 минуты, 37 секунд (11.07.2011 - 20:02) d'Dos написал(а):
Ок, спасибо большое=)
Дальше буду думать про безопасность=)

Спустя 11 минут, 34 секунды (11.07.2011 - 20:14) Игорь_Vasinsky написал(а):
ну тут же ддостаточно регулярки напроверку этих 2 полей прогнать.

Спустя 43 минуты, 35 секунд (11.07.2011 - 20:58) ИНСИ написал(а):
Игорь_Vasinsky интересно, чем твой вариант от моего отличается?
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.