PHP Ajax验证码(Securimage)问题

PHP Ajax验证码(Securimage)问题,php,ajax,validation,captcha,Php,Ajax,Validation,Captcha,我对使用php和ajax进行验证码验证有点问题。 这是php验证: if(trim($code) == '') { $error_captcha = '<p class="error">some empty error....</p>'; $errorc = 'error'; $error = $erdiv; } else if (trim($code) != ''){ require_once ('securimage.php'); $captcha = new Se

我对使用php和ajax进行验证码验证有点问题。 这是php验证:

if(trim($code) == '') {
$error_captcha = '<p class="error">some empty error....</p>';
$errorc = 'error';
$error = $erdiv;
 } else if (trim($code) != ''){
require_once ('securimage.php');
$captcha = new Securimage();
$valid = $captcha->check($code);
if ($valid == false) {
echo '<p class="error">some captcha incorrect error...</p>';
$error_captcha .= '<p class="error"></p>';
   }
  }
这是我的表格:

<form class="wufoo leftLabel page" action="javascript:send_action('register.php',3)">

<div class="info">
 <h2>פזור - טופס רישום</h2>
 <?php echo $error; ?>
</div>

<ul>    

<li class="right <?php echo $erroru; ?>">
 <div class="col">
  <input type="text" class="field text large" id="user_register" value="<?php echo $username; ?>" maxlength="255" />
  <?php echo $error_user; ?>
   </div>
    <label class="desc">
  <span class="req">*</span>
    <?php small('שם משתמש'); ?>
   </label>
  <p class="instruct"><small>שם המשתמש</small></p>
 </li>

<li class="right <?php echo $errorp; ?>">
 <div class="col">
  <input type="password" class="field text large" id="pass_register" value="<?php echo $pass; ?>" maxlength="255" />
  <?php echo $error_pass; ?>
   </div>
    <label class="desc">
        <span class="req">*</span>
  <?php small('סיסמא'); ?>
   </label>
  <p class="instruct"><small>נא הזן את סיסמתך</small></p>
 </li>


<li class="right <?php echo $errorp.''.$errorpv; ?>">
 <div class="col">
  <input type="password" class="field text large" id="pass_val_register" value="<?php echo $pass_val; ?>" maxlength="255" />
  <?php echo $error_pass_val.''.$error_pass; ?>
   </div>
      <label class="desc">
  <span class="req">*</span>
    <?php small('אימות סיסמא'); ?>
   </label> 
  <p class="instruct"><small>נא הזן את סיסמתך שנית</small></p>
 </li>

  <li class="right <?php echo $errore; ?>">
 <div class="col">
  <input type="text" class="field text large" id="email_register" value="<?php echo $email; ?>" maxlength="255" />
    <?php echo $error_email; ?>
 </div>
  <label class="desc">
  <span class="req">*</span>
  <?php small('כתובת דוא"ל'); ?>
   </label>
  <p class="instruct"><small>נא הקפד להזין כתובת דוא"ל חוקית על מנת שתוכל להפעיל את חשבונך</small></p>
 </li>
    <li class="right captcha"></li>
   <li class="right <?php echo $errorc; ?>">
 <div class="col">
  <input type="text" class="field text large" id="captcha_register" maxlength="255" />
    <p><img src="securimage_show.php?sid=<?php echo md5(uniqid(time())); ?>"></p> 
    <?php echo $error_captcha; ?> 
 </div>
  <label class="desc">
  <span class="req">*</span>
  <?php small('קוד אבטחה'); ?>
   </label>
  <p class="instruct"><small>נא הזן את קוד האבטחה כפי שמופיע בתמונה</small></p>
 </li>
 <li class="buttons ">
      <input id="saveForm" name="saveForm" class="btTxt submit" type="submit" value="שלח" />


   </li>
</ul>
</form>
就在那里
问题是,当输入错误的字符串时,变量$eror\U captcha根本没有设置。

JQman,您的代码中有一些地方很难帮助您排除故障。第一个问题是不知道有效的验证码过程是如何工作的。也就是说,我们看不到什么$valid=$captcha->check$code;事实上是这样。但是,假设您的代码实际上将正确地设置对有效captch代码的引用,并且当用户输入的代码不匹配时,它将返回“false”,那么需要检查以下几点:

1-当我将其加载到测试环境中时,我无法获得要显示的表单。当我删除所有行时,我会得到一个完整的表单,并显示错误消息。试着去掉小的线条,看看它是否能起作用。如果是这样,那么这个小函数就有问题了

2-我注意到这是在wufoo上运行的。我对他们的服务不是非常熟悉,但我知道这一点。它们可能会在出现警告/错误时导致代码停止。话虽如此,我注意到,如果有人输入了无效代码,您会像这样附加$error\u captcha:$error\u captcha.='

'。。。但是,$error\u captcha之前未在显示的代码中设置。这将导致日志中出现警告。您可能想考虑移除.=,并使它= .< /p> 除此之外,我看不到任何其他东西会改变你目前得到的结果