Philipp: Sessions zerstören

Hallo,
ich habe ein eigenes Login-System geschrieben. Hierfür verwende ich Session, in denen der Benutzername übertragen wird. Jetzt möchte ich die Session beim Logout zerstören. Leider tritt dabei aber immer ein fehler auf:

Script:

LINE4  $id = $HTTP_GET_VARS['id'];  //ID auslesen aus URL
LINE5  session_id($id);             //Session mit der ID->$id öffnen
LINE6  session_destroy();           //Alles Sessiondaten zerstören!!

Den fehler, den ich angezeigt bekomme lautet folgendermaßen:

"Warning: Wrong parameter count for session_destroy() in logout.php on line 6"

Noch eine zusatzfrage: -Manche User klicken nicht auf Logout. Ist es deswegen möglich die session anderst zu zerstören (z.B. nach 30min.)?

Könntet ihr mir dabei bitte weiterhelfen. Ich danke euch schon vielmals im vorraus.

cu Phil

  1. ich kenn mich mit sessions nicht aus,
    aber es wrong parameter count heißt ja wohl eindeutig, dass session_destroy();
    irgendwelche parameter erwartet.
    mfg

    1. Hi,

      ok es muss Parameter enthalten. Aber kann mir jemand sagen welche ???

      vielen Dank

      cu Phil

      1. hm,
        hab gerade mal bei selfphp geschaut. da steht dass es keine erwartet!! komisch! weiß auch nicht, sorry.
        mfg

  2. N'Abend,

    also zunächst die einfache Frage:
    Die Sessions zerstören sich - in einer vom Administrator eingestellten Zeit - von selbst. Dafür sorgt der Webserver. Je nach Einstellung geschieht dies sogar sobald der Browser dem die Session gehörte geschlossen wurde.

    Zu der anderen Sachen:  Also session_destroy braucht für gewöhnlich keine Parameter, damit gibt es - schätze ich - zwei Möglichkeiten für den Fehler:

    1. Irgendwo anders fehlt ein Parameter
    2. Die Session ist nicht korrekt initialisiert. Ich kann jetzt gerade mit dem Befehl session_id nichts anfangen. Wir haben immer session_start() am Anfang jedes Skriptes benutzt, das hat dann automatisch die Session anhand der ID wiederhergestellt. Dann klappt das destroy auch ohne Probleme

    Rouven

  3. Hi!

    Script:

    LINE4  $id = $HTTP_GET_VARS['id'];  //ID auslesen aus URL
    LINE5  session_id($id);             //Session mit der ID->$id öffnen
    LINE6  session_destroy();           //Alles Sessiondaten zerstören!!

    session_id() startet keine Session, siehe http://www.php3.de/manual/de/function.session-id.php, damit weist Du nur eine SessionID zu, was aber unnötig ist, denn das macht PHP alleine! Verwende statt Line 4 und 5 nur session_start().

    Den fehler, den ich angezeigt bekomme lautet folgendermaßen:

    "Warning: Wrong parameter count for session_destroy() in logout.php on line 6"

    Kommt vermutlich daher dass PHP nicht weiß welche Session es beenden soll, da gar keine gestartet wurde!

    Lies am besten mal http://www.php-faq.de/ch/ch-version4_session.html
    http://www.php-faq.de/q/q-sessions-wie.html
    http://www.php3.de/manual/de/ref.session.php

    Grüße
    Andreas