PHP Sessions

Es gibt 1 Antwort in diesem Thema. Der letzte Beitrag () ist von KlyX.

    Hey Leute,

    ich brauch n bisschen Hilfe von euch.
    Ich hab schon gegoogled aber jeden code den ich gefunden hab, geht nicht.
    Ich will, dass man insgesammt ein Jahr angemeldet bleibt.
    Jedoch bin ich dann nur so lange online, bis ich den Browser neugestartet habe.

    Das ist mein Code:

    PHP-Quellcode

    1. $_SESSION["user_username"] = $data["username"];


    Wie kann ich da Zeit hinzufügen?


    lg Jay
    Dir ist schon klar, dass wenn du Sessions ein Jahr lang speicherst (was ich ziemlich sinnlos finde) bei vielen Besuchern relativ viel Daten auf dem Server anfallen. Denn eine Session speichert sich alle nötigen Daten auf dem Server. Der User hat grundsätzlich nur eine Session-ID.
    Sprich: wenn du am Tag 100 User hast, denen eine Session zugeteilt wird, dann macht das pro Monat 3000 Sessions, das sind pro Jahr dann 36'000 Sessions. Was natürlich nicht heisst, dass das nicht speicherbar wäre (das ist es sowieso). Aber es ist viel Müll für nix. Ich würd mir da was Anderes einfallen lassen.

    Grundsätzlich zum Thema Sessions empfehle ich usegroup.de/software/phptutorial/sessions.html
    Da werden alle Codeteile relativ gut erklärt.

    Zum Thema Session-Laufzeit: grundsätzlich wird die Laufzeit einer Session in der php.ini festgelegt. Du findest die entsprecheden Parameter hier. Eine Session kann also schon mal nicht länger existieren, als in der php.ini festgelegt ist. Auf die php.ini hast du aber in der Regel keinen Zugriff, wenn du reinen Webspace angemietet hast. Wenn du nen Server hast, dann kannst die natürlich anpassen. Dann php restarten und gut ist.

    Wenn du die Laufzeit der Session über PHP steuern willst, dann schlage ich vor, dass du einen Zeitstamp setzt, an dem die Session ausläuft. Also jetzige Zeit plus deine definierte Zeit. den Wert speicherst du in die Session (z.B. in die Variabke $_SESSION["session_ablaufzeit"]). Beim Seitenaufruf überprüfst du die aktuelle Zeit mit dem Timestamp. Ist der abgelaufen kippst du die Session weg.
    Aber wie gesagt: maximale Lebensdauer einer Session definiert die php.ini und das kannst du auch mit der Ablaufzeit via PHP nicht ändern ;)

    Gruss
    KlyX
    Chris' Weblog - Mein Blog rund um Vieles :D