Hej,
Jeg har et problem med log-ud funktionen i mit community, hvor underligt det end lyder. Når man er logget ind kommer der en menu frem, og når man trykker log ud får man samme menu at se.
Her er koden til logud:
<?
session_start();
$_SESSION['log'] = NULL;
$_SESSION['user'] = NULL;
$_SESSION['pass'] = NULL;
session_unset();
session_destroy();
setcookie('user', NULL, time()-3600);
setcookie('pass', NULL, time()-3600);
$_ENV['user'] = NULL;
$_ENV['pass'] = NULL;
header('location: login.php');
?>
Koden til log ind:
<?
ob_start();
session_start();
include 'funcLib.php';
include 'topmenu.php';
print '<p class="pad">';
database();
extract($_SESSION, EXTR_PREFIX_ALL, 'sess');
extract($_COOKIE, EXTR_PREFIX_ALL, 'sess');
extract($_POST, EXTR_PREFIX_ALL, 'sess');
if (isset($sess_user) && isset($sess_pass)) {
$sql = mysql_query("SELECT user, pass FROM brugere WHERE user = '$sess_user' AND pass = '$sess_pass'");
if (mysql_num_rows($sql)) {
$row = mysql_fetch_assoc($sql);
extract($row, EXTR_PREFIX_ALL, 'extr');
print logMenu($extr_user);
if ($_POST['auto']) {
setcookie('user', $extr_user, time()+1209600);
setcookie('pass', $extr_pass, time()+1209600);
}
$_SESSION['user'] = $extr_user;
$_SESSION['pass'] = $extr_pass;
$_SESSION['log'] = true;
}
else {
setcookie('user', false, time()-3600);
setcookie('pass', false, time()-3600);
$_SESSION['user'] = false;
$_SESSION['pass'] = false;
$_SESSION['log'] = false;
print '<big><big><b>Fejl</b></big></big><br /><br />De indtastede oplysninger passer ikke sammen.<br />';
print '</p>';
}
include 'bundmenu.html';
exit;
}
print <<< END
<big><big><b>Log ind</b></big></big>
<form action="login.php" method="post">
Brugernavn:<br />
<input type="text" name="user" value="$user" style="width: 200px" /><br /><br />
Adgangskode:<br />
<input type="password" name="pass" value="$pass" style="width: 200px" /><br />
<input type="submit" value="Log ind" /> <input type="checkbox" name="auto" value="1" /> Autologin
</form>
</p>
END;
ob_flush();
include 'bundmenu.html';
?>
Udover cookies'ene user og pass har jeg:
forhandler_user
forhandler_pass
kode
... Men de har ikke noget med mit loginsystem at gøre så de burde heller ikke have noget med fejlen at gøre.
Problemet er, at hverken cookies eller sessions bliver fjernet, det kan jeg se på $_ENV