Dennis Wronka
Soulcollector
Hi Leute, ich hab jetzt auch mal wieder ein Problem, und zwar ein interesseantes.
Erstmal das Script in dem ich den Fehler vermute, denn durch auskommentieren eines Blocks kann funktioniert das Logout wieder.
cleansessions.php
Der Teil zwischen den Kommentaren verursacht irgendwie, dass ich mich nicht mehr ausloggen kann wenn ich einmal ausgeloggt bin.
Der Grund fuer diesen Schnipsel Code ist einfach. Da ich mit session_save_path() einen alternativen Pfad zum Speichern des Sessions festlege werden diese Sessions nicht durch die Garbage Collection von PHP geloescht.
Daher soll der problematische Abschnitt ueberpruefen ob die Session 10 Minuten nicht mehr geaendert wurde und dann loeschen.
Wenn dieser Part auskommentiert ist kann ich mich ein- und ausloggen wie ich lustig bin. Wenn der Part aber aktiv ist, dann ist Schluss mit lustig.
Dann kann ich mich einloggen, aber wenn ich auf Logout klicke bringt das nichts.
Da das auskommentieren dieses Abschnitts, wie schon gesagt, hilft bin ich sicher, dass das Problem dort liegt. Ich kann es mir aber nicht wirklich erklaeren warum.
Ach ja, ich hab das natuerlich auch mal lokal auf meiner Box getestet, und da funktioniert es einwandfrei.
Bei mir ist der Safe_Mode an, beim Hoster aus. Daher sollte es wohl nicht am Safe_Mode liegen.
Erstmal das Script in dem ich den Fehler vermute, denn durch auskommentieren eines Blocks kann funktioniert das Logout wieder.
cleansessions.php
PHP:
<?
$session_prefix="sess_";
$sessions=mysql_query("select * from sessions",$db);
while ($session=mysql_fetch_row($sessions))
{
//hier faengt der schlamassel an
if (file_exists($session_path."/".$session_prefix.$session[0]))
{
if (filectime($session_path."/".$session_prefix.$session[0])+600<=time())
{
unlink($session_path."/".$session_prefix.$session[0]);
}
}
//und hier hoert's wieder auf
if (!file_exists($session_path."/".$session_prefix.$session[0]))
{
mysql_query("delete from sessions where sessionid='$session[0]'",$db);
}
}
?>
Der Grund fuer diesen Schnipsel Code ist einfach. Da ich mit session_save_path() einen alternativen Pfad zum Speichern des Sessions festlege werden diese Sessions nicht durch die Garbage Collection von PHP geloescht.
Daher soll der problematische Abschnitt ueberpruefen ob die Session 10 Minuten nicht mehr geaendert wurde und dann loeschen.
Wenn dieser Part auskommentiert ist kann ich mich ein- und ausloggen wie ich lustig bin. Wenn der Part aber aktiv ist, dann ist Schluss mit lustig.
Dann kann ich mich einloggen, aber wenn ich auf Logout klicke bringt das nichts.
Da das auskommentieren dieses Abschnitts, wie schon gesagt, hilft bin ich sicher, dass das Problem dort liegt. Ich kann es mir aber nicht wirklich erklaeren warum.
Ach ja, ich hab das natuerlich auch mal lokal auf meiner Box getestet, und da funktioniert es einwandfrei.
Bei mir ist der Safe_Mode an, beim Hoster aus. Daher sollte es wohl nicht am Safe_Mode liegen.
Zuletzt bearbeitet: