Bram
Legacy Member
oké, voor m'n nieuw project werk ik met een log in systeem gebaseerd op sessions/cookies naar gelang men een remember me vinkje aanvinkt, zoals vbulletin bv...
hoe ga ik te werk:
het feitelijke formulier is uitgebreider, ik heb gewoon onnodige dingen er ff uitgeknipt voor de leesbaarheid
en dan voor de php
maar om de een of andere reden wil het maar niet werken...
daarjuist leek het wel te werken, maar nadat ik m'n logout functie geschreven had niet meer, zou het daar aan kunnen liggen?
Oké, ik heb er nu eens de session en de cookie laten echo'en om te kijken wat er gebeurd. de remember me vink werkt blijkbaar wel, want als ik die aanvink dan wordt de cookie gezet, vink ik hem niet aan dan wordt de sessie gezet. maar ie wil me niet aanmelden, wanneer wil ie wel aanmelden: als beide gezet zijn, ondanks dat er een || staat ...
hoe ga ik te werk:
HTML:
<form action="<?php echo $_SERVER['REQUEST_URI']; ?>" method="post">
<input type="text" value="Username" name="usname" />
<input type="checkbox" name="remember" />Remember me
<br />
<input type="password" value="" name="passw" />
<input type="submit" value="Log In" name="submLogin" />
</form>
het feitelijke formulier is uitgebreider, ik heb gewoon onnodige dingen er ff uitgeknipt voor de leesbaarheid
en dan voor de php
PHP:
// Log in
if(isset($_POST['submLogin'])) {
$loginname = isset($_POST['usname']) ? $_POST['usname'] : "";
$loginpass = isset($_POST['passw']) ? $_POST['passw'] : "";
$loginpass = md5($loginpass);
$remember = $_POST['remember'];
if(!empty($loginname) && !empty($loginpass)) {
$c = mysql_num_rows(mysql_query("SELECT * FROM accounts WHERE name = '$loginname' AND password = '$loginpass'"));
if($c > 0) {
if($remember == FALSE) {
$_SESSION['loggedin'] = $loginname;
} else {
setcookie('loggedin', $loginname);
}
} else {
echo 'Wrong password or username';
}
}
}
// controle of er nog niet ingelogd is en het log in scherm dus getoont moet worden
if(!isset($_SESSION['loggedin']) || !isset($_COOKIE['loggedin'])) {
maar om de een of andere reden wil het maar niet werken...
daarjuist leek het wel te werken, maar nadat ik m'n logout functie geschreven had niet meer, zou het daar aan kunnen liggen?
PHP:
if(isset($_POST['submLogout'])) {
if(isset($_COOKIE['loggedin'])) {
setcookie("loggedin","");
}
if(isset($_SESSION['loggedin'])) {
session_destroy();
}
header("Location: /cosmoswars/play/");
}
Oké, ik heb er nu eens de session en de cookie laten echo'en om te kijken wat er gebeurd. de remember me vink werkt blijkbaar wel, want als ik die aanvink dan wordt de cookie gezet, vink ik hem niet aan dan wordt de sessie gezet. maar ie wil me niet aanmelden, wanneer wil ie wel aanmelden: als beide gezet zijn, ondanks dat er een || staat ...
.