Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.12.2016, 12:47   #1
Женя32
Форумчанин
 
Регистрация: 12.09.2008
Сообщений: 621
Счастье kcaptcha как проверить, правильно ли введен код капчи?

Подскажите пожалуйста, как сделать проверку на правильность введенного кода каптчи?

Каптчу взял вот отсюда: http://www.captcha.ru/kcaptcha/
Женя32 вне форума Ответить с цитированием
Старый 24.12.2016, 14:27   #2
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

В архиве есть пример, form_example.php.
Andkorol вне форума Ответить с цитированием
Старый 25.12.2016, 14:00   #3
Женя32
Форумчанин
 
Регистрация: 12.09.2008
Сообщений: 621
Счастье

Цитата:
Сообщение от Andkorol Посмотреть сообщение
В архиве есть пример, form_example.php.
Да, в архиве есть пример, но он, почему то, не работает в моем проекте. Я ввожу не правильный код каптчи, но, данные все ровно уходят Посмотрите пожалуйста, почему не работает?:
https://youtu.be/ogJIOQvo0ss
PHP код:
<?php
session_start
();

    include(
"blocks/db_connect.php");
    include(
"functions/functions.php");    
    
?>
<!DOCTYPE html>
<html lang="en"><head>
<meta charset=utf-8>
<link href="css/reset.css" rel="stylesheet" type="text/css" />
<link href="css/style.css" rel="stylesheet" type="text/css" />

<script type="text/javascript" src="js/jquery-1.8.2.min.js"></script>
<script type="text/javascript" src="js/jquery.form.js"></script>
<script type="text/livescript" src="js/additional-methods.js"></script>
<script type="text/javascript" src="js/jquery.maskedinput.min.js"></script>
<script type="text/javascript" src="js/jquery.validate-1.15.0.min.js"></script>
<script type="text/javascript">
       $('document').ready(function () {

            $('#form_reg').validate({

                //Правила для проверки

                rules: {
                    "reg_login": {
                       required: true
                },
.....
                "reg_captcha":{ 
                    required:true
                },                

                },
                //Текста предупреждений

                messages: {

                    "reg_login": {
                        required: "Укажите Логин!",
                        reg_login: "Символы !@#$%^&*()+=-[]\\\';,./{}|\":<>? и пробелы запрещены. Также нельзя использовать русские буквы",                        
                        minlength: "От 5 до 15 символов!",
                        maxlength: "От 6 до 15 символов!",
                        remote: "Логин занят!"
                      },
        ...
                "reg_captcha":{ 
                    required:"Введите код с картинки!"
                },
             },


            //Обработчик и отправка данных

                submitHandler: function (form) {
                    
         $("#fade").toggle(400);

                    $(form).ajaxSubmit({

                        success: function (data) {

                            if (date == 'true') {
                                
                               $("#block-form-registration").fadeOut(300, function () {

                                    $("#reg_message").addClass("reg_message_good").fadeIn(400).html("Вы успешьно зарегистровались!");

                                    $("#form_submit").hide();

                                });

                            }else
                               {
                                  $("#reg_message").addClass("reg_message_error").fadeIn(400).html(date);
                               }
                        }

                    })

                }
                                                               
            });

        });

 </script>
<title>Регистрация</title>
</head>

<body>

<div id="block-body">
...
<div id="block-content">

<h2 class="h2-title">Регистрация</h2>
<form method="post" id="form_reg" action="/reg/handler_reg.php">
<p id="reg_message"></p>
<div id="block-form-registration">
<ul id="form-registration">

<li>
<label>Логин</label>
<span class="star">*</span>
<input type="text" name="reg_login" id="reg_login" />
</li>

...

<li>
<div id="block-captcha">


<img id="captcha" src="./reg/captcha/?<?php echo session_name()?>=<?php echo session_id()?>">
<p id="reloadcaptcha">Показать другой код</p>

<label id="label-captcha">Код с картинки</label>
<span class="star-captcha">*</span>
<input type="text" name="reg_captcha" id="reg_captcha" />
</div>
</li>

</ul>
</div>

<p align="right"><input type="submit" name="reg_submit" id="form_submit" value="Регистрация"/> </p>

</form>    
<?php
if(count($_POST)>0){
    if(isset(
$_SESSION['captcha_keystring']) && $_SESSION['captcha_keystring'] == $_POST['keystring']){
        echo 
"Correct";
    }else{
        echo 
"Не верный код";
    }
}
unset(
$_SESSION['captcha_keystring']);
?>


 </div>


</div> <!--block-content - end-->

</div>

</body>
</html>
Женя32 вне форума Ответить с цитированием
Старый 25.12.2016, 14:13   #4
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Проверка корректности каптчи должна выполняться в обработчике формы (который указан в атрибуте action самой формы).
Andkorol вне форума Ответить с цитированием
Старый 25.12.2016, 14:42   #5
Женя32
Форумчанин
 
Регистрация: 12.09.2008
Сообщений: 621
Счастье

Цитата:
Сообщение от Andkorol Посмотреть сообщение
Проверка корректности каптчи должна выполняться в обработчике формы (который указан в атрибуте action самой формы).
А что нужно в обработчик писать?

