2011-01-05 9 views
0

Ich bin mir sicher, dass es eine Lösung dafür gibt, ich habe bereits versucht zu googlen, was ich suche, aber noch kein Anser, also hier ist mein kleines Problem, ich habe ein Formular mit Captcha , das Captcha legte seine ursprüngliche Zeichenkette in $_SESSION['PASSWORD'], also möchte ich überprüfen, ob der Benutzer dieselbe Zeichenkette wie in der $_SESSION['PASSWORD'] einband.

Nun, ich glaube, ich brauche ein wenig Ajax hier, bevor ich das Formular abschicken Ich habe die $_SESSION['PASSWORD'] mit der Ajax zu überprüfen und vergleichen Sie es mit dem, was Benutzer Band

Jede Hilfe bitte, ‚Ich bin kein Pro in Ajax 'wäre es toll, dass du es mir sehr einfach machst.

Antwort

0

HTML

<input type="text" id="captcha" name="captcha"> <!-- This is your captcha input --> 

JQuery:

$.get('verify.php', { captcha: $('#captcha').val() }, function(data){ 
    if(data === 'OK'); //Validation is ok 
    else; //Validation is wrong 
}); 

PHP (verify.php):

<?php 
    session_start(); 
    if($_GET['captcha'] === $_SESSION['password']) echo 'OK'; 
    else echo 'ERROR'; 
    exit(); 
?> 

Das ist es, hoffen, dass Sie die Antwort zu sehen Ihre Akzeptanz akzeptieren nur 20 %

+0

Aber in validation.php Sie neet ein session_start(); an der Spitze;) – ahmet2106

+0

@ ahmet2106 - Das ist richtig, danke. – Ben

0

Erstellen Sie eine neue PHP-Datei und führen Sie eine AJAX-Anforderung für diese Datei aus. Dann überprüfe ob du wahr oder falsch zurück bekommst.

session_start(); 
if($_SESSION['PASSWORD'] == $_POST['PASSWORD']) { 
    echo "true"; 
} 
echo "false"; 

Hinweis: Dies ist nicht sehr sicher ist. Es ist besser, es zu überprüfen, wenn Sie Ihr Formular absenden (vorausgesetzt, dass dies der Grund ist, warum Sie Captcha verwenden). Es spielt keine Rolle, ob Sie das Formular mit Ajax oder der normalen Art der Formularübermittlung posten. Wenn Sie nur mit ajax captcha überprüfen, dann ist das Posten von Daten immer noch möglich mit einer benutzerdefinierten http-Anfrage oder noch einfacher durch die Deaktivierung von Javascript (was die meisten Bots tun).

+0

Nun, sobald ich das Formular die $ _SESSION ['PASSWORD'] ändern, damit ich es mit dem vorherigen nicht noch einmal überprüfen kann, ANy Hilfe? – Rad

+0

Speichern Sie es in einer anderen Variablen? –