Warning: session_destroy(): Trying to destroy uninitialized session
meiner Klasse.inc-Datei:
<?php
class logout{
public function logout(){
$_SESSION = array();
if (ini_get("session.use_cookies")) {
$params = session_get_cookie_params();
setcookie(session_name(), '', time() - 42000, $params['path'], $params['domain'], $params['secure'], $params["httponly"]);
}
session_destroy();
}
}
?>
verwendet code für mein logout:
session_start();
require($path."include/class.inc");
if(!empty($_GET['logout'])){
$object=new logout();
$object->logout();
$content='5;url='.$path.'index.php';
}
Wenn die logout
Funktion aufgerufen wird, zerstört Sie die Sitzung, zeigt aber die Warnung:
Warning: session_destroy(): Trying to destroy uninitialized session in class.inc on line 9
Ich bin nicht in der Lage zu beheben sein, da die session wird nicht zerstört wird, durch andere Mittel vor der session_destroy()
von class.inc
.
- Wo sind Sie dem Start der session?
- Dieser Fehler Warnung kommt, wenn es keine session gestartet.
- ich bin dem Start der session in jeder Seite an der Spitze gerade nach
<?php
mitsession_start();
- Auch auf Ihrer logout-Seite?
- meine Abmeldung ist auf der gleichen Seite nur. es ist von innen eine Leiter.inc-Datei, die enthalten ist in jeder Seite.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Müssen Sie die Funktion aufrufen, die unten erwähnt werden an der Spitze Ihrer logout-Funktion in der logout-Klasse.
Fügen Sie die oben genannten Funktion und probieren Sie es aus. Wenn Sie nicht am Beginn der Sitzung an den Anfang der Datei, wird es Ausnahmen wie "headers already sent", "can' T start the session", etc.
session_start()
in jeder Klasse der Sitzung verwendet wird. sonst ist das auslösen eines Fehlers.Dieser Fehler ist üblich, wenn Sie noch nicht begonnen, die session vorher
if(!session_id()) session_start();
Ich traf die
session_destroy()
Fehlermeldung, wenn ich begann mitsession_write_close()
. Um festzustellen, obsession_destroy()
genannt werden sollte oder nicht, ich hatte Folgendes zu tun:In PHP >= 5.4 sollte es funktionieren zu ersetzen
if (self::$haveSession)
mitif(session_status() === PHP_SESSION_ACTIVE)
.Können Sie fügen Sie diesen code um eine Sitzung zu starten, wenn es nicht zu starten, bevor
Starten Sie Ihre Sitzung
und können Sie zerstören Ihre Sitzungsession_start();
@
aus@session_destroy();
es zeige die Warnung.Notice: A session had already been started - ignoring session_start() in class.inc on line 2
wie die Datei enthalten ist in jeder Datei nachsession_start();
. also zweisession_start();
wird, erscheint ein Hinweis.Müssen Sie rufen session_start() vor dem Aufruf von session_destroy();
Sind Sie die Speicherung von session-Daten in Dateien oder in einer Datenbank. Wenn Sie die Speicherung in einer Datenbank, die ich in der Regel nur löschen des Datensatzes aus der session-Tabelle, entspricht der session-id, so dass Sie nicht haben, um die Registrierung jeder Sitzung var und es löscht tatsächlich die gesamte Sitzung.