Cookies werden beim IE erst nach F5 gelöscht.
$xNeTworKx
- perl
0 Bio0 $xNeTworKx0 Bio
Hi,
Ich hatte doch vor einigen Monaten das Problem, dass Cookies, die nur 5 Sekunden halten sollten (um zB bei einem Forum Doppelpostings zu vermeiden) manchmal nicht gelöscht wurden.
Ich habe mir das Problem jetzt mal ganz genau unter die Lupe genommen und fand heraus, dass der dumme IE erst nachdem man F5 drückt, die aktuelle Cookieinformation herausgibt, was im Klartext heisst, dass das Cookie, obwohl es schon längst abgelaufen ist, im IE trotzdem noch als vorhanden angezeigt wird, bis man eben F5 drückt.
Was kann man dagegen tun ?
Bei Mozilla und Opera funktioniert es einwandfrei.
Hier die Scripts Cookiesetzen und Cookieabfragen:
#!/usr/bin/perl -w
use CGI;
use strict;
my $query = new CGI;
my $cookie = $query->cookie(-name=>'xNeTworKxNAME',
-value=>'xNeTworKxWERT',
-expires=>'+10s',
-path=>'/');
print $query->header(-cookie=>$cookie);
print "Ein Cookie sollte jetzt gesetzt sein <br />\n";
-----------------------------
#!/usr/bin/perl -w
use CGI;
use strict;
use CGI::Cookie;
print "Content-type:text/html\n\n";
print "Gefundene Cookies : <br />\n";
my %cookies = fetch CGI::Cookie;
foreach (keys %cookies) {
my $value = $cookies{$_}->value;
print "Cookiename : $_ | Cookiewert : $value <br />\n";
oder :
http://tools.acid4u.com/cookiesetzen.cgi
http://tools.acid4u.com/cookieabfragen.cgi
P.S Wenn ich use CGI nicht verwende, zeigt er mir überhaupt keine Cookies mehr an. warum ist das so ?
$xNeTworKx.
Sup!
Das gleiche macht der IE anscheinend auch mit HTTP-Authentifikations-Login-Daten.
Ich empfehle: "Best viewed without proprietary M$ technology" - Buttons ;-)
Und warum setzt Du für 5 Sekunden Cookies? Kannst Du nicht statt dessen im Cookie eine Posting-Nummer speichern, die der Server beim Aufruf des Schreib-Formulars aus einer Art Ring nimmt (also Nummern immer fortlaufend generieren, mit Überlauf bei 1000 oder so), so daß, wenn das Cookie eine erst vor kurzem bereits einmal vergebene Posting-Nummer hat, das Doppel-Posting erkannt wird?
Gruesse,
Bio
Hi,
Ich empfehle: "Best viewed without proprietary M$ technology" - Buttons ;-)
hehe, ich versuche schon so lange meine Besucher von der Bugheit des IE zu überzeugen, aber anscheind möchte niemand seinen Horizont erweitern.
Und warum setzt Du für 5 Sekunden Cookies? Kannst Du nicht statt dessen im Cookie eine Posting-Nummer speichern, die der Server beim Aufruf des Schreib-Formulars aus einer Art Ring nimmt (also Nummern immer fortlaufend generieren, mit Überlauf bei 1000 oder so), so daß, wenn das Cookie eine erst vor kurzem bereits einmal vergebene Posting-Nummer hat, das Doppel-Posting erkannt wird?
Gute Idee, aber es ist ja nicht nur bei diesem Problem, sondern ich habe jetzt doch vor ein Board mit Login mit Cookies zu coden, da Sessions mit Perl, wie ich bei Google nur finden konnte, auch immer nur mit Cookies funktionieren, also zB das Modul "session".
Das Hauptproblem ist eigentlich, dass bei Verwendung solcher Cookies, der User quasi nie eingeloggt ist, wenn er den IE benutzt, da der IE erst nach F5 das Cookie findet.
$xNeTworKx.
Sup!
... da Sessions mit Perl, wie ich bei Google nur finden konnte, auch immer nur mit Cookies funktionieren, also zB das Modul "session".
Also, das halte ich für ein (dummes) Gerücht, daß Sessions unter Perl nur mit Cookies funktionieren.
Gruesse,
Bio
Hi,
Also, das halte ich für ein (dummes) Gerücht, daß Sessions unter Perl nur mit Cookies funktionieren.
Also ich könnte mir gar nicht anders vorstellen, wie sich sonst der Server die User "merkt", weil irgendwas muss ja irgendwann mal wo gespeichert werden.
$xNeTworKx.
Hallo $xNeTworKx,
Also, das halte ich für ein (dummes) Gerücht, daß Sessions unter Perl nur mit Cookies funktionieren.
Also ich könnte mir gar nicht anders vorstellen, wie sich sonst der Server die User "merkt", weil irgendwas muss ja irgendwann mal wo gespeichert werden.
Ich hab' wenig Ahnung von Perl, aber PHP bietet 2 Optionen an: Cookies und, falls diese nicht funktionieren, über die URL. Anders geht's aber wirklich nicht.
Grüße,
Christian