PHP Ajax Captcha (Securimage) sorunu

1 Cevap php

i have a little problem with captcha validation using php and ajax. this is the php validation:

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>';
   }
  }

Bu benim şeklidir:

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

(that's thbrew there) The problem is that the variable $eror_captcha isn't set at all when entering a wrong string.

1 Cevap

JQman, zor gidermenize yardımcı olmak için yapacaktır kodu ile ilgili bir kaç şey vardır. İlk geçerli Captcha sürecinin nasıl çalıştığını bilmek değildir. Anlamı, biz geçerli = $ CAPTCHA-> check ($ code) $ ne göremiyorum; aslında yok. Ama kodu aslında geçerli captch koduna doğru bir başvuru oluşturun ve kişi girer kod eşleşmiyor zaman 'yanlış dönecektir varsayarak, burada kontrol etmek için birkaç şey vardır:

1 - Ben bir test ortamı içine bu yük, formu göstermek için alınamıyor. Ben bütün satırları kaldırın, ben tam bir form olsun ve hata mesajı gösterir. Küçük () hatları kaldırarak denemek ve çalışacak görmek. Eğer öyleyse, o küçük () fonksiyonu ile yanlış bir şey var.

2 - Ben bu Wufoo üzerinde çalışıyor fark. Ben onların hizmeti ile son derece aşina değilim ama ben bunun farkındayım. Onlar uyarıları / hataları durdurmak için kod neden bir şey yapabilir. Söyleniyor, ben birisi geçersiz bir kod girerse, bunu $ gibi error_captcha append fark:. $ Error_captcha = '

'; ... however, $error_captcha is not previously set in the code you show. This will cause a warning in the log. You may want to consider removing the .= and making it =.

Bunun dışında, ben şu anda alıyorsanız sonuçları değişen yol açacak başka bir şey görmüyorum.