Мой код вставляет пустую запись в таблицу MySQL «активировать» вместо получения данных activate.html. Он вызывает activate.php, который я удалил. Я также должен добавить, что я новичок в php, но я знаю об инъекциях. Первоначально у меня были некоторые проблемы с безопасностью, но, как я уже сказал, разделил код, чтобы добраться до корня проблемы. Кроме того, когда я повторяю поля формы, они заполняются, а не в таблицу MySql. Любые идеи почему? Заранее спасибо.Php вставляет пустые данные в таблицу
<?php
$host = "host"; // Host name
$username = "user"; // Mysql username
$password = "pass"; // Mysql password
$db_name = "db"; // Database name
$tbl_name = "activate"; // Table name
// Connect to server and select database.
mysql_connect("$host", "$username", "$password") or die("cannot connect");
mysql_select_db("$db_name") or die("cannot select DB");
// Get values from form
if (isset($_POST['submit'])) {
$esn = mysql_real_escape_string($_POST['esn']);
$esnverify = mysql_real_escape_string($_POST['esnverify']);
$zip = mysql_real_escape_string($_POST['zip']);
$comments = mysql_real_escape_string($_POST['comments']);
}
// Insert data into mysql
$sql = "INSERT INTO $tbl_name (esn, esnverify, zip, comments) VALUES ('$esn', '$esnverify', '$zip', '$comments')";
$result = mysql_query($sql);
// if successfully insert data into database, displays message "Successful".
if ($result) {
echo "Successful";
echo "<br />";
echo $_POST['esn'];
echo "<br />";
echo $_POST['esnverify'];
echo "<br />";
echo $_POST['zip'];
echo "<br />";
echo $_POST['comments'];
echo "<br />";
echo "<a href='thankyou.html'>Back to main page</a>";
}
else {
echo "ERROR";
}
?>
<?php
// close connection
mysql_close();
?>
Activate.html
<form method="post" action="activate.php">
<p><b>ESN:</b> <input type="text" id="esn" name="esn" maxlength="50"><br/>
<b>Confirm ESN:</b> <input type="text" name="esnverify" id="esnverify" maxlength="50"><br/>
<b>Zip:</b> <input type="text" name="zip" id="zip" maxlength="5"><br/>
<p>Your comments:<br />
<textarea name="comments" rows="10" cols="40" id="comments" maxlength="500"></textarea></p>
<p><input type="submit" value="Send it!"></p></form>
С какой страницы вы получаете переменные '$ _POST'? – Kevin
Поскольку ваша кнопка отправки не имеет атрибута 'name', это условие' if (isset ($ _ POST ['submit'])) 'никогда не будет выполнено. Он должен выглядеть как ''. – Lion
Спасибо, Лев! в сочетании с перемещением моих фигурных скобок исправлено !! Еще раз спасибо, я очень благодарен за помощь. – JuStin