Ergebnis 1 bis 14 von 14

Thema: Firefox 7 und Session Cookies

  1. #1
    Registrierter Benutzer Avatar von BlueJay
    Registriert seit
    27.08.2004
    Beiträge
    822

    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:
     session_start(); 
    die Session-Cookies werden gesetzt mit

    PHP-Code:
    $_SESSION['lang']=$lang
    in dem Moment sehe ich sie auch im Firefox, aber das Auslesen mit
    PHP-Code:
     if (isset($_SESSION["lang"])) $my_lang=intval($_SESSION["lang"]); 
    geht später daneben. Die Session-Variable sehe ich dabei noch im FF.
    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:
    $eintag=60*60*24;
    setcookie ("snamen"$my_snamentime()+7*$eintag); 
    Wie kann ich da Abhilfe schaffen?

    Gruß,
    Ulrike
    Eigentlich ganz einfach, wenn man's weiss!

  2. #2
    Registrierter Benutzer Avatar von undefined
    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:
    if ( ! isset( $_SESSION[session_name()] ) )
    {
       
    $p = ( (int)$_SERVER["SERVER_PORT"] == 443 ) ? true false;
       
    $s ".hostname.tld"// Der Punkt vorm Host ist wichtig!

       
    session_set_cookie_params0"/"$s$p );

       if ( 
    $p )
          
    session_cache_limiter('private_no_expire');

       
    session_start();

       if( 
    strlensession_id() ) < )
          
    session_regenerate_idtrue );

       
    $_SESSION[session_name()]['LAST_USED'] = microtime();

    mfg undefined
    --
    Undefined Behavior (undefiniertes Verhalten) bedeutet meistens etwas ungültiges.
    xhtml Debugger

  3. #3
    Registrierter Benutzer Avatar von BlueJay
    Registriert seit
    27.08.2004
    Beiträge
    822
    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
    Geändert von BlueJay (26-02-2012 um 16:24 Uhr)
    Eigentlich ganz einfach, wenn man's weiss!

  4. #4
    Registrierter Benutzer Avatar von undefined
    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. #5
    Registrierter Benutzer Avatar von BlueJay
    Registriert seit
    27.08.2004
    Beiträge
    822
    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. #6
    Registrierter Benutzer Avatar von undefined
    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. #7
    Registrierter Benutzer Avatar von undefined
    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. #8
    Registrierter Benutzer Avatar von undefined
    Registriert seit
    01.03.2004
    Beiträge
    1.255
    PPS: zum ansehen mein Anhang und Sessen Expires Zeit stimmt auch nicht.
    Angehängte Grafiken Angehängte Grafiken
    mfg undefined
    --
    Undefined Behavior (undefiniertes Verhalten) bedeutet meistens etwas ungültiges.
    xhtml Debugger

  9. #9
    Registrierter Benutzer Avatar von BlueJay
    Registriert seit
    27.08.2004
    Beiträge
    822
    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
    Geändert von BlueJay (26-02-2012 um 19:34 Uhr) Grund: weitere Versuche
    Eigentlich ganz einfach, wenn man's weiss!

  10. #10
    Registrierter Benutzer Avatar von undefined
    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. #11
    Registrierter Benutzer Avatar von BlueJay
    Registriert seit
    27.08.2004
    Beiträge
    822
    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. #12
    Registrierter Benutzer Avatar von BlueJay
    Registriert seit
    27.08.2004
    Beiträge
    822
    Zitat Zitat von undefined Beitrag anzeigen
    Deine Cookie angaben stimmen noch nicht ganz
    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. #13
    Registrierter Benutzer Avatar von undefined
    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
    Daraus ergibt sich für die Namens Auflösung ein Bereich von zwei Blöcke. Traditionell ist hierbei die TLD nicht zugänglich ( Ping mal eine TLD ). Also schneidet der Browser ab.
    • <root><hostname>
    • <root><topleveldomain> ## wird nicht ausgewertet

    Soll heißen - Das wenn du auf der Obersten Domäne ein Cookie vergibst dieses auch für Sub-Domain gültig ist.
    Beispiel:
    • .gamecraft.de ## Für alle Subdomains zum LESEN zugänglich
    • .games.gamecraft.de ## kann erben (LESEN) aber nur an seine SubDomains weiter vererben

    Die meisten Webseiten geben so die Sprache der Browser weiter.
    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 :-)
    Geändert von undefined (02-03-2012 um 15:17 Uhr) Grund: Nachtrag SubDomains
    mfg undefined
    --
    Undefined Behavior (undefiniertes Verhalten) bedeutet meistens etwas ungültiges.
    xhtml Debugger

  14. #14
    Registrierter Benutzer Avatar von BlueJay
    Registriert seit
    27.08.2004
    Beiträge
    822
    Zitat Zitat von undefined Beitrag anzeigen
    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.
    Sag das mal FF10!

    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!
    Geändert von BlueJay (03-03-2012 um 10:30 Uhr)
    Eigentlich ganz einfach, wenn man's weiss!

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •