У меня странная проблема с использованием плагина jQuery Validation .Во-первых, вот мой код:
formvalid.js
var v = jQuery("#sendform").validate({
rules: {
/* some other rules */
captcha: {
required: true,
remote: "securimage/process.php"
}
},
messages: {
/* some other messages */
captcha: {
required:"Security code is required",
remote:"Security code is incorrect!"
}
}
});
process.php
<?php
/* I tried with and without session_start().
Both ways works with same probelm (read next)*/
//session_start();
include_once '../securimage/securimage.php';
$securimage = new Securimage();
if ($securimage->check($_GET['captcha']) == false)
echo "false";
else
echo "true";
?>
sendform.php
<?php
include_once 'securimage/securimage.php';
//echo $_POST['captcha'];
$securimage = new Securimage();
//echo "<br/>".$securimage->getCode();
if($_POST['captcha'] && $securimage->check($_POST['captcha']))
{
//do sending
}
?>
Итак, проблема в том, что когда я проверяю security code
с помощью запроса AJAX, ajax работает нормально, но когда я отправляю форму, $securimage->check($_POST['captcha'])
в sendform.php
возвращает false
.Затем я попытался отключить удаленную проверку capctha и альт $securimage->check($_POST['captcha'])
в sendform.php
вернул true
!
Как вы можете видеть, я echo
некоторые значения в sendform.php
и результат:
Случай № 1: проверка кода AJAX включена .
Результаты:
echo $_POST['captcha']; // User_input_value;
echo $securimage->getCode(); // nothing
$securimage->check($_POST['captcha']) // false
Дело № 2: проверка кода AJAX отключена .
Результаты:
echo $_POST['captcha']; // User_input_value;
echo $securimage->getCode(); // code from image
$securimage->check($_POST['captcha']) // true (if equals)
Кто-нибудь знает, как заставить это работать?
Спасибо за любой совет.