Linuchs: Eigenschaften von Cookies auslesen - PHP und Javascript

problematische Seite

Moin,

für meine Domain möchte ich Cookies anzeigen, erklären und - wenn möglich - per Javascript ändern / löschen.

Falls jemand die problematische Seite testen möchte: Erstmal ein Cookie setzen, z.B. durch Aufruf des Ortskalenders Brunsbüttel.

Es kann mehrere Cookies mit gleichem Namen geben. Zum Beispiel, wenn sie sich auf unterschiedliche Ordner beziehen oder Subdomains oder ???

Wenn ich Cookies per Javascript ändere, werden die durchaus von PHP beim nächsten Aufruf ignoriert. Und ich weiss nicht genau, warum. Oder durch Schreiben per JS entsteht ein zweites Cookie mit gleichem Namen.

Welche Eigenschaften haben Cookies und wie kann ich diese per PHP und per Javascript auslesen?

  • Ablaufdatum
  • Gültigkeit für www. und/oder ohne www.
  • gültig für welche Ordner?
  • ...

fragt Linuchs

  1. problematische Seite

    Moin,

    ver3feln ist schlimmer als ver2feln. Mit zeitlichen Abständen bin ich seit Monaten dabei, Cookies per Javascript zu ändern oder zu löschen.

    Immer wieder erzeugt und meldet JS mehrere Cookies mit demselben Namen. Mir ist schleierhaft, wie die gleichzeitig existieren können. Ein Bug vom Firefox 92.0?

    Bei php.net lese ich, mit welchen Eigenschaften PHP ein Cookie setzen kann:

     setcookie(
        string $name,
        string $value = "",
        int $expires = 0,
        string $path = "",
        string $domain = "",
        bool $secure = false,
        bool $httponly = false
    ): bool
    

    Nun möchte ich Cookie $name mit JS löschen:

    var cookie_string
    = cookie_key    +"="
    + ";expires=Thu, 01 Jan 1970 00:00:01 GMT"  // Vergangenheit
    + ";path=/"                                 // / und alle Unterordner
    + ";domain=remso.eu"                        // fuer remso.eu und www.remso.eu
    ;
    console.log( "cookie_string=[" +cookie_string +"]" );
    document.cookie = cookie_string;
    

    Die Konsole meckert: „Einige Cookies verwenden das empfohlene "SameSite"-Attribut inkorrekt.“ (was ist das?)

    Anzeige:

    cookie_string=[test=;expires=Thu, 01 Jan 1970 00:00:01 GMT;path=/;domain=remso.eu]

    Doch das Cookie verschwindet nicht.

    Liegt es

    • am path,
    • an domain
    • oder wird das Datum ignoriert?
    1. problematische Seite

      wann genau werden Cookies gelöscht?

      Wie kann es sein, dass JS um 20:03 GMT das Cookie sieht, das um 19:58 GMT erlischt?