2012-11-08 70 views
0

我創建一個文件logout.php和註銷腳本不工作

<a href='logout.php'>log out</a> 

調用,但會話沒有destory或取消。幫我logout.php文件如下

<?php session_start(); 

    if(isset($_SESSION['user_id']) | isset($_SESSION['mem_id'])|       
    isset($_SESSION['fname']) | isset($_SESSION['lname'])) { 

    $_SESSION=array(); 
    unset($_SESSION['user_id']); 
    unset($_SESSION['mem_id']); 
    unset($_SESSION['fname']); 

    if(isset($_COOKIE[session_name()])) { 

    setcookie(session_name(), '' , time()-3600); 
} 
    session_destroy(); 
    } 
    header("location:index.php"); 
    ?> 

給我在login文件我genrate三屆變量他們

$_SESSION['user_id']) 
    $_SESSION['mem_id']) 
    $_SESSION['fname']) 

幫我毀了這個會話變量

回答

1

你不做$_SESSION=array();,變量已經存在,並且是一個數組,你不要再聲明爲一個。

您還需要使用||作爲OR。一個管道|是一個按位運算符,而不是你想要的。

... isset($_SESSION['user_id']) || isset($_SESSION['mem_id']) ... 

一兩件事你可以做的調試是有它echo東西if語句中。如果它確實將它回顯到屏幕上,那麼它就會進入該if語句。如果沒有,你知道它沒有。然後,您可以開始計算if語句的條件是否滿足,從而發現錯誤。

1

爲什麼使用這麼長的代碼來銷燬logout.php中的會話。 只需開始會話,然後將其銷燬。 Like Code is。

<?php 
session_start(); 
if(session_destroy()) 
{ 
header("Location: index.php"); 
} 
?>