captcha验证中的问题


problem in captcha validation

<?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> 

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

从您的问题和代码中可以看出,您似乎至少缺少一个javascript函数,该函数用于将生成的CAPTCHA与用户输入的CAPTCHA进行比较。您缺少的另一个函数(除非我的JavaScript那么糟糕(是一个实际生成CAPTCHA的函数。

如果没有这两个至关重要的函数,整个脚本将无法工作。最后,您使用这么多不同的$_SESSION变量是否有特殊原因?在你的代码中增加一点格式将在未来有所帮助,这样你就可以更好地阅读你的代码,并帮助我们阅读它。。。尽管这与我更好的判断相悖,但这可能会对您有所帮助:基于javascript的captcha的