验证码验证中的问题

时间:2011-06-25 18:33:19

标签: php javascript

<?php
session_start();
$_SESSION['n1'] = rand(1,20);
$_SESSION['n2'] = rand(1,20);
$_SESSION['expect'] = $_SESSION['n1']+$_SESSION['n2'];


$str='';
if($_SESSION['errStr'])
{
    $str='<div class="error">'.$_SESSION['errStr'].'</div>';
    unset($_SESSION['errStr']);
}

$success='';
if($_SESSION['sent'])
{
    $success='<h1>Thank you!</h1>';

    $css='<style type="text/css">#contact-form{display:none;}</style>';

    unset($_SESSION['sent']);
}

?>

<script>

function formValidate()
{
var captcha=document.form.captcha.value;
var num=/^[0-9]+$/;
if(captcha=="")
{
document.getElementById("errCaptcha").innerHTML="Enter Captcha";
}
else if(!captcha.match(num))
{
document.getElementById("errCaptcha").innerHTML="Enter Valid Captcha";
}
else
{
document.getElementById("errCaptcha").innerHTML="";
var ez=1;
}

if(ez==1)
{
return true;
}
else
{
return false;
}
}

</script>
<form id="form3" name="form" action="" onsubmit='return formValidate()' method="post">  
<fieldset class="last">                                     
                <p>
                    <label for="captcha"><?php echo $_SESSION['n1']; ?> + <?php echo $_SESSION['n2'];?> =<span class="style1">*</span><span style="color:red" id="errCaptcha"></span></label></td>
                    <input type="text" name="captcha" id="captcha" />               

            </fieldset>                 

            <p class="submit"><button type="submit">Send</button></p>           

        </form> 

这就是我正在做的,但无法验证验证码 例如:2 + 2 = 4 但如果我写2 + 2 = 10 它没有验证

1 个答案:

答案 0 :(得分:0)

从我的问题和代码中我可以看出,您似乎缺少至少1个javascript函数,这是将生成的CAPTCHA与用户输入的CAPTCHA进行比较所必需的。 你缺少的另一个功能(除非我的JavaScript很糟糕)是一个实际生成CAPTCHA的函数。

如果没有这两个重要函数,整个脚本将无效。最后,您是否有使用这么多不同$_SESSION变量的特殊原因?在代码中添加更多格式将证明将来会有所帮助,以便您可以更好地阅读代码并帮助我们阅读它... 虽然这违背了我的判断,但这可能对你有所帮助:javascript based captcha's