Warum funktioniert PHP session_destroy () nicht?
Ich versuche, alles zu zerstören, sesion-variable mit den session_destroy()
- Methode, sondern nach der Verwendung der Methode, die Werte werden nicht zerstört.
Warum ist session_destroy()
funktioniert nicht?
Ist es irgendeine andere Weise zu zerstören der session in PHP?
if (isset($_SESSION['LAST_ACTIVITY']) && (time() - $_SESSION['LAST_ACTIVITY'] > 1800))
{
session_destroy();
session_unset();
}
InformationsquelleAutor der Frage Rajasekar Gunasekaran | 2011-06-24
Du musst angemeldet sein, um einen Kommentar abzugeben.
Nach der Verwendung
session_destroy()
die session zerstört wird hinter den kulissen. Aus irgendeinem Grund hat keinen Einfluss auf die Werte in$_SESSION
die bereits besiedelt war für diese Anforderung, aber es wird leer sein, in Zukunft Anfragen.Können Sie manuell löschen
$_SESSION
wenn Sie dies wünschen ($_SESSION = [];
).InformationsquelleAutor der Antwort Andrea
Vielleicht viel zu spät, um zu reagieren, aber, stellen Sie sicher, dass Ihre session initialisiert wird, bevor es zu zerstören.
d.h. Sie können nicht zerstören, einer Sitzung in logout.php wenn Sie initialisiert Ihrer Sitzung in index.php. Starten Sie Sitzung in logout.php bevor es zu zerstören.
InformationsquelleAutor der Antwort R.D.
Wenn Sie brauchen, um klar die Werte der
$_SESSION
setzen Sie die array-gleich einer leeren array:Natürlich, Sie können nicht auf die Werte von
$_SESSION
auf einer anderen Seite, sobald Sie rufensession_destroy
so spielt es keine Rolle, dass viel.Versuchen Sie Folgendes:
InformationsquelleAutor der Antwort mc10
Tatsächlich, es funktioniert, aber Sie müssen auch zu tun
$_SESSION = array();
nach dem session_destroy um loszuwerden, $_SESSION Variablen. Vermeiden Sie es jedoch, zu tununset($_SESSION)
da die Sitzungen sinnlos.InformationsquelleAutor der Antwort yitwail
Gut, dies scheint ein neues problem für mich, mit einer neuen php-server. In der Vergangenheit hatte nie ein Problem mit den sessions nicht zu Ende.
In einem test-sessions, richte ich eine Sitzung, lief eine session count++ und Schloss die Sitzung. Reloaded die Seite und zu meiner überraschung die variable blieb.
Habe ich versucht, den folgenden Vorschlag gepostet von mc10
Aber das hat nicht funktioniert. Ich wusste nicht, dass es funktionieren könnte, da die Sitzung nicht aktiv war, nachdem es zu zerstören, so dass ich hob es.
Ging das Neuladen der Seite ab sessios und überprüfen Sie die set-Variablen zeigte Ihnen die leeren/nicht-stellen.
Wirklich nicht sicher, warum session_destroy() funktioniert nicht auf diese PHP-Version 5.3.14-server.
Weiß nicht wirklich, solange ich weiß, wie klar die Sitzungen.
InformationsquelleAutor der Antwort Dave Henderson
session_destroy()
ist wirksam nach dem laden der Seite abgeschlossen ist. Also in der zweiten hochladen, wird die Sitzung beendet. Aber mitunset()
Sie können auch melden Sie sich innerhalb der Seite.InformationsquelleAutor der Antwort Mert S. Kaplan
Funktioniert es , aber manchmal ist es nicht (überprüfen Sie das Beispiel weiter unten)
Komisch!! Richtig ?
Wie dies zu überwinden ?
In den oben genannten Szenario , wenn Sie ersetzen
session_destroy();
mitunset($_SESSION['name']);
es funktioniert wie erwartet.Aber ich will zu zerstören, alle Variablen, die nicht nur einen einzigen !
Ja es gibt eine Lösung für dieses auch. Nur entfernt den
$_SESSION
array. [Credits Ivo Pereira]InformationsquelleAutor der Antwort Shankar Damodaran
Hinzufügen session_start(); vor !Doctype-Deklaration
InformationsquelleAutor der Antwort user3764953