Op dit moment ben ik bezig met een login script dat het inloggen en uitloggen afhandelt.
Het inloggen gaat perfect, de gebruikersnaam en wachtwoord worden ingevoerd en als er op login word geklikt dan worden deze gegevens in de sessie geplaatst waardoor de gebruiker altijd netjes blijft ingelogd totdat de browser word afgesloten.
Echter als er op de logout knop word geklikt om de sessie te beeindigen gebeurt er niets, de pagina refreshed (er wordt dus wel gepost!) maar de sessie blijft bestaan.
De code die ik heb is als volgt:
Verder heb ik het reeds geprobeerd met de volgende codes:
Heeft iemand enig idee hoe ik dit kan oplossen?
Want ik ben de draad even helemaal kwijt
Het inloggen gaat perfect, de gebruikersnaam en wachtwoord worden ingevoerd en als er op login word geklikt dan worden deze gegevens in de sessie geplaatst waardoor de gebruiker altijd netjes blijft ingelogd totdat de browser word afgesloten.
Echter als er op de logout knop word geklikt om de sessie te beeindigen gebeurt er niets, de pagina refreshed (er wordt dus wel gepost!) maar de sessie blijft bestaan.
De code die ik heb is als volgt:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
| // Logout knop instellen in de var $logout_button $logout_button = '<form method="post"><table border="0" cellspacing="0" cellpadding="0"><tr><td> <input accesskey="l" id="submit_logout" name="submit_logout" type="submit" value="Log uit" /> </td></tr></table></form>'; // Controleren of de Sessie variabele al is aangemaakt! if (isset($_SESSION['username'])) { // De username en de logout knop weergeven. $login_msg = "Welkom " . $_SESSION['username'] . " (" . $_SESSION['userlevel'] . ")" . $logout_button; // De user wil uitloggen (heeft op logout geklikt). } elseif ($_SERVER["REQUEST_METHOD"] == "POST" AND isset($_POST['submit_logout'])) { // Sessie weghalen session_unset(); // Custom message aanmaken die bij de login wordt weergegeven $login_msg = "U bent uitgelogd.<br><a href=index.php>Log in</a>"; // Als de submit_login knop is ingedrukt wordt dit uitgevoerd } elseif ($_SERVER["REQUEST_METHOD"] == "POST" AND isset($_POST["submit_login"])) { // Query opstellen voor het vergelijken van de username/password $login_query = mysql_query("SELECT * FROM gebruikers WHERE username = '".$_POST['username']."' AND password = '".$_POST['password']."'"); // Query uitvoeren, als controle op de username en password $login_check = mysql_num_rows($login_query); // Nakijken of er minimaal 1 rij tevoorschijn is gekomen. if ($login_check == 1) { // De resultaten ophalen en in array plaatsen $login_results = mysql_fetch_assoc($login_query); // De username en userlevel in de sessie plaatsen $_SESSION['username'] = $login_results['username']; $_SESSION['userlevel'] = $login_results['userlevel']; // De login message instellen als de gegevens kloppen en de gebruiker dus is ingelogd. $login_msg = "Welkom " . $_SESSION['username'] . " (" . $_SESSION['userlevel'] . ")" . $logout_button; } else { // Foutmelding bij verkeerd ingevoerde gegevens $login_msg = 'De inloggegevens zijn niet juist, probeer het opnieuw.'; } } else { // De Login message instellen op het weergeven van het formulier $login_msg = '<form method="post"><table border="0" cellpadding="0" cellspacing="2"><tr><td>Naam / Wachtwoord</td> </tr><td><input accesskey="g" id="username" onFocus="deltext(this)" name="username" type="text" size="10" value="Naam" /></td> <tr><td><input accesskey="p" id="password" onFocus="deltext(this)" name="password" type="password" size="10" value="12345" /></td> </tr><tr><td><input type="hidden" name="login_h" value="1" /><input accesskey="l" id="submit_login" name="submit_login" type="submit" value="login" /> </td></tr></table></form>'; } |
Verder heb ik het reeds geprobeerd met de volgende codes:
PHP:
1
2
3
4
5
| // Geprobeerd met deze unset($_SESSION['username']); // En met deze session_destroy(); |
Heeft iemand enig idee hoe ik dit kan oplossen?
Want ik ben de draad even helemaal kwijt

[ Voor 17% gewijzigd door marapuru op 23-03-2006 12:32 . Reden: overbodige enters ]