Проверка введённой капчи

216
17 октября 2017, 04:04

Ребят помогите пожалуйста написать условие проверки капчи, не пойму как правильно написать. У меня данные с формы должны отправялтьсяя методом 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 у меня нигде не подключен в индексе указан путь для рисования изобрадения. Может стоит его в обработчике подключить? или эта переменная с проверочным кодом считается глобальной?

READ ALSO
RedBean PHP не работает R::store

RedBean PHP не работает R::store

В базе еще есть поля id, number

432
Передача JSON массива в Ajax

Передача JSON массива в Ajax

Доброе утроПросидел часа 2-3, в интернете куча примеров, но у меня не выходит

338
Как отключить лимит скрипта?

Как отключить лимит скрипта?

В php скрипте где каждый желающий может оставить запись, возможность это сделать только один раз в день, как убрать это ограничение?

293
Перемещение строк

Перемещение строк

Добрый день,пожалуйста помогите реализовать функцию на PHP, которая будет менять местами строки в бд mysql

241