Ребят помогите пожалуйста написать условие проверки капчи, не пойму как правильно написать. У меня данные с формы должны отправялтьсяя методом POST в файл insert.php , все нормально отправляется, файл captcha.php рисует защитный код, но когда я ввожу провверочные данные , хоть правильно хоть неправильно , все равно данныех с формы записываются в БД. Мне нужно чтоб выдавало ошибку КАПЧИ. и прерывало выполнение, до тех пор пока не будет введён правильный проверочный код.
index.php
<form action="/data/insert.php" method="POST" id="guest-form" name="reg">
<input id="username" type="text" name="name" placeholder="Username">
<input id="email" type="text" name="email" placeholder="E-mail">
<textarea id="message" type="text" name="text" placeholder="Your message"></textarea>
<img src="data/captcha.php" alt="Картинка" /><br />
<input id ="captcha" type="text" name="captcha" placeholder="Verify code" /><br />
<input id="submit" class="btn btn-default" type="button" value="Submit">
</form>
Ajax
$(document).ready(function() {
$('#submit').click(function() {
var username = $('#username').val();
var email = $('#email').val();
var message = $('#message').val();
var captcha = $('#captcha').val();
if(username === ''){
alert('Please input data in all fields');
}
else {
$.ajax({
type: "POST",
cache: false,
url: '/data/insert.php',
data: {username: username, email: email, message: message, captcha: captcha},
success: function(data) {
}
});
}
});
});
Insert.php обработчик
require_once 'db.php';
session_start();
if (isset($_SESSION["captcha"]) && $_SESSION["captcha"]===$_POST["captcha"]){
dataInsert();
}
else {
echo 'error captcha';
}
unset($_SESSION["captcha"]);
function dataInsert(){
if (isset($_POST['username']) && isset($_POST['email']) && isset($_POST['message'])){
$username = $_POST['username'];
$email = $_POST['email'];
$message = $_POST['message'];
$db_host = "localhost";
$db_user = "alekspvn"; // Логин БД
$db_password = "123"; // Пароль БД
$db_table = "book"; // Имя Таблицы БД
$connect_db=mysql_connect(HOST, MYSQL_USER, MYSQL_PASS)
or die("No connection with SQL");
mysql_select_db("guests_db",$connect_db);
mysql_query("SET NAMES 'utf8'",$connect_db);
$result = mysql_query ("INSERT INTO ".$db_table." (username,email,message) VALUES ('$username','$email','$message')");
if ($result = 'true'){
echo "Информация занесена в базу данных";
}else{
echo "Информация не занесена в базу данных";
}
}
}
print_r ($_SESSION["captcha"]);
Переменная в которой формируется проверочный код $_SESSION["captcha"] и файл capcha.php у меня нигде не подключен в индексе указан путь для рисования изобрадения. Может стоит его в обработчике подключить? или эта переменная с проверочным кодом считается глобальной?
Как развивать веб-проекты в 2026 году: технологии, контент E-E-A-T и факторы доверия
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники