我想使用AJAX函数验证CAPTCHA

时间:2012-01-06 10:43:23

标签: php javascript jquery ajax

我的主页是index.php。我正在使用CAPTCHA,在该页面上提交表单后,它会检查CAPTCHA验证,如果值正确则转到form.php。如果值不正确,那么它将保持在同一页面上。

我的问题是,如果CAPTCHA值不正确,它会来到index.php,我在表单中输入的所有值都是null。我想要我在表单中输入的值,即使CAPTCHA错误并要求新的CAPTCHA文本。

if(empty($_SESSION['6_letters_code'] ) || strcasecmp($_SESSION['6_letters_code'], $_POST['6_letters_code']) != 0)
{
    $errors .= "\n The above code does not match!";
}

if(empty($errors))
{
    header('Location:form.php');
}

function IsInjected($str)
{
    $injections = array('(\n+)',
        '(\r+)',
        '(\t+)',
        '(%0A+)',
        '(%0D+)',
        '(%08+)',
        '(%09+)'
    );

    $inject = join('|', $injections);
    $inject = "/$inject/i";
    if(preg_match($inject,$str))
    {
        return true;
    }
    else
    {
        return false;
    }
}

if(!empty($errors))
{
    header('Location:index.php');
    echo "The above code does not match!";  
}  

1 个答案:

答案 0 :(得分:0)

最简单的方法是玩具将验证脚本放在表单的同一页面上,验证后如果正确将用户浏览器重定向到另一个页面,els让它们在同一个表单页面上......

现在输入这样的输入字段,假设您正在使用POST方法发送。

<input type="text" name="username" value="<?php echo isset($_POST['username'])? $_POST['username']:'';?>"

同样的剩余..

或者,如果您想在其他页面上使用验证逻辑,则使用SESSION变量在页面之间传输值... 我希望我能回答你在寻找什么...其他任何评论.. :)