Ik heb een paar daagjes terug een topic gepost over cookies, ze wilden niet werken. Nou werkt dat allemaal, maar net iets te goed. De cookie wil namelijk niet meer weg. Het betreft het bekende login-script 
Ik heb dit opgedeeld in 2 pagina's:
- De login pagina met invoervelden
- De check pagina waar je invoer wordt gecontroleerd en de cookie wordt geplaatst
title.
(type='text' bij password heb ik expres gedaan, ='password' komt wel als het werkt)
login.
Nou krijg ik als ik inlog netjes te zien 'You are logged in' met het cookienummer en de Logout knop. Als ik echter op Logout klik, veranderd enkel het cookienummer en blijf ik vrolijk ingelogd (ook bij refresh). Hij komt in login.php wel netjes bij regel 4, en dus zou de cookie weggehaald moeten worden... dat gebeurd dus om een of andere reden niet.
Ik heb dit opgedeeld in 2 pagina's:
- De login pagina met invoervelden
- De check pagina waar je invoer wordt gecontroleerd en de cookie wordt geplaatst
title.
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
| <? if(isset($_POST['login'])){ header("Location: ./login.php?username=$_POST[user]&password=$_POST[pass]"); } if(!isset($_COOKIE['login_check'])){ ?> <html> <table width='90%' cellpadding='0' cellspacing='0'> <form method='POST' action="title.php"> <tr><td width='1%'>Username: <input type='text' name=user size=10 value='a'></td> <td width='1%'>Password: <input type='text' name=pass size=10 value='b'></td> <td width='10%'><input type='submit' name=login value='Login'></tr> </form> </table> </html> <? } else{ echo "You are logged in.<br>"; echo $_COOKIE['login_check']; echo "<form method='POST' action='login.php?username=&password='>"; echo "<input type='submit' name='logout' value='Logout'>"; echo "</form>"; } ?> |
(type='text' bij password heb ik expres gedaan, ='password' komt wel als het werkt)
login.
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
| <? $user = $_GET['username']; $pass = $_GET['password']; if($user==NULL){ SetCookie('login_check', time()-10000); } else{ include('/forum/dbconnect.php'); $result = mysql_query("SELECT subscriber_login FROM subscriber WHERE subscriber_password='$pass'") or die ("User does not exist or password failure"); $row = mysql_fetch_array( $result ); if($user == $row['subscriber_login']){ SetCookie('login_check', time()+1800); } else{ SetCookie('login_check', time()-10000); } } Header('Location: title.php'); ?> |
Nou krijg ik als ik inlog netjes te zien 'You are logged in' met het cookienummer en de Logout knop. Als ik echter op Logout klik, veranderd enkel het cookienummer en blijf ik vrolijk ingelogd (ook bij refresh). Hij komt in login.php wel netjes bij regel 4, en dus zou de cookie weggehaald moeten worden... dat gebeurd dus om een of andere reden niet.
Een vergissing is menselijk, maar om er echt een puinhoop van te maken heb je een computer nodig.