Portal > Foren > PHP > PHP-Programmierung > Captcha neu generieren bei Browser-Zurück
Antwort
 
Themen-Optionen Thema durchsuchen
Alt 03.10.2006, 20:01 Nach oben    #1
Neuer Benutzer
 
Registriert seit: 12.01.2006
Beiträge: 21
Standard Captcha neu generieren bei Browser-Zurück

Hi @ all!
Ich hab mir ein Captcha-Script geschrieben und in meine Registrierung eingefügt. Nun ist mir allerdings aufgefallen, dass wenn ich über den Browser zurückgehe das Captcha nicht neu generiert wird.
Wie kann ich erreichen das das Captcha nicht gecached wird, oder das die vorherige Seite beim Browser-Zurück ungültig wird?

Danke schon mal!
MFG Pain-maker
Pain-maker ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 04.10.2006, 07:30 Nach oben    #2
Erfahrener Benutzer
 
Registriert seit: 18.03.2005
Beiträge: 596
Standard

Hmm, häng einfach der Datei einen Timestamp dran
captcha.gif?1159939828
oder
captcha.php?1159939828
CIX88 ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 04.10.2006, 16:29 Nach oben    #3
Neuer Benutzer
 
Registriert seit: 12.01.2006
Beiträge: 21
Standard

Das bringt leider nix.
Das Problem ist, dass das Captcha-Bild im Browser gecached wird und damit immer noch verfügbar ist, wenn man über die browser-History zurückgeht.

Hier mal der Aufruf, der in meinem Template steht:
<img src="misc.php?action=getsecuritycode" border="0" alt="">

MFG Pain-maker
Pain-maker ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 04.10.2006, 16:59 Nach oben    #4
Jonas
 
Benutzerbild von Artemis
 
Registriert seit: 03.06.2006
Beiträge: 244
Standard

Ich würde einfach mal versuchen, dem Bild einen Expire-Header mitzuschicken:
Zitat:
PHP-Skripte erzeugen oft dynamische Inhalte, die weder vom Browser noch von irgendeinem Proxy zwischen Web-Server und Client-Browser gepuffert ("gecached") werden sollen bzw. dürfen. Bei vielen Proxies und Browsern kann das Cachen wie folgt unterbunden werden:
PHP-Code:
<?php
header
("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); // Datum in der Vergangenheit
?>
Quelle: http://php.net/header
__________________
Applikations-Programmierung:
BlitzMax, BlitzPlus

Webentwicklung:
PHP, (X)HTML, CSS, JavaScript, MySQL


Artemis ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 04.10.2006, 17:21 Nach oben    #5
Neuer Benutzer
 
Registriert seit: 12.01.2006
Beiträge: 21
Standard

Das geht leider auch nicht

PHP-Code:
<?php
    
/** output **/
    
Header("Cache-Control: no-cache, must-revalidate");
    
Header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
    
Header("Content-type: image/png");
    
imagepng($image);
    
imagedestroy($image);
?>
Gibt es eventuell noch andere Lösungsansätze?

MFG Pain-maker
Pain-maker ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 05.10.2006, 07:08 Nach oben    #6
Erfahrener Benutzer
 
Registriert seit: 18.03.2005
Beiträge: 596
Standard

Zitat:
Das Problem ist, dass das Captcha-Bild im Browser gecached wird
Verstehe nicht das Problem.
Im Cache wird es dann so angezeigt: captcha.php?1159939828
Und beim nächsten Aufruf wird ein neuer Zeitstempel erzeugt und somit als neue Grafik erkannt.

Die Frage mit dem Browser-Zurück ist mir auch schleierhaft.
Arbeite mit Header("Location: ... ") dann gibt es kein Browser-Zurück erst.
CIX88 ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 05.10.2006, 15:39 Nach oben    #7
Neuer Benutzer
 
Registriert seit: 12.01.2006
Beiträge: 21
Standard

Wie kann ich das bei einer registrierung mit einem form denn realisieren?
Pain-maker ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 10.10.2006, 22:38 Nach oben    #8
Erfahrener Benutzer
 
Registriert seit: 18.03.2005
Beiträge: 596
Standard

Man könnte auch über die Session() etwas machen, falls dies überhaupt benutzt wird.

Grobe Gedanken:

Nehmen wir an das Formular steht in form.php.
In der Datei send.php werden diesen Daten dann ausgewertet und z.B. einer DB übergeben.
Das Problem mit dem Zurück & Co besteht ja nur, wenn man ein Formular schön fleißg zutippt und zu einer anderen (send.php) PHP-Datei absendet, und ruhe ist.

Baut man jetzt am Ende der send.php z.B. Header( "Location: form.php" ); ein, wird man sofort zu dieser Umgeleitet.
Die eigentliche Zurück-Funktion ist jetzt im Eimer.

Am Anfang der form.php wird der Code für den (oder das ?) Captcha erzeugt.
Sprich, nach Absenden bekommt man automatisch einen neuen Code.
Speichert man diesen noch in der Session() und vergleicht damit die Eingabe, sollte das eigentlich gehen.

Wenn das nicht geht, lösche ich mein Beitrag, geh ins Altersheim und sammel Schmetterlinge ...
CIX88 ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 11.10.2006, 12:37 Nach oben    #9
Neuer Benutzer
 
Registriert seit: 18.08.2005
Beiträge: 28
Standard

Zitat:
Zitat von Pain-maker Beitrag anzeigen
Das geht leider auch nicht

PHP-Code:
<?php
    
/** output **/
    
Header("Cache-Control: no-cache, must-revalidate");
    
Header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
    
Header("Content-type: image/png");
    
imagepng($image);
    
imagedestroy($image);
?>
Gibt es eventuell noch andere Lösungsansätze?

MFG Pain-maker
hust, du hast aber schon da jetzt nen aktuelen Timestamp anstelle von dem Mon 26 Jul ... stehen?
__________________
Teamarbeit ist, wenn vier Leute für eine Arbeit bezahlt werden, die drei besser machen könnten, wenn sie nur zu zweit gewesen wären und einer davon krank zu Bett läge.
Du-weisst-schon-wer ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
PingBacks sind an
RefBacks sind aus

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Audio Aufnahme über Browser andisoe PHP-Programmierung 2 02.02.2007 14:25
PHPeclipse 1.1.7, internen Browser deinstallieren Ben Eclipse 17 09.03.2006 19:53


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:30 Uhr.


Powered by vBulletin® Version 3.7.4 (Deutsch)
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45