Warnung: file_put_contents(/home/www/web1/html/php_dev/test.txt) [function.file-put-contents]: failed to open stream: Permission denied in /home/www/web1/html/php_dev/sys/lib.activity.php (Zeile 58)
Captcha im Formular [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr
brauche Webseite ideal für Vereine und Firmen
- Ad -
php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
Captcha im Formular


 
el muesli
31-08-2006, 01:13 
 
Hi! Ich habe ein Kontaktformular mit einem Captcha. Leider weiß ich nicht, wie ich den originalen "Code" im Captcha übergebe, ohne dass ein fieser "Spambot" das (mit welchen Mitteln auch immer) auslesen könnte ohne das Bild an sich zu analysieren. Habe da Ansätze gesehen, die über Sessions gehen, würde ich aber am liebsten einfacher lösen, weils ja dann wieder nen Cookie-Problem usw. gibt. Meine erste Idee war, den Wert in einem hidden-feld zu übergeben, aber das ist wohl nen bisschen billig.
Ich weiß dass dieses Thema schon mehrmals durchgekaut wurde, habe aber nichts direktes zu meinem Problem gefunden (weils wahrscheinlich zu einfach ist). Vielleicht nicht die richtigen Suchwörter :-/.
Beste Grüße, Andreas

 
jahlives
31-08-2006, 06:52 
 
Meine erste Idee war, den Wert in einem hidden-feld zu übergeben, aber das ist wohl nen bisschen billig.

So könntest du das mit dem Captcha genau so gut lassen. Der Code gehört imho in eine Session Var.
Habe da Ansätze gesehen, die über Sessions gehen, würde ich aber am liebsten einfacher lösen, weils ja dann wieder nen Cookie-Problem usw. gibt

Was meinst du mit Cookie Problem ? Ich würde in diesem Falle eh ganz auf das Setzen von Cookies verzichten und die Session ID via GET Parameter weiterschleifen
Ein

ini_set('session.use_cookies',0);

vor dem session_start() verhindert, dass ein Cookie gesetzt wird.

Gruss

tobi

 
TobiaZ
31-08-2006, 08:46 
 
Ein

PHP:
ini_set('session.use_cookies',0);

vor dem session_start() verhindert, dass ein Cookie gesetzt wird.
Da Session-Cookies durchaus sinnvoll sind, würde ich darauf verzichten. Überlass es dem Browser/User ob Cookies erwünscht sind oder nicht.

 
el muesli
31-08-2006, 13:11 
 
Danke, jetzt funktionierts... War ja doch nicht schwer :D.
Ich eröffne jetzt einfach ne Session und speichere meine Zufallszahl (die dann im Captcha angezeigt wird) als Session-Variable. Die SID habe ich in ein hidden-Feld ins Formular gepackt (ist das jetzt so, wie ihr mir das empfohlen habt?).
Naja, auf alle Fälle funktionierts und ich danke euch!

 
TobiaZ
31-08-2006, 13:28 
 
ich würd sie da nur reinschreiben, wenn sie nicht im cookie gespeichert wurde.

 
el muesli
31-08-2006, 14:23 
 
So ?

<? if(!count($_COOKIE)) { ?>
<input type="hidden" name="PHPSESSID" value="<?=session_id()?>">
<? }?>

Bei mir hats so funktioniert, seh ich aber zum 1. Mal und bin mir nicht sicher...

 
TobiaZ
31-08-2006, 14:32 
 
ansatz ist ganz gut, wobei ich explizit auf ein cookie mit dem namen der session_id prüfen würde.

ansonsten sieh dir aber mal die einstellung session.use_trans_sid an. Die macht das automatisch.

Versuche aber auch zu verstehen, warum man die Session im Cookie überträgt und warum nicht. Dann kannst DU entscheiden, wie du die SID gerne übergeben würdest.


Alle Zeitangaben in WEZ +2. Es ist jetzt 18:19 Uhr.