Hallo zusammen,
ich habe ein Problem. Als captcha Abfrage werden zwei random Zahlen generiert, die der Nutzer addieren soll. Falls das Ergbenis stimmt, kann fortgefahren werden.
[PHP]
if(!$logger->check_log()) { //falls man nicht eingeloggt ist, muss die captcha Abfrage beantwortet wtrden
$fig1 = $logger->get_random_num(); //zwei Zufallszahlenw werden erzeugt
$fig2 = $logger->get_random_num();
echo „
Da Du nicht registriert bist, löse bitte die folgende Rechenaufgabe:
Sobald der Submit Button gedrückt wird, wird die Seite ja aktualisiert. Das bewirkt jedoch, dass neue ZUfallszahlen generiert werden, doch das eingegebene Ergebnis gleicht bleibt, da es ja nicht neu erstellt wird, sondern einmal vom Nutzer eingegeben worden ist. Durch die Generierung neuer Zufallszahlen ist das Ergebnis immer falsch. Wie kriege ich es hin, dass nach dem Drücken des submit BUttons nicht neue Zufallszahlen generiert werden und dass die alten noch gelesen werden können?
ich habe jetzt die Zahlen in jeweils eine Session geschrieben, doch das Problem ist dadurch leider nicht gelöst. Wenn die Seite aktualisiert wird, dann werden die neuen Zahlen auch in die Session geschrieben und damit überschrieben.
Die input hidden Methode möchte ich hier nicht übernehmen. Könnt ihr helfen, das mit Sessions zu verwirklichen.
Es muss irgendwie so gehen:
if(Submit Button nicht gedrückt)
{
schreibe Zahlen in Session
}
elseif(Button gedrückt)
{
schreibe neue Zahlen nicht in Session, damit die alten gespeichert bleiben
}
Du sendest das Formular doch sicher per POST. Dann prüfe doch einfach, bei POST ob das Captcha stimmt, ansonsten generierst du das Gaptcha/schreibst du Lösung in die Session.
falls du ohne session auskommen willst:
generiere die zahlen
schreib das ergebnis der addition in ein unsichtbares eingabefeld
vergleiche nach dem absenden die POSTs vom unsichtbaren eingabefeld und dem usereingabefeld.