Session Cookie Lebendauer erhöhen / Cookies

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Session Cookie Lebendauer erhöhen / Cookies

    Hi !

    Ich habe eine kleine Frage zur session_cookie_lifetime. Wenn ich keinen Zugriff auf die php.ini auf dem Remote-Server habe, gibt es dann eine Möglichkeit, die Lebensdauer der Cookies zu verlängern ? Über session_set_cookie_params geht das ja, aber wenn ich das richtig gelesen habe, nur für die Dauer des Skriptes und wenn ich dann den Browser schließe und wieder öffne, ist es auch schon wieder vorbei mit der Herrlichkeit ?!?
    Ich versuche nämlich ein Login zu basteln und da wäre es natürlilch nicht gut, wenn man sich beim Beenden des Browser automatisch ausloggt.

    Ok, eine Frage geht noch. Wie schaffe ich es, in ein Cookie ein ganzes Array reinzustopfen, also nicht nur eine Variable, sondern mehrere ?

    Danke schonmal

    Le_Cheffe

  • #2
    im skript:

    PHP-Code:
    session_set_cookie_params(time()+86400); 
    session_set_cookie_params geht schon .. bei mir zumindest *g*

    du musst das allerdings jedesmal setzen wenn du am cookie was änderst, sonst wird es mit ner anderen (kürzeren) zeit überschrieben und es passiert das was du nicht willst ..

    der browser löscht das cookie beim schließen ..
    mfg,
    [color=#0080c0]Coragon[/color]

    Kommentar


    • #3
      Du kannst doch einfach die Lifetime in jedem Skript ändern...ist zwar etwas umständlich, aber was soll´s. Oder du schreibst dir dein eigenes Session Objekt. Wieso soll denn bei dir der User eingeloggt bleiben, wenn er den Browser schließt?

      Wie schaffe ich es, in ein Cookie ein ganzes Array reinzustopfen, also nicht nur eine Variable, sondern mehrere ?
      PHP serialisiert dein Array automatisch, wenn du es mit setcookie setzt. Das unserialize geschieht auch von alleine.
      http://www.php.net/manual/de/function.setcookie.php

      oms
      {brigens Ein Kezboard/Treiber ist v;llig [berfl[ssig!

      Kommentar


      • #4
        Meines Wissens nach, geht das nur in der php.ini einzustellen!

        Wenn du 2 Variablen in einem Cookie soeichern willst, dann mach doch einfach:

        $cokkie="$data1|$data2";

        Und beim auslesen trennst du die Inhalte (Dafür ist der |).

        Kommentar


        • #5
          Original geschrieben von Coragon Rivito
          im skript:

          PHP-Code:
          session_set_cookie_params(time()+86400); 
          session_set_cookie_params geht schon .. bei mir zumindest *g*

          du musst das allerdings jedesmal setzen wenn du am cookie was änderst, sonst wird es mit ner anderen (kürzeren) zeit überschrieben und es passiert das was du nicht willst ..
          Wie meinst du das denn ? Ich bin davon ausgegangen (vermutlich falsch), dass, wenn ich "session.use_cookies = 1" in der PHP.INI habe, PHP automatisch bei "session_register()" die jeweiligen Variablen in Cookies abspeichert. Richtig oder falsch ?

          Original geschrieben von Coragon Rivito

          der browser löscht das cookie beim schließen ..
          Ja und genau das möchte ich ja nicht. Die Session soll ja z.B. 1 Monat lang gültig sein. Geht das ?

          @oms & Smax : Danke schön für die Tipps.

          MfG

          Le_Cheffe

          Kommentar


          • #6
            Mit void session_set_cookie_params ( int lifetime [, string path [, string domain [, bool secure]]]) kannst Du den Wert des INI-Parameters "session.cookie_lifetime" beeinflußen. Dieser steht per Default auf 0 ... was gleichbedeutend ist mit "until the browser is closed".

            Setzt Du hier also einen höheren Wert, wird der Cookie natürlich nicht mehr gelöscht wenn das Browserfenster geschlossen wird. Ein Wert von 86400 schreibt den Cookie für einen Tag, 2592000 dem entsprechend für 30 Tage ... genau einen Monat zu Treffen ist etwas problematischer, da Monate in unserem Kalender letztlich nicht immer gleich lang sind.

            Wichtig dabei ist das die Funktion session_set_cookie_params() vor dem Aufruf von session_start() verwendet wird!

            "session_register()" hat mit dem Cookie nicht die Bohne zu tun ... und Du solltest diese Funktion auch schnellstens vergessen, da diese nicht mehr verwendet werden soll! Anstatt dessen verwendet man das Superglobal $_SESSION und legt für jede variable einfach den entsprechenden index an.

            Die Variablen werden nicht in Cookies sondern in einer Datei auf der Server-Festplatte gespeichert, der Cookie dient lediglich als Referenz.
            carpe noctem

            [color=blue]Bitte keine Fragen per EMail ... im Forum haben alle was davon ... und ich beantworte EMail-Fragen von Foren-Mitgliedern in der Regel eh nicht![/color]
            [color=red]Hinweis: Ich bin weder Mitglied noch Angestellter von ebiz-consult! Alles was ich hier von mir gebe tue ich in eigener Verantwortung![/color]

            Kommentar

            Lädt...
            X