А почему вот так не работает?:
Код HTML:
....
		"reg_captcha":{ 
			required:true,
                        reg_captcha: { reg_captcha: true },
                       remote: {url: "../shop/reg/kcaptcha/form_example.php", type:"post" }
....
                messages: {
                                "reg_captcha":{ 
		          	required:"Введите код с картинки!",
				remote: "Неверный код!"
                },
             },

........
<form method="post" id="form_reg" action="/reg/handler_reg.php">
.....

<img id="captcha" src="./reg/captcha/?<?php echo session_name()?>=<?php echo session_id()?>">
<p id="reloadcaptcha">Показать другой код</p>

<label id="label-captcha">Код с картинки</label>
<span class="star-captcha">*</span>
<input type="text" name="reg_captcha" id="reg_captcha" />
</div>
<p align="right"><input type="submit" name="reg_submit" id="form_submit" value="Регистрация"/> </p>

</form>	
Обработчик:
PHP код:
<?php
session_start
();
?>


<?php
if(count($_POST)>0){
    if(isset(
$_SESSION['captcha_keystring']) && $_SESSION['captcha_keystring'] == $_POST['reg_captcha']){
        echo 
"true";
    }else{
        echo 
"false";
    }
}
unset(
$_SESSION['captcha_keystring']);
?>

Последний раз редактировалось Женя32; 25.12.2016 в 15:09.
Женя32 вне форума Ответить с цитированием
Старый 25.12.2016, 16:15   #6
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Обработчик формы – это файл, в котором обрабатываются все данные, переданные из формы. Вот там и нужно проверять корректность каптчи.
НЕ в javascript validation, или ещё где-то там – а именно в обработчике формы.
То, что ты так смело называешь «Обработчик» – судя по коду, это вообще непонятно что.
Хватит писать код «методом тыка» – читай уже книги, или смотри видео, благо их сейчас просто море всяких разных есть.
Andkorol вне форума Ответить с цитированием
Старый 25.12.2016, 17:05   #7
Женя32
Форумчанин
 
Регистрация: 12.09.2008
Сообщений: 621
По умолчанию

Цитата:
Сообщение от Andkorol Посмотреть сообщение
...
Хватит писать код «методом тыка» – читай уже книги, или смотри видео, благо их сейчас просто море всяких разных есть.
Примеры из видео не работают.... А книге читать..... знать бы еще в какой книге про установку этой каптчи пишется.......
Вот один чувак проверяет каптчу через remote... Какая книга мне ответит, почему у него работает, а у меня нет?
Вот посмотрите, и, ПОЖАЛУЙСТА, ОБЪЯСНИТЕ мне, ПОЧЕМУ У НЕГО РАБОТАЕТ?(c 31-й минуты): https://www.youtube.com/watch?v=w1LJFdy3P2g
Женя32 вне форума Ответить с цитированием
Старый 25.12.2016, 18:06   #8
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Цитата:
Сообщение от Женя32 Посмотреть сообщение
Какая книга мне ответит, почему у него работает, а у меня нет?
Любая, в которой рассмотрен процесс отладки кода + поиск и обработка ошибок.
Цитата:
Сообщение от Женя32 Посмотреть сообщение
Вот посмотрите, и, ПОЖАЛУЙСТА, ОБЪЯСНИТЕ мне, ПОЧЕМУ У НЕГО РАБОТАЕТ?(c 31-й минуты):
Вероятно потому, что он пишет свой код без ошибок.
Andkorol вне форума Ответить с цитированием
Старый 25.12.2016, 18:13   #9
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Так вы и должны понять почему у вас не работает, а не книга или видео рассмотреть все бесконечное число вариантов.
Изучайте фундаментальные вещи, тогда и со своими задачи разберетесь.

Отладка — неотъемлемая часть программирования.
Примерно так:


Учитесь пользоваться отладчиком (отладчик JS в браузере, и xdebug и т.п. в РНР) и/или вставлять console.log/var_dump в нужные места во время отладки, читать и понимать (а не бежать в ужасе) логи и сообщения об ошибках, ...
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.

Последний раз редактировалось Alex11223; 25.12.2016 в 18:50.
Alex11223 вне форума Ответить с цитированием
Старый 31.12.2016, 19:38   #10
Женя32
Форумчанин
 
Регистрация: 12.09.2008
Сообщений: 621
По умолчанию

Цитата:
Сообщение от Andkorol Посмотреть сообщение
В архиве есть пример, form_example.php.
Этот пример, почему то, не работает.. Я хоть что ввожу, отправка все ровно происходит.... Почему так?
https://youtu.be/V7xnFSIAaAE

Последний раз редактировалось Женя32; 31.12.2016 в 19:40.
Женя32 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Массивы как правильно прописать код. bossserg PHP 3 16.12.2012 10:20
Как правильно применить код? artemavd Общие вопросы Delphi 5 05.06.2012 22:15
Делфи. как правильно вставить код в код? Кушманский Помощь студентам 13 18.03.2012 20:06
Как правильно оформить код? NiKiToZZ- Помощь студентам 5 28.12.2010 12:26