2017-02-18 1 views
1

Dies ist Javascriptich bin nicht in der Lage das Captcha zu überprüfen, ob es falsch oder richtig mit Javascript

<script> 
    function q_form_val() { 
     var patt = /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/; 
     var captcha_entered = document.getElementById("captcha_entered").value; 
     if (captcha_entered == "") { 
      alert("Please enter the Captcha"); 
      return false; 
     } 
     return true; 
    } 
</script> 

Dies ist HTML-Code

<div class="row"> 
    <div class="form-group"> 
     <label class="control-label col-sm-3"><font color="#FF0000">*</font><strong>Captcha</strong> 
     </label> 
     <div class="col-sm-3"> 
      <?php echo '<img src="captcha.php" alt="captcha">'; ?> 
      <br/> 
      <span><input name="captcha_entered" type="text" class="form-control" id="captcha_entered" size="27" maxlength="4"/></br></span> 
      <input type="hidden" name="captcha_total" id="captcha_total" value="<?php echo $_SESSION['rand_code']; ?>"> 
     </div> 
    </div> 
</div> 
<div>&nbsp;</div> 
<div class="row"> 
    <div class="col-sm-12"> 
     <center> 
      <script type="text/javascript"> 
       document.write("<input type=\"submit\" value=\"Submit\" class=\"btn1\"/>"); 
      </script> 
      <noscript> 
       <p style="color: red;"><b><i>Please enable JavaScript to continue</i></b> 
        <p> 
      </noscript> 
     </center> 
    </div> 
</div> 

ich in der Lage bin das Captcha zu überprüfen, ob es leer oder nicht aber ich bin nicht in der Lage zu überprüfen, ob es falsch ist oder richtig captcha ich denke, ich sollte mehr Code in Javascript für verfiying hinzufügen, ob es falsch oder richtig ist?

+0

Bitte formatieren Sie Ihren Code. '<>' Symbol im Editor repräsentiert den Codebereich. Fügen Sie Ihren Code in das erforderliche Fenster ein und verwenden Sie die 'Tidy'-Taste zum Einrücken. – Rajesh

Antwort

0

Sie sollten RegExp.test() verwenden. Es wird wieder wahr/falsch, wenn die in String übergeben einen Test des Musters verläuft

function q_form_val() { 
    var patt = new RegExp(/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/); 
    var captcha_entered = document.getElementById("captcha_entered").value; 
    if (captcha_entered == "") { 
     alert("Please enter the Captcha"); 
     return false; 
    }else if(!patt.test(captcha_entered)){ 
     alert("Bad Captcha Match"); 
     return false; 
    } 
    return true; 
} 

EDIT

Wenn Sie sich tatsächlich auf den Wert Ihrer versteckten Feld zu vergleichen versuchen, was eingegeben wurde (die Code über regex ist nicht sinnvoll), und Sie würden den folgenden Code verwenden:

function q_form_val() { 
    var captcha_entered = document.getElementById("captcha_entered").value; 
    var captcha_total = document.getElementById("captcha_total").value; 
    if (captcha_entered == "") { 
     alert("Please enter the Captcha"); 
     return false; 
    }else if(captcha_total !== captcha_entered)){ 
     alert("Bad Captcha code"); 
     return false; 
    } 
    return true; 
} 
+0

Kumpel .... jetzt mit Ihrem Code funktioniert es für falsches Captcha ....... aber es funktioniert nicht mit richtigem Captcha ...... wenn das richtige Captcha gegeben wird, dann sollte es das Formular senden –

+0

Können Sie Liefern Sie bitte ein Beispiel für ein "korrektes" Captcha ... ist es eine E-Mail-Adresse? – haxxxton

+0

wenn ich ein falsches capctha gebe, zeigt es mich Böses captcha ...... aber wenn ich richtig captcha dann auch es mich zeigst Schlechtes captcha ......? –

0

die Frage ist, ob Sie sollte ein captcha mit Javascript überprüfen. Der ganze Zweck eines Captchas besteht darin, automatisierte Skripte zu umgehen, aber die Antwort in das HTML zu integrieren macht es unglaublich einfach zu umgehen.

Sie sollten das Captcha auf dem Server entweder über eine Formularübermittlung oder eine AJAX-Anfrage überprüfen.

Verwandte Themen