PHP session

  • hi.

    wie baue ich ein session management richtig auf?
    muss ich die session id selbst erzeuegen?
    was sollte ich noch in die session schreiben?

    mfg

  • Bandit, ich kapier solche Antworten nicht - wozu gibt es überhaupt ein Forum, wenn man erst recht wieder auf Google verwiesen wird? Da würd ein Autoresponder, der das einfach grundsätzlich immer zurückschreibt auch ausreichen...

    @ Themenstarter, was genau willst du machen ? Ein Loginsystem ?
    Die Session ID generiert sich automatisch beim Aufruf von session_start() - mittels session_id() lässt sich die interne Verknüpfung (die Session ID) auslesen und auch ändern.
    Die Session ID per se ist einzigartig pro Browsersitzung und verknüpft einen Cookie mit dieser ID am Rechner des Nutzers dann mit dem superglobalen Array $_SESSION[] das beliebig Daten speichert.

    seite1.php

    PHP
    session_start();
    $_SESSION['test'] = 'Das ist ein Testspeicher.';

    seite2.php

    PHP
    session_start();
    echo $_SESSION['test'];

    Zu beachten ist, daß der Nutzer Cookies aktiviert haben muss. Wenn keine Cookies aktiviert sind - das sollte man immer überprüfen, auch wenns heutzutage gang und gäbe ist - kann man die Session ID notfalls auch immer per GET Parameter weiterschicken.

    Das mal so der Grundsatz zu PHP mit Sessions

    PHP
    if(isset($this) || !isset($this)){ // that's the question...

    Einmal editiert, zuletzt von Teron Gerofied (21. Mai 2013 um 18:30)

  • vielen Dank für meine antwort.

    es geht mir nur darum ob ich die session ID selbst erzeugen muss.
    in vielen tutorials lese ich immer wieder das die session ID gesetzt wird. verstehe aber nicht warum, da (wie du so schön beschrieben hast) "Die Session ID generiert sich automatisch beim Aufruf von session_start() "

    lg

  • Bandit, ich kapier solche Antworten nicht - wozu gibt es überhaupt ein Forum, wenn man erst recht wieder auf Google verwiesen wird? Da würd ein Autoresponder, der das einfach grundsätzlich immer zurückschreibt auch ausreichen...


    Du musst solche Antworten genauso wenig kapieren, wie ich solche grundlegenden Fragen nicht verstehe, die in 'zig Tutorials nachzulesen sind und zu den Grundlagen gehören. Ich biete hier keinen "Tutorial-Vorlese-Service"!

  • Naja, wozu ist man dann überhaupt in einem Forum, daß sich genau auf sowas spezialisiert ? ^^ Ich denk mal, es wird vergleichsweise beiweitem mehr Anfängerfragen geben als Probleme in komplexe Algorithmen zu knacken... also sprich die interessanten Sachen.

    PHP
    if(isset($this) || !isset($this)){ // that's the question...
  • Kann mir jetzt jemand die frage beantworten warum session ids oft manuel erstellt werden?

    ich habe google benutzt und verschiedene tutorials gefunden. leider beantwortet mir keines die frage.

  • Werden sie nicht - sie werden meistens automatisch generiert.

    Es reicht also vollkommen, wenn du weißt: durch session_start() hast du eine ID automatisch bekommen und mit session_id() kannst du sie auslesen und ändern. Aber das Ändern einer Session ID ist nicht die Regel sondern nur in speziellen Ausnahmefällen und mir würde auch kein Grund einfallen, warum man eine session_id() manuell festlegen sollte...

    Vllt war das, was du gesehen hast, nur zu Anschauungszwecken

    PHP
    if(isset($this) || !isset($this)){ // that's the question...
  • Naja, wozu ist man dann überhaupt in einem Forum, daß sich genau auf sowas spezialisiert ?


    google füttern mit

    Zitat

    php session tutorial


    Direkt das erste Ergebnis und direkt der erste Abschnitt:

    Zitat

    PHP Sessions
    Mit PHP Sessions hat man die Möglichkeit, bestimmte Daten während einer Folge von Aufrufen eurer Website festzuhalten.
    Dem Besucher wird eine einzigartige Session-ID zugeordnet. Somit kann PHP den Besucher genau Identifizieren. Diese Session ID wird entweder als Cookie gespeichert oder mit an die URL gehängt.


    Warum um alles in der Welt müssen dann solche Dinge in einem Forum geklärt werden. Mit etwas Eigeninitiative findet man das in Sekunden, da haben jetzt mehr Leute mehr Zeit in diesem Thread verbracht.

    Und nein, forum-hilfe hat sich nicht auf solche Sachen spezialisiert. Es gibt anderen Foren, in denen PHP das Hauptthema ist.

  • Werden sie nicht - sie werden meistens automatisch generiert.

    Es reicht also vollkommen, wenn du weißt: durch session_start() hast du eine ID automatisch bekommen und mit session_id() kannst du sie auslesen und ändern. Aber das Ändern einer Session ID ist nicht die Regel sondern nur in speziellen Ausnahmefällen und mir würde auch kein Grund einfallen, warum man eine session_id() manuell festlegen sollte...

    Für das regelmäßige Wechseln der Session ID über session_regenerate_id() gibt es sehr gute Gründe, nämlich Sicherheit vor Session-Diebstahl.

    Die manuelle Vergabe einer Session ID benötigt man wohl in den wenigsten Fällen, kann aber durchaus Sinn machen, wenn Sessions länger gespeichert werden und Admins gegebenenfalls eine ältere Session übernehmen, sei es aus Debugging-, Wartungsgründen oder sonstwas.

    Edit:
    Hier auch noch ein guter Artikel zum Thema Session-Sicherheit, die Inhalte sollte man auf jedenfall kennen und berücksichtigen wenn es um sensible Daten geht:
    http://phpforum.de/forum/showthread.php?t=216531

    "Programming today is a race between software engineers
    striving to build bigger and better idiot-proof programs,
    and the universe trying to build bigger and better idiots.
    So far, the universe is winning."
    Rick Cook

  • session_regenerate_id() generiert die Session ID aber auch automatisch.

    Ich habe auch nichts gegenteiliges behauptet. Das bezog sich auf diese Aussage von dir:

    Aber das Ändern einer Session ID ist nicht die Regel sondern nur in speziellen Ausnahmefällen

    Das ist nämlich falsch, session_regenerate_id() ist bei sensiblen Session-Daten ein Sicherheitsfaktor den man berücksichtigen sollte, wenn man verantwortungsvoll coden möchte.

    "Programming today is a race between software engineers
    striving to build bigger and better idiot-proof programs,
    and the universe trying to build bigger and better idiots.
    So far, the universe is winning."
    Rick Cook

  • Achsoo, da hab ich mich blöd ausgedrückt: Ich meinte damit das MANUELLE ändern einer Session ID, sprich, daß man ihr selbst einen Wert gibt.

    PHP
    if(isset($this) || !isset($this)){ // that's the question...
  • Da stimme ich dir zu, das wird wirklich nur selten in Sonderfällen benötigt.

    "Programming today is a race between software engineers
    striving to build bigger and better idiot-proof programs,
    and the universe trying to build bigger and better idiots.
    So far, the universe is winning."
    Rick Cook