2017-02-27 82 views
1

我在登錄後,我的網站的鏈接,它指向「的index.php註銷= YES?」,然後在我的index.php我有以下代碼:PHP - 無法結束會話

if ($_GET['logout'] == "yes") { 
    session_unset(); 
    unset($_SESSION); 
    session_destroy(); 
    echo "<meta http-equiv='refresh' content='0;url=index.php'>"; 
    $_SESSION = array(); 
    $_SESSION = []; 
} 

任何想法爲什麼它讓你登錄並不會結束會話?

+0

它是否工作,如果您手動刷新頁面? – Christophvh

+0

不,因爲我有一個聲明來檢查會話是否已設置,如果是,將您重定向到loggedin.php。 –

+0

註銷聲明應該在任何其他檢查之前嗎? –

回答

1

這是的第一行代碼在你的index.php如果是使用 頭(「位置:/」); 而不是爲刷新

0

meta標籤請檢查:session_destroy

爲了完全終止會話,想註銷用戶,會話ID也必須給予取消。如果使用cookie傳播會話標識(默認行爲),則必須刪除會話cookie。 setcookie()可用於此目的。

試試這個

session_unset(); //or unset($_SESSION); 
session_destroy(); 
session_commit(); // or session_write_close(); 
setcookie(session_name(),'',0,'/'); 
session_regenerate_id(true); 

header('location: index.php'); 
0

註銷後,將用戶重定向到主頁(例如)

,並用它

<php 
session_start(); 
if ($_GET['logout'] == "yes") { 
    session_unset(); 
    session_destroy(); 
    session_write_close(); 
    setcookie(session_name(),'',0,'/'); 
    session_regenerate_id(true); 
    header('location: index.php'); 
} 
-1

公衆面前始終啓動會議功能註銷(){

$this->session->set_userdata(array(
     'user_id'  => '', 
     'fname'   => '', 
     'lname'   => '', 
     'gender'  => '', 
     'username'  => '', 
     'user_comp_id' => '', 
     'user_role'  => '', 
     'validated'  => false, 
     'plan_name'  => '', 
     'plan_restriction' => '', 
     'module_leave_bank' => '', 
     'module_custom_logo' => '', 
     'module_bulk_import' => '', 
     'module_custom_rules' => '', 
     'module_reports_download' => '', 
     'module_integrations' => '', 
     'module_chat_support' => '', 
     'module_phone_support' => '', 
     'users_limit'  => '', 
     'leave_policies_limit' => '', 
     'ous_limit'   => '', 
     'sub_ous_limit'  => '', 
     'leave_requests_limit' => '', 
     'holidays_limit' => '', 
     'users_count'  => '', 
     'leave_policies_count' => '', 
     'ous_count'   => '',      
    )); 
    $cookies_id = $this->input->cookie('ci_session', TRUE); 
    // $this->db->delete('user_logged_in',array('cookie' => $cookies_id)); // delete the cookies in database 
    $this->session->sess_destroy(); 

    redirect('login', 'refresh'); 
}