У меня есть код для этой гостевой книги из учебника, но я решил добавить к ней некоторую безопасность и проверку ip. Я изучаю php, делая это. Проблема, с которой я столкнулась, заключается в том, что инструкции «If else» ничего не проверяют и просто добавляют в базу данных. Вот код:Гостевая книга, добавляющая запись без полей проверки
if ($_POST['postbtn']) {
$name = strip_tags($_POST['name']);
$email = strip_tags($_POST['email']);
$message = strip_tags($_POST['message']);
$answer = 'abcdefg';
$response = strtolower(strip_tags($_POST['answer']));
// Check if all fields were filled out
if ($name && $email && $message && $response) {
$time = date("h:i A");
$date = date("m/d/Y");
$ip = $_SERVER['REMOTE_ADDR'];
}
else {
echo "<p style='color:red;'>You didn't fill out all of the fields.</p>";
}
// Check if security answer was correct
if ($response === $answer) {
echo "<p style='color:red;'>Security answer was incorrect.</p>";
} else {
// Check ip address
$checkIP = mysql_query("SELECT ip FROM guestbook WHERE ip = '$ip'");
}
if (mysql_num_rows($checkIP) > 0) {
echo "<p style='color:red;'>You already signed.</p>";
} else {
// add to the database
mysql_query("INSERT INTO guestbook VALUES (
'', '$name', '$email', '$message', '$time', '$date', '$ip'
)");
// refresh page
header('Location: http://www.example.com/guestbook');
}
}
Первый - отступы ваш код. –
Обучение сэр, обучение. –
Если isset будет лучше здесь. В ходе проверки вы фактически проверяете, созданы ли переменные, а не пустые. В вашем чеке для строк num вы должны добавить это в оператор else, поэтому он должен быть другим, если .. Я нахожусь на своем планшете, но я увижу, могу ли я переписать код, когда я доберусь до компьютера – Dorvalla