[TYPO3-german] captcha und php-scripts
Ralf Hettinger
ng at ralfhettinger.de
Mon Oct 23 20:09:24 CEST 2006
Das runde muss in das Eckige... oder so ;)
Ich ging eigentlich davon aus, dass das gleiche Skript Form- (und damit
Captcha-)Erzeugung übernimmt und es daher keine Probleme mit dem Session-Caching
gibt. Es mag in Deinem Fall sein, dass Du die Session-ID manuell transferieren
musst; ich hab das zu lange nicht mehr zu Fuß gemacht und bin ziemlich aus der
Thematik draußen bzw. erzähl nur noch Halbwissen.
Aber hier gibt's alles zum Nachlesen ;)
http://www.php.net/manual/de/ref.session.php#session.idpassing
Naja; vielleicht geht's ja auch ohne (s.u.)
Markus Bucher schrieb:
> Hi. Bin schon ein gutes Stück weiter.
>
> Hier mein Code auf der Formular-Seite:
>
>
> // <!-- captcha-Bild wird eingebunden -->
> $myphpoutput .= '<img src="typo3conf/ext/captcha/captcha/captcha.php"
> alt="" /> ';
> echo $myphpoutput;
>
> // Session startet
> session_start();
> $captchaStr = $_SESSION['tx_captcha_string'];
> $_SESSION['tx_captcha_string'] = '';
^^^^
Das kann so nicht klappen. Hier werden im ersten Skript Deine Sessiondaten
gelöscht, bevor sie im zweiten ausgelesen werden könn(t)en. Muss wenn schon ins
zweite Skript. Probier's mal. Deswegen schrieb ich auch "Session Abfrage" ;)
> ?>
>
> <form id="form1" name="form1" method="post" action="index.php?id=512">
> <input type="text" name="captchaResponse" size="15" id="captcharesponse"
> value="" />
> <input type="submit" name="Submit" value="ok" />
> </form>
>
> ... habe von GET auf POST umgestellt.
> Auf der nächsten Seite (id=512) dann:
>
> $captchaStr = $_SESSION['tx_captcha_string'];
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
ist hier garantiert leer...
> //debug echo $_POST['captchaResponse'];
> //debug echo '<br />';
> //debug echo '<!-- captcha-Wert -->'.$captchaStr;
> // captcha-Überprüfung
> if ($captchaStr===-1 || (
^^^^^^^^^^^^^^^^^^^
die Bedingung ist überflüssig; sorry. War ein Copy&Paste-Fehler aus tipafriend
> $captchaStr && $_POST['captchaResponse']===$captchaStr
> )) {
> // captcha okay
>
> ... ab hier kommt mein Code für Erfolgreiche Validierung.
>
> } else {
> // captcha falsch
> echo 'Leider wurde unser Anti-Spam-Test mit Captcha nicht validiert.<br
> />';
> echo '<a href="javascript:history.back();">Bitte kehren Sie zurück
> und wiederholen die Eingabe</a><br />';
> }
>
>
> Leider zeigt mir das Skript zwar das captcha-Bild an, jedoch kann ich
> aus dem zweiten Skript keine $captchaStr Variable auslesen. Es scheint,
> sie wird nicht erstellt.
>
> Was ist falsch?
>
> Gruß und Merci vielmals,
> Markus
More information about the TYPO3-german
mailing list