2012-05-16 86 views
1

我有一个PHP登录/注销系统。对于注销的代码如下:PHP安全登录/注销:登出问题

if($_POST['submit']=='logOut') 
{ 
    setcookie('userName','', time()-60*60*24*100); 
    setcookie('login','', time()-60*60*24*100); 
    header("Location: index.php"); 
    exit; 
} 

用户正在通过以下检查登录状态:

<?php 
if(!$_COOKIE['login']): 
// If you are not logged in 
?> 

据我所知,这应该注销用户,但它似乎并没有这样做。该网站可以在novabvuild.comlu.com上查看,并且可以使用默认的登录信息(管理员,管理员)。这样你们可以看到问题。登录似乎工作正常,但注销无法正常运行。

在此先感谢!

+0

由于有很多方法可以构建认证系统,所以我建议您解释一下,也许在这里提供一些关于登录部分的代码。我怀疑任何人都可以在没有这些细节的情况下帮助你 –

+0

注销可能是好的,但它取决于你是如何检查用户是否登录的......如果你明白地使用类似于注销代码的cookie来做这件事,那就足够了。无论如何,会议呢?向我们展示您检查用户是否已登录的方式。 – ShinTakezou

+0

@ user1397727我看到您在答案出现后进行了编辑。您尝试过吗?做了什么工作? – MikeCruz13

回答

0

尝试添加路径:

setcookie("userName", "", mktime(12,0,0,1, 1, 1970), "/"); 

你也可以蒙混过关:unset($_COOKIE['cookieName']);

0

尝试:

unset($_COOKIE[login]) and unset($_COOKIE[userName]) 

OR

setcookie("login") and setcookie("userName") 
0

使用会话代替饼干, 设置当用户登录和取消/销毁会话时,用户注销

if($_POST['submit']=='logOut') 
{ 
    unset($_SESSION['userName']); 
    unset($_SESSION['login']); 
    header("Location: index.php"); 
    exit; 
} 
else if($_POST['submit']=='login') 
{ 
    $_SESSION['userName']=$userName; 
    $_SESSION['login']=$login; 
} 

希望这会帮助你的会话。