Но главное, что не умеют роботы - разгадывать загадки и отвечать на вопросы человека :)
Именно такой пример защитника форм от спам-ботов я и хочу сегодня показать.
Для начала нужно создать простую форму и поле с именем proverka.
<form method="POST" action="page.php" >
<input style="width:90%"name="ty" placeholder="как тебя зовут?"id="name1" type="text" /><br />
<br><br>Какие ты знаешь числа до десяти? (проверка на бота)
<br><input style="width:60%"name="proverka" style="width:90%" placeholder="например: 8" type="text" /><br ><br >
<input style="width:90%"type = 'submit' name = 'submit' value= 'готово!' class="button" />
</form>
После того как посетитель сайта нажмет кнопку ГОТОВО. Будет обрабатываться следующий запрос:
0. Присваиваем переменные отправленным данным из формы
1. идет подключение к БД.
2. идет обработка на правильность введенных данных (проверка на число).
Если число введено неверно, то выйдет надпись с просьбой повторить ввод.
Если число меньше 10, то введенные в форму данные (а именно поле name1, где пользователь вводил свое имя) будет отправленно в базу данных.
<?php
$n = $_POST['name1'];
$proverka = $_POST['proverka'];
//присваивание переменных отправленным данным из формы, методом POST
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "";
// подключение к бд
$conn = mysqli_connect($servername, $username, $password, $dbname);
// Check connection
if (!$conn) {
die("Ошибка: " . mysqli_connect_error());
}
$sql = ("INSERT INTO table (name) VALUES ('$n')"); // $n - двнные из поля name1, где вводится имя. $proverka отправлять в базу данных не нужно.
//наало проверки на число начинается тут
if ($proverka > "10"){ //вот сам код проверки. если число больше десяти, то выводится ошибка.
echo "число больше десяти. ошибочка. повтори опять";
} elseif (mysqli_query($conn, $sql)) //если данные ведены верно, то идет подклюение к бд и отпрвка данных, через mysqli .
{
echo "<font color='green'>Ваше сообщение добавлено :)</font><br>";
}
//конец проверки заканчивается именно тут
else {
echo "Ошибка: Попробуй ещё раз" . mysqli_error($conn);
}
mysqli_close($conn);
?>
Вот простой пример проверки. Если вам не нравиться число десять, то можете подставить другое число. Можете на базе этого кода даже создать проверку на кодовое слово. Например: "ехал грека через реку, видит грека в реке ...." и пропущенное слово будет ключом, которое должен будет ввести пользователь.