setcookie("userId","",time()-1); 這個不起作用,求解!??!
太郁悶了,我自己測試得到以下結果:
不選擇自動登錄時,可以正常注銷,并且成功刪除了session內容,不能直接訪問后臺頁;
選擇自動登錄時,直接關閉瀏覽器,重新打開瀏覽器可以訪問后臺頁,點擊注銷按鈕回到登錄頁,此時不登錄,通過url可以直接訪問到后臺頁,且可以顯示(歡迎你+用戶名)。
我初步得到的結論是cooki沒有清除掉,以下是我的部分關鍵代碼
if($autoFlag){
? ? ? ? ? ? ? ? setcookie("userId",$result['id'],time()+7*24*3600);
? ? ? ? ? ? ? ? setcookie("userName",$result['username'],time()+7*24*3600);
? ? ? ? ? ? }
/**
? ? ?* 檢查是否登錄
? ? ?*/
? ? function checkLogin(){
? ? ? ? if($_SESSION['userId'] == "" && $_COOKIE['userName'] == ""){
? ? ? ? ? ? alertMes("請先登錄", "../login.php");
? ? ? ? }
? ? }
? ??
? ? /**
? ? ?* 注銷管理員登錄
? ? ?*/
? ? function logout(){
? ? ? ? $_SESSION = array();
? ? ? ? if(isset($_COOKIE[session_name()])){
? ? ? ? ? ? setcookie(session_name(),"",time()-9999);
? ? ? ? }
? ? ? ? if(isset($_COOKIE['userId'])){
? ? ? ? ? ? setcookie("userId","",time()-9999);
? ? ? ? }
? ? ? ? if(isset($_COOKIE['userName'])){
? ? ? ? ? ? setcookie("userName","",time()-9999);
? ? ? ? }
? ? ? ? session_destroy();
? ? ? ? header("location:../login.php");
? ? }
<?php
? ? ? ? ? ? ? ? if(isset($_SESSION['username'])){
? ? ? ? ? ? ? ? ? ? echo $_SESSION['username'];
? ? ? ? ? ? ? ? }elseif (isset($_COOKIE['userName'])){
? ? ? ? ? ? ? ? ? ? echo $_COOKIE['userName'];
? ? ? ? ? ? ? ? }
? ? ? ? ? ? ?>
2016-12-31
我也不懂? 同求