JQuery проверить и PHP капча проблема - PullRequest
0 голосов
/ 26 декабря 2010

поле моей капчи

<p style="height:30px;"><img id="captcha" src="includes/secureimage/securimage_show.php?sid=<?php echo md5(time()); ?>" alt="CAPTCHA Image" />
<a tabindex="-1" style="border-style: none; margin-left:5px;" href="#" title="Refresh Image" onclick="document.getElementById('captcha').src = 'includes/secureimage/securimage_show.php?sid=' + Math.random(); return false"><img src="images/refresh.png" alt="Reload Image" onclick="this.blur()" style="vertical-align: top; border:0;" /></a></p></div>
<p><label for="seccode">Verification Code:<span class="important">*</span></label><input id="seccode" type="text" name="seccode" size="10" class="required" /></p>

мой код плагина проверки jquery для капчи

seccode: {
        required: true,
        remote: {
        url: "checkuser.php",
        type: "post",
        data: {
        seccode: function() {
            //alert($("#seccode").val());
            return $("#seccode").val();
        }
    }
}
}

мой php

if($_POST['seccode'])
    {
        $securimage = new Securimage();
        return $securimage->check($_POST['seccode']);
    }

Я использую securimage для капчи. сообщение для обязательного условия для капчи работает. но дистанционное состояние не работает. Конечно, я включил требуемый файл класса в php, а также запустил session_start () в начале файла php.

[примечание] ошибка ушла сейчас. что-то новое приходит сейчас. Первый раз, когда капча срабатывает, когда я фокусируюсь, но после этого он продолжает вызывать метод проверки при каждом изменении ... см. Вывод firebug ниже ...

GET http://localhost:8080/property/html/captcha.php?seccode=pzubwg
GET http://localhost:8080/property/html/captcha.php?seccode=pzubwg

200 OK
        36ms    
jquery.min.js (line 140)
GET http://localhost:8080/property/html/captcha.php?seccode=l
GET http://localhost:8080/property/html/captcha.php?seccode=l

200 OK
        39ms    
jquery.min.js (line 140)
GET http://localhost:8080/property/html/captcha.php?seccode=ln
GET http://localhost:8080/property/html/captcha.php?seccode=ln

200 OK
        41ms    
jquery.min.js (line 140)
GET http://localhost:8080/property/html/captcha.php?seccode=lnr
GET http://localhost:8080/property/html/captcha.php?seccode=lnr

200 OK
        36ms    
jquery.min.js (line 140)
GET http://localhost:8080/property/html/captcha.php?seccode=lnrg
GET http://localhost:8080/property/html/captcha.php?seccode=lnrg

200 OK
        38ms    
jquery.min.js (line 140)
GET http://localhost:8080/property/html/captcha.php?seccode=lnrgu
GET http://localhost:8080/property/html/captcha.php?seccode=lnrgu

200 OK
        32ms    
jquery.min.js (line 140)
GET http://localhost:8080/property/html/captcha.php?seccode=lnrgue
GET http://localhost:8080/property/html/captcha.php?seccode=lnrgue

200 OK
        25ms    
jquery.min.js (line 140)
GET http://localhost:8080/property/html/captcha.php?seccode=lnrgu
GET http://localhost:8080/property/html/captcha.php?seccode=lnrgu

200 OK
        34ms    
jquery.min.js (line 140)
GET http://localhost:8080/property/html/captcha.php?seccode=lnrg
GET http://localhost:8080/property/html/captcha.php?seccode=lnrg

200 OK
        40ms    
jquery.min.js (line 140)
GET http://localhost:8080/property/html/captcha.php?seccode=lnrgv
GET http://localhost:8080/property/html/captcha.php?seccode=lnrgv

200 OK
        42ms    
jquery.min.js (line 140)
GET http://localhost:8080/property/html/captcha.php?seccode=lnrgve
GET http://localhost:8080/property/html/captcha.php?seccode=lnrgve

200 OK
        37ms

Ответы [ 2 ]

3 голосов
/ 04 января 2011

В основном, когда ваш jquery проверяет код капчи, код капчи уничтожается в той же самой функции, где происходит проверка. Вот почему у меня возникла проблема. Код работает нормально, когда вы снова обновите код.

1 голос
/ 26 декабря 2010

Валидация требует, чтобы вы возвращали "true", если удаленная проверка прошла успешно, также я предпочитаю использовать другую проверку на стороне сервера для удаленной проверки, как это demo .

Таким образом, проверка будет, post_captcha.php:

<?php
session_start();
include_once 'securimage/securimage.php';

$securimage = new Securimage();
if ($securimage->check($_POST['seccode']) == false) {
    // the code was incorrect
    // handle the error accordingly with your other error checking
    // or you can do something really basic like this
    //die('The code you entered was incorrect.  Go back and try again.');
    echo "false";
} else {
    echo "true";
}
?>

Откройте демонстрационную ссылку и с включенным firebug и отправьте только поле имени пользователя с любым именем пользователя, а затем проверьте его с одним из принятых имен пользователей (например, " asdf "), вы заметите, ответы это так же, как мои post_captcha.php ответы!

Ibrahim

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...