![]() |
|
|
#1 |
|
Registrierter Benutzer
Registriert seit: 27.08.2004
Beiträge: 816
|
Firefox 7 und Session Cookies
Hallo Leute,
habe gerade opensuse 12.1 verpasst bekommen. Firefox 7.1 bringt mich da zur Verzweiflung! Ein php5.3.8 --Script verpasst ihm 2 Session-Cookies. Diese kommen auch an und werden gespeichert. Nur mit dem Wiederauslesen hapert es! So ganz am Anfang gibt es ein PHP-Code:
PHP-Code:
PHP-Code:
Cookies findet php auch nicht, obwohl sie da sind. Unter Windows verhält sich FF wie erwartet, Konqueror verarbeitet auch sowohl Cookies als auch Session-Cookies. Und stelle ich den FF auf "Cookies behalten bis zum Sitzungsende" statt "bis sie abgelaufen sind", ist die Welt in Ordnung! Aber dadurch gehen mir andere Settings verloren! p.s. ich gebe via php kein Verfallsdatum für die session cookies an! Nur das "normale" Cookie bekommt noch diesen hier verpasst: PHP-Code:
Gruß, Ulrike
__________________
Eigentlich ganz einfach, wenn man's weiss! |
|
|
|
|
|
#2 |
|
Registrierter Benutzer
Registriert seit: 01.03.2004
Beiträge: 1.255
|
Bitte bedenke wenn die SESSION nicht als aller erstes (Script Header) bei einem neuen Seitenaufruf Re-Initialisiert wird ändert sich die SID.
Das heisst, du brauchst bei jedem neuen Seiten Aufruf eine Abfrage die - deine Session aufrecht erhält, dazu muss mindestens ein Parameter vorhanden sein. PHP-Code:
__________________
mfg undefined -- Undefined Behavior (undefiniertes Verhalten) bedeutet meistens etwas ungültiges. xhtml Debugger |
|
|
|
|
|
#3 |
|
Registrierter Benutzer
Registriert seit: 27.08.2004
Beiträge: 816
|
Na klar ist session_start der erste Aufruf im php-Script.
Mir geht es irendwie wie dem Francois auf dieser Seite: http://php.net/manual/de/function.session-id.php Dein Patch hat übrigens nichts gebracht. Der Fehler tritt auch auf, wenn man bei Vorhandensein von Session-Variablen sich session_start() verkneift. Die Sessions sind ja im Firefox angekommen. Firefox scheint sie nur nicht mehr absenden zu wollen, es sei denn, man streckt ihre Lebenszeit in den Firefox-Settings bis zu den Zeitpunkt, wo der Browser geschlossen wird. Also, zwingt man den Browser dazu, die Sessions Cookies länger zu behalten, werden die Sessions in diesem Fall gesehen und korrekt ausgewertet. Ich möchte die Daten ungern ins Formular einbauen müssen, da machen die Jungs und Mädels dann Quatsch damit! Aus dem Grund darf die Lebenszeit nicht länger sein als unbedingt nötig. Also weg damit, wenn der Server sagt: Nun ist Ende. Möglicherweise gehört das Ganze ja in die "Browserabteilung". Dann bitte verschieben! Gruß, Ulrike
__________________
Eigentlich ganz einfach, wenn man's weiss! Geändert von BlueJay (26-02-2012 um 16:24 Uhr) |
|
|
|
|
|
#4 |
|
Registrierter Benutzer
Registriert seit: 01.03.2004
Beiträge: 1.255
|
Gebe mir mal den Seiten Link damit ich meinen Debugger drüber jagen kann.
__________________
mfg undefined -- Undefined Behavior (undefiniertes Verhalten) bedeutet meistens etwas ungültiges. xhtml Debugger |
|
|
|
|
|
#5 |
|
Registrierter Benutzer
Registriert seit: 27.08.2004
Beiträge: 816
|
Hm, ist ein bisschen schwierig!
1. man hat mir mittlerweile den Firefox 10.0.2 untergejubelt. 2. Du musst zocken, und zwar z.B. http://gamecraft.de/gembusters/index.htm Da ist es das Formular, was Dich zu einem Eintrag auffordert. Mit diesem Formular bekommst Du das erste Session-Cookie (Punktestand). Du gibst Deinen Namen an, das php-Script speichert Namen und Punkte und schickt Dir nochmal den Namen zwecks späterer Verwendung. Liest aber den Punktestand(Session) nicht aus. Das funktioniert im Firefox 10 in opensuse 12 nur, wenn die Cookie-Verwaltung auf "Keep until I Close Firefox" steht. Wünschenswert wäre aber: until they expire. Chromium und Konqueror arbeiten hier übrigens wie gewünscht, so dass ich den Fehler in Firefox vermute. Gruß, Ulrike
__________________
Eigentlich ganz einfach, wenn man's weiss! |
|
|
|
|
|
#6 |
|
Registrierter Benutzer
Registriert seit: 01.03.2004
Beiträge: 1.255
|
Du sendest einen Keks ohne Domaine !
Kein Guter Browser nimmt so etwas an. Wenn du nach RFC Strict gehen willst dann verwende ".hostname.tld" Der Punkt am Anfang ist wichtig!
__________________
mfg undefined -- Undefined Behavior (undefiniertes Verhalten) bedeutet meistens etwas ungültiges. xhtml Debugger |
|
|
|
|
|
#7 |
|
Registrierter Benutzer
Registriert seit: 01.03.2004
Beiträge: 1.255
|
PPS: Warum verwendest du Cookies?
HTML5 session.storage macht genau das was du möchtest!
__________________
mfg undefined -- Undefined Behavior (undefiniertes Verhalten) bedeutet meistens etwas ungültiges. xhtml Debugger |
|
|
|
|
|
#8 |
|
Registrierter Benutzer
Registriert seit: 01.03.2004
Beiträge: 1.255
|
PPS: zum ansehen mein Anhang und Sessen Expires Zeit stimmt auch nicht.
__________________
mfg undefined -- Undefined Behavior (undefiniertes Verhalten) bedeutet meistens etwas ungültiges. xhtml Debugger |
|
|
|
|
|
#9 |
|
Registrierter Benutzer
Registriert seit: 27.08.2004
Beiträge: 816
|
1. die Seiten, die auf das Script zugreifen, sind zum großen Teil erheblich älter als HTML5.
2. Ist dank php.ini domainmäßig richtig einsortiert. 3. Ein Teil der Variablen soll nur so lange als nötig leben, die kommen in Sessions. Ein andere Teil soll langlebig sein (Namen), der wird in normale Cookies verfrachtet. Ist der Name bekannt, geht das Script eine Abkürzung, ohne dass weitere Cookies oder Sessions benötigt werden. Deshalb ist dieser Fehler jetzt erst aufgefallen. 4. Session Expires Zeit, da scheint der Hund begraben zu sein. Tja, was mit dem Indianer und seinen Settings passiert, unterliegt nicht meiner Kontrolle! Mal sehen, ob ich das von hier aus umbiegen kann! Dieses hier sowie Teile der php-FAQ scheinen nicht (mehr) zu funktionieren) http://stackoverflow.com/questions/7...ession-cookies Den Lifetime explizit auf 0 zu setzen, wie es für Sitzungsdaten üblich ist, und die Domeng mit reinzupacken hat nix gebracht. Gruß, Ulrike
__________________
Eigentlich ganz einfach, wenn man's weiss! Geändert von BlueJay (26-02-2012 um 19:34 Uhr) Grund: weitere Versuche |
|
|
|
|
|
#10 |
|
Registrierter Benutzer
Registriert seit: 01.03.2004
Beiträge: 1.255
|
Deine Cookie angaben stimmen noch nicht ganz
![]() Du kannst zum Vergleich hier testen. Bitte lese auch RFC 2965 Cookie Standard. Webkit und Firefox sind hier extrem penible. Und - es muss gehen - Sonst hätten mir meine Kunden, bei den ganzen Webseiten die ich verwalte schon die Tür eingerannt.
__________________
mfg undefined -- Undefined Behavior (undefiniertes Verhalten) bedeutet meistens etwas ungültiges. xhtml Debugger |
|
|
|
|
|
#11 |
|
Registrierter Benutzer
Registriert seit: 27.08.2004
Beiträge: 816
|
Wenn ich nach Cookies und RFC 2965 google, wird mir das immer als einer der Cookie-Standards angeboten, der sich nie durchsetzen wird.
Der Haken lag aber woanders, nämlich bei den Settings von Firefox: Da hatte ich zunächst bei Cookies Accept from sites den Haken weggemacht und als Ausnahme meine Seite mit Allow eingegeben. Danach hatte ich Accept from sites wieder angeklickt, aber die Ausnahme nicht gelöscht. Die standen trotzdem auf Allow. Da hatte ich den Ärger mit den geplätteten Session Cookies. Ich habe die Ausnahmen gelöscht, FF neu gestartet, und von diesem Zeitpunkt an funktionierte alles wieder wie erwartet. Da war es wohl doch der Cookie-Manager von FF 10.0.2! ![]() Gruß, Ulrike
__________________
Eigentlich ganz einfach, wenn man's weiss! |
|
|
|
|
|
#12 |
|
Registrierter Benutzer
Registriert seit: 27.08.2004
Beiträge: 816
|
mit dem explizitem Angeben von Server und Pfaden habe ich mir ganz schön Ärger eingehandelt!
Musste erst mal checken, dass die Firewall in die Suppe spuckte, wenn ein Teil der Cookies auf www.hostname.tdl war und der andere auf hostname.tld! Und dabei hatten sich alle aus $_SERVER bedient! Das mit dem Punkt vor der Domeng war auch noch so eine Sache, das darf wohl nur beim Session-Cookie so sein, nicht beim normalen (langlebigen) Cookie. Den hat er nämlich anschließend nicht gefunden. Na, jetzt ist alles geupdatet und läuft unter Opensuse/Firefox 10 Jedenfalls 'ne Menge gelernt! ![]() Gruß, Ulrike
__________________
Eigentlich ganz einfach, wenn man's weiss! |
|
|
|
|
|
#13 |
|
Registrierter Benutzer
Registriert seit: 01.03.2004
Beiträge: 1.255
|
www ist ein Alias und hat eigentlich in den Cookie Domänen Angaben nichts zu suchen (Dafür steht der Punkt am Anfang). Das gilt für alle Cookie Varianten.
Der Punkt besagt das ab hier weitere Aliase und Unter Domänen folgen. Noch mal aufgedröselt. Punkt wird in der Namens Auflösung auch als root bezeichnet. Code:
// <root><hostname><root><topleveldomain> .hostname.tld ). Also schneidet der Browser ab.
Beispiel:
Weil Firefox/IE und Konsorten - warum auch immer. Im User Agent String die Sprachangaben nicht mehr mit geben. Obwohl das in meinen Augen Schwachsinn ist - mit JavaScript komm ich eh daran :-)
__________________
mfg undefined -- Undefined Behavior (undefiniertes Verhalten) bedeutet meistens etwas ungültiges. xhtml Debugger Geändert von undefined (02-03-2012 um 15:17 Uhr) Grund: Nachtrag SubDomains |
|
|
|
|
|
#14 | |
|
Registrierter Benutzer
Registriert seit: 27.08.2004
Beiträge: 816
|
Zitat:
Da hatte ich Cookies zum Teil doppelt unter www*.gamecraft.de und gamecraft.de (Host-Variable) Einer wurde gesehen, der andere nicht. Da half auch kein Punkt. (natürlich ohne Sternchen, aber der Editor macht sonst einen Link draus) Zu sehen unter ffcookies.jpg Und php schnappt sich als Host-Variable das, was der FF ihm liefert. Das nahm ich bisher für meine Cookie-Parameter. Böse Falle, wenn man über verschiedenen Links hereinschneit!
__________________
Eigentlich ganz einfach, wenn man's weiss! Geändert von BlueJay (03-03-2012 um 10:30 Uhr) |
|
|
|
|
![]() |
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | Thema bewerten |
|
|