PHP Logout - Problem

Zneaf

Erfahrenes Mitglied
Hi,

leider habe ich wiedermal ein Problem, auf das ich keine Lösung finde :(

Dabei handelt es sich um mein Logout-Script.

Beschreibung des Problems:
Wenn sich ein User auf meiner Webseite einloggt wird je nach Account-Stufe eine neue Seite mit User-Funktionen (z.B.: Profil editieren usw.) an den rechten Rand der Webseite geladen.
Das funktioniert mit folgendem Codeabschnitt in der index.php:

PHP:
<?php if($_SESSION['acclevel'] == "1"){ include 'sidenav1.php'; }?>
<?php if($_SESSION['acclevel'] == "2"){ include 'sidenav2.php'; } ?>
<?php if($_SESSION['acclevel'] == "3"){ include 'sidenav3.php'; }?>
Sobald sich der User wieder ausloggt, sollte diese Seite allerdings wieder geschlossen werden (was ja auch logisch ist ^^ ).

Nun bin ich mir jedoch nicht wirklich sicher, wie sich das umsetzen lässt :(

Das einzige Stichwort, dass ich während meiner Recherche aufgeschnappt habe, war "fclose()".
Allerdings weiß ich nicht, worauf ich in der index.php überprüfen lassen könnte, dass dieser Befehl genau dann ausgeführt wird, wenn ein User auf "Logout" drückt.

Habt ihr eine Idee, wie ich dieses Ziel erreichen könnte?

Vielen Dank im Voraus :)

LG zneaf =)
 
Hallo Zneaf,

fclose bringt Dir in dem Fall nicht viel. Mir stellt sich die Frage, was passiert denn beim ausloggen? Wird die Session zerstört?

Den Logout abfangen könntest Du so:

Logoutlink:
HTML:
<a href="index.php?do=logout">logout</a>

In der index.php:
PHP:
session_start();

/* ... */

if ( isset( $_GET['do'] ) && $_GET['do'] == 'logout' ) {
    session_destroy();
}
Ist eine Möglichkeit.

Gruß
 
Hey Raisch ;)

erstmal vielen Dank für deine schnelle Hilfe :)

Zu deiner Frage: ja die session wird zerstört.

Der Logout ist aber nicht das eigentliche Problem...es geht vielmehr darum, dass die PHP-Seite mit den Userfunktionen (sidenav1.php, sidenav2.php und sidenav3.php) wieder geschlossen wird, wenn sich ein User ausloggt. Diese PHP Seite mit den Userfunktionen wird an den rechten Rand der Webseite geladen, sobald sich ein User einloggt. Welche der 3 Seiten geladen wird, hängt von der entsprechenden Account-stufe (z.b. Mitglied oder Administrator) ab.
Wenn die Seite mit den Userfunktionen nicht geschlossen wird, sobald sich ein User ausloggt, kann dieser die gleichen Sachen machen, wie ein User der eingeloggt ist (z.b. Profil bearbeiten). Das würde ja gar keinen Sinn ergeben^^

Hoffe es ist nun etwas verständlicher ;)

Vielen Dank für die Hilfe :)

LG Zneaf
 
Öhm...ich sehe das Problem nicht? So wie ich das verstehe lädst du dort keine neue Seite an den Rand (etwa durch Frames etc, oder gar ein neues Fenster) sondern includierst einfach nur PHP Seiten? Prüfe einfach ob die Session existiert und wenn nicht, includest du halt nicht.
 
Hey ;)

danke für die schnelle Rückmeldung timestamp :)

Du hast Recht...ich includiere lediglich eine PHP Seite in die index.php sobald sich ein User einloggt.
Das Problem besteht aber darin, dass diese Seite wieder aus der index.php "exkludiert" (falls es das überhaupt gibt ^^ ) bzw. entfernt werden soll, sobald sich ein User ausloggt.

Gibts dafür eine gute und sichere Lösung? :)

Vielen Dank im Voraus ;)

LG Zneaf
 
Naja kannst du nicht einfach wenn der Benutzer auf ausloggen drückt, die $SESSION zerstören und dann mit header("Location:") die Seite neuladen?

Dann würde er ja in der Theorie wieder nichts angezeigt bekommen, bzw sonst leite ihn wieder zum Login-Bildschirm weiter oder zu einem "Sie haben sich ausgeloggt"-Bildschirm weiter.

MfG alaitoc
 
Hallöchen zusammen ;)

vielen Dank für die Tips...nun funktionierts :D
Ich habs gemacht, wie Alaitoc gesagt hat...ich leite den Benutzer auf eine "Sie haben sich ausgeloggt"-Seite weiter und somit ist die Seite mit den Userfunktionen weg ;)

Vielen Dank

LG Zneaf :)
 
Zurück