Dadsche: session_destroy(); löscht nicht

Hallo,
ich habe ein Problem, meine Session wird mit dem Befehl session_destroy(); nicht gelöscht.

<?php
if($rang=="1"){
session_destroy();
$rang = "0";
};
if($rang=="0"){
echo "Sie wurden erfolgreich ausgeloggt";
};
?>

$rang = 0
dies bedeutet das der User keine Berechtigung hat die Dateien einzusehen.

MfG Dadsche

  1. Hello,

    Hallo,
    ich habe ein Problem, meine Session wird mit dem Befehl session_destroy(); nicht gelöscht.

    <?php
    if($rang=="1")
    {
      session_destroy();
      $rang = "0";
    };

    if($rang=="0")
    {
      echo "Sie wurden erfolgreich ausgeloggt";
    };
    ?>

    Welche Session soll denn gelöscht werden?
    Woher kommmt $rang?
    Woran erkennt Du, dass die Session nicht gelsöcht wird?
    Was passiert denn denn bei session_destroy() ?

    Harzliche Grüße aus http://www.annerschbarrich.de

    Tom

    --
    Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
    Nur selber lernen macht schlau
  2. Moin!

    ich habe ein Problem, meine Session wird mit dem Befehl session_destroy(); nicht gelöscht.

    Du solltest ein Login/Logout nicht durch die Existenz oder Nichtexistenz einer Session regeln, sondern den Status des Benutzers (eingeloggt oder nicht) in der Session speichern - und diese solange fortführen, bis sie aufgrund von Nichtbenutzung durch PHP automatisch gelöscht wird.

    Wichtige Daten, die nur bei einem eingeloggten Benutzer zur Verfügung stehen sollen, kannst du beim Logout löschen.

    Und ein zeitlich begrenztes Login, welches durch Inaktivität ungültig wird, realisierst du ebenfalls durch die Session, indem du die Zeit des letzten Zugriffs speicherst und bei jedem neuen Zugriff zuerst prüfst, ob diese Zeit nicht schon zu lange zurückliegt. Wenn ja: Logoutprozedur durchführen und Benutzer zum erneuten Login führen. Wenn nein: Aktuelle Zeit speichern und weitermachen.

    - Sven Rautenberg

    1. Hello,

      Du solltest ein Login/Logout nicht durch die Existenz oder Nichtexistenz einer Session regeln, sondern den Status des Benutzers (eingeloggt oder nicht) in der Session speichern - und diese solange fortführen, bis sie aufgrund von Nichtbenutzung durch PHP automatisch gelöscht wird.

      Wichtige Daten, die nur bei einem eingeloggten Benutzer zur Verfügung stehen sollen, kannst du beim Logout löschen.

      Und ein zeitlich begrenztes Login, welches durch Inaktivität ungültig wird, realisierst du ebenfalls durch die Session, indem du die Zeit des letzten Zugriffs speicherst und bei jedem neuen Zugriff zuerst prüfst, ob diese Zeit nicht schon zu lange zurückliegt. Wenn ja: Logoutprozedur durchführen und Benutzer zum erneuten Login führen. Wenn nein: Aktuelle Zeit speichern und weitermachen.

      Das wird so ungefähr auch hier [pref:t=85207&m=501066] beschreiben und sicher wird der Mitposter das noch genauer ausarbeiten...

      Harzliche Grüße aus http://www.annerschbarrich.de

      Tom

      --
      Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
      Nur selber lernen macht schlau
    2. Hallo!

      Wichtige Daten, die nur bei einem eingeloggten Benutzer zur Verfügung stehen sollen, kannst du beim Logout löschen.

      Man sollte bei der Gelegenheit beachten, dass im Fall von safe-mode Session-Daten nicht sicher sind, das heißt dass andere User (Kunden auf demselben Server) die Session-Daten lesen und manipulieren können. Safe-Mode ist eben ein Workaround, und nicht 100% verlässlich. Daher verwenden die meisten Provider diese Methode auch nicht (sondern cgi+suexec...), aber es gibt welche die das so machen.

      Aber das nur am Rande ;-)

      Grüße
      Andreas

      --
      SELFHTML Feature Artikel: http://aktuell.de.selfhtml.org/artikel/
      1. Hello,

        Wichtige Daten, die nur bei einem eingeloggten Benutzer zur Verfügung stehen sollen, kannst du beim Logout löschen.
        Man sollte bei der Gelegenheit beachten, dass im Fall von safe-mode Session-Daten nicht sicher sind, das heißt dass andere User (Kunden auf demselben Server) die Session-Daten lesen und manipulieren können. Safe-Mode ist eben ein Workaround, und nicht 100% verlässlich. Daher verwenden die meisten Provider diese Methode auch nicht (sondern cgi+suexec...), aber es gibt welche die das so machen.

        Aber das nur am Rande ;-)

        Erklär mal bitte genauer.
        Wenn ich open_basedir für den User passend gesetzt habe, können andere User mit anderen Einstellungen für open_basedir trotzdem an meine Sessions? Ich probiers selber nochmal aus, aber welcher Provider benutzt safe_mode ohne open_basedir?

        Harzliche Grüße aus http://www.annerschbarrich.de

        Tom

        --
        Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
        Nur selber lernen macht schlau