我使用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_captcha 。
答案 0 :(得分:0)
JQman,您的代码有一些问题会让您难以帮助您排除故障。第一个是不知道有效的验证码过程如何工作。意思是,我们看不到$ valid = $ captcha-&gt; check($ code);实际上。但假设您的代码实际上正确地为有效的捕获代码设置了引用,并且当人们输入的代码不匹配时它将返回'false',这里有几件事要检查:
1-当我将其加载到测试环境中时,我无法显示该表单。当我删除所有行时,我会得到一个完整的表单,并显示错误消息。尝试删除small()行,看看它是否有效。如果是这样,那么small()函数就有问题。
2-我注意到这是在wufoo上运行的。我对他们的服务并不是非常熟悉,但我知道。他们可能会做一些事情来导致代码停止警告/错误。话虽这么说,我注意到如果有人输入了无效的代码,你就像这样追加$ error_captcha:$ error_captcha。='
'; ...但是,之前未在您显示的代码中设置$ error_captcha。这将在日志中引发警告。您可能需要考虑删除。=并使其=。
除此之外,我没有看到任何会导致您改变目前结果的其他内容。