kostenloser Webspace werbefrei: lima-city


session_unset(); = falsch?

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    thecity

    Kostenloser Webspace von thecity

    thecity hat kostenlosen Webspace.

    Moin,
    ich arbeite bei meinen scripts gerne mit sessions.
    Wenn sich ein user ausloggen will verwende ich meist session_unset(); um die sessiondaten zu löschen.
    Jetzt habe ich aber in der php manu folgendes gefunden: "Verwenden Sie session_unset() nur bei veraltetem Code, bei dem nicht $_SESSION benutzt wird."
    Ich benutzte aber session variablen, warum soll man dafür kein session_unset verwenden? Hab leider nirgendwo eine richtige erklärung gefunden.
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. 1. ;) Wo steht das?
    Weder Deutsch: http://de2.php.net/manual/de/function.session-unset.php
    Noch Englisch: http://de2.php.net/manual/en/function.session-unset.php

    2. Um die Session vollständig zu zerstören (d.h. auch die Daten aus dem Dateisystem von PHP zu entfernen) musst du noch session_destroy() einsetzen. ;)

    3. Solltest du eventuell Session IDs über Cookies abfragen, musst du den Session Cookie noch über setcookie löschen (Verfallsdatum in der Vergangenheit) ;)
  4. fabo schrieb:
    @rob

    http://php.net/manual/de/function.session-destroy.php

    Siehe "Anmerkungen"


    Oh, dann nehme ich das zurück. ;) Trotzdem, die Verwendung von session_destroy() hatte er nicht erwähnt.
    Und die Cookie Sache. Das ist mir auch schon passiert. Ich lasse SessionIDs generell nur über Cookies abfragen.;) Und wenn dieses Cookie noch gesetzt ist, bringt dir das einen Haufen Timeout Meldungen. ;)
  5. g****e

    session_unset();    
    if (isset ($_COOKIE['PHPSESSID'])) {
        setcookie ("PHPSESSID", "", time() - 86400);
    }
    session_destroy();


    so würd ich ne session beenden.

    session_unset -> erstmal varis löschen
    PHPSESSID-> guggen ob cookie von der sitzung existiert, wenn ja löschen (manchmal legt PHP die gern von allein an, der standartname dieser sessioncookies lautet eben PHPSESSID)
    session_destroy -> vernichtet alle daten die auf dem server in bezug zur session existieren

    ob session_unsetz in dem fall überhaupt nötig is weiß ich nicht, ich habs mal so gelernt ;-)
  6. ggamee schrieb:
    session_unset();    
    if (isset ($_COOKIE['PHPSESSID'])) {
        setcookie ("PHPSESSID", "", time() - 86400);
    }
    session_destroy();

    [..]

    ..derstandartname dieser sessioncookies lautet eben PHPSESSID)

    [..]


    Und eben deshalb, weil es nur der Standartname ist, jedoch nicht verpflichtend der Sessionsname, solltest du das ganze lieber mit session_name() machen. Die Funktion gibt immer den Namen der Session (der, der eben in der php.ini unter dem Feld, ich glaub, session.name, angegeben ist. ;) Standartmäßig halt PHPSESSID, aber wer weißt ;))

    session_unset();    
    if (isset ($_COOKIE[session_name()])) {
        setcookie (session_name(), '', time() - 86400);
    }
    session_destroy();
  7. g****e

    das ist voll korrekt und super robbmaster! danke für den tipp =)
    für den threadersteller:
    der standartname einer session ist in der PHP.ini festgelegt. normalerweise lautet dieser PHPSESSID, allerdings kann er auch jeden anderen namen annehmen (je nach einstellung). wie der robbmaster richtig gesagt hat, kann man den auslesen und dann immer den richtigen cookie löschen. da hätt ich auch dran denken können^^
    danke =)
  8. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!