2012-05-16 91 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; 
} 

希望這會幫助你的會話。