Hi,
ich habe da ein kleines Problem, bin zwar nicht ganz neu in Sachen PHP nur leider ein wenig eingerostet
Ich habe mir ein kleines Login-Script gebastelt, allerdings habe ich z.Zt. ein, für euch wohl unverständliches, Problem
Es funktioniert eigentlich alles wunderbar, ja, auch das session_destroy(), allerdings funktioniert nach dem session_destroy() meine weitere IF-Abfrage nicht mehr.
Es sieht wie folgt aus, ich habe eine Tabelle mit 3 Spalten, die Erste ist für die Navigation, die Zweite für den Inhalt und die Dritte ist der Loginbereich.
Am Anfang der PHP Datei wird die Session geöffnet und abgefragt ob login_button gedrückt wurde um daraufhin die $_SESSION['user'] und $_SESSION['pwd'] zu bestücken.
Die IF-Abfrage für den Loginbereich sieht wie folgt aus:
Sollte man also erfolgreich eingeloggt sein wird ein Hyperlink angegeben mit dem man sich wieder ausloggen kann.
Um die Session zu zerstörten hab ich noch folgende IF-Abfrage eingebaut in Spalte 2 eingebaut, also die Spalte in der der Inhalt angezeigt wird. Nach meiner Logik müsste dann Spalte 3 mit dem Loginbereich dann wieder das Login-Formular anzeigen, da die Session zerstört ist und die Session Daten 'User' und 'pwd' nicht mehr mit denen aus der Datenbank identisch sind. Leider schein ich nicht logisch genug zu denken, denn das "Logout" bleibt erhalten erst beim weiteren klicken auf "Logout" erscheint das Formular wieder.
Woran liegt das? Die Session wird doch vor der Abfrage zerstört, d.h. er müsste dann doch auf das "else" zurückgreifen.
Bin echt stark eingerostet und mit Sessions hatte ich es noch nie so richtig Würde mich über Hilfe freuen.
/edit Sorry, ganz vergessen. Hier mal die paar "destroy"-Zeilen.
ich habe da ein kleines Problem, bin zwar nicht ganz neu in Sachen PHP nur leider ein wenig eingerostet
Ich habe mir ein kleines Login-Script gebastelt, allerdings habe ich z.Zt. ein, für euch wohl unverständliches, Problem
Es funktioniert eigentlich alles wunderbar, ja, auch das session_destroy(), allerdings funktioniert nach dem session_destroy() meine weitere IF-Abfrage nicht mehr.
Es sieht wie folgt aus, ich habe eine Tabelle mit 3 Spalten, die Erste ist für die Navigation, die Zweite für den Inhalt und die Dritte ist der Loginbereich.
HTML:
<form action="index.php" method="post">
<input type="text" name="user" size="16" value="User" /><br />
<input type="password" name="pwd" size="16" value="1234" /><br /><br />
<input type="submit" name="login_button" value="Login" />
</form>
Am Anfang der PHP Datei wird die Session geöffnet und abgefragt ob login_button gedrückt wurde um daraufhin die $_SESSION['user'] und $_SESSION['pwd'] zu bestücken.
PHP:
session_start();
if(isset($_POST['login_button']))
{
$_SESSION['user'] = $_POST['user'];
$_SESSION['pwd'] = $_POST['pwd'];
}
Die IF-Abfrage für den Loginbereich sieht wie folgt aus:
PHP:
if(check_login($_SESSION['user'],$_SESSION['pwd']))
{
echo '<a href="index.php?action=logout">Logout</a>';
}
else
{
echo '
<form action="index.php" method="post">
<input type="text" name="user" size="16" value="User" /><br />
<input type="password" name="pwd" size="16" value="1234" /><br /><br />
<input type="submit" name="login_button" value="Login" />
</form>';
}
Sollte man also erfolgreich eingeloggt sein wird ein Hyperlink angegeben mit dem man sich wieder ausloggen kann.
Um die Session zu zerstörten hab ich noch folgende IF-Abfrage eingebaut in Spalte 2 eingebaut, also die Spalte in der der Inhalt angezeigt wird. Nach meiner Logik müsste dann Spalte 3 mit dem Loginbereich dann wieder das Login-Formular anzeigen, da die Session zerstört ist und die Session Daten 'User' und 'pwd' nicht mehr mit denen aus der Datenbank identisch sind. Leider schein ich nicht logisch genug zu denken, denn das "Logout" bleibt erhalten erst beim weiteren klicken auf "Logout" erscheint das Formular wieder.
Woran liegt das? Die Session wird doch vor der Abfrage zerstört, d.h. er müsste dann doch auf das "else" zurückgreifen.
Bin echt stark eingerostet und mit Sessions hatte ich es noch nie so richtig Würde mich über Hilfe freuen.
/edit Sorry, ganz vergessen. Hier mal die paar "destroy"-Zeilen.
PHP:
<?PHP
IF(isset($_GET['action']) AND $_GET['action'] == 'logout')
{
session_destroy();
echo 'Erfolgreich ausgeloggt';
}
?>