Ошибка при отправке формы - PullRequest
0 голосов
/ 16 декабря 2011

Почему я не могу вставить в свою базу данных?Это мой код

<?php

$name = $_POST['name'];
$email = $_POST['email'];
$bdate = $_POST['bdate'];
$id = $_POST['id'];

if (!empty($name) && !empty($email)){
    mysql_query("insert into customer(id,name,email,bdate) values($id,'$name','$email','$bdate')");
}
else {
    echo "Please fill <strong>name</strong> and <strong>e-mail</strong> fields!";
}

?>

Моя форма

<form method="post" action="new_customer.php">
    ID: <input type="text" name="id" size="5" value="<?php echo $new_id; ?>" disabled="disabled" /><br />
    Name: <input type="text" name="name" size="50" /><br />
    E-mail: <input type="text" name="email" size="30" /><br />
    Birth Date: <input type="text" name="bdate" size="10" /><br /><br />
    <input type="submit" value="Save" />
</form>

Var $ new_id заполняется этим запросом

SELECT (Max(id) + 1) as new_id FROM customer

Но когда я отправляю форму,я получаю ошибку:

Notice: Undefined index: id in F:\UniServer\www\admin\customer.php on line 6

, а затем mysql error

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ' '')' at line 1

Я думаю, что первая ошибка вызывает secund, верно?

Ответы [ 4 ]

2 голосов
/ 16 декабря 2011

Поскольку отключенные поля отсутствуют в массиве $_POST.
В вашем случае сделайте id поле автоинкрементации в базе данных и сделайте запрос без него:

mysql_query("INSERT INTO customer(name, email, bdate) values('$name', '$email', '$bdate')"); 

Также ваш код подвергается SQL-инъекции - используйте mysql_real_escape_string перед запросом:

$name = mysql_real_escape_string($_POST['name']);
0 голосов
/ 16 декабря 2011

Вместо disabled="disabled" вы хотите использовать readonly="readonly". Это предотвращает редактирование поля, но значение все еще может быть прочитано программно (что не относится к disabled).

0 голосов
/ 16 декабря 2011

Пожалуйста, предоставьте код mysql, который выбирает записи, так как может быть ошибка при назначении значения id таблицы для значения php.

0 голосов
/ 16 декабря 2011

удалить "disabled =" disabled "" ...

Это остановит форму для отправки поля в ваш PHP.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...