2013-10-30 20 views
0

我創建了一個包含前端和後端面板的網站。在這兩個面板上,我創建了登錄區域,前面是用戶登錄,後臺是管理員登錄,可以管理所有前端用戶的活動。我還有兩個不同的表格用於登錄,用戶的登錄詳細信息和管理員的登錄詳細信息。 當我在兩個不同的選項卡上同時在兩個面板上登錄時,它正常工作。在這種情況下,會創建兩個不同的會話$ _SESSION ['adminName']和$ _SESSION ['userName'],並且都訪問其分配的數據。 但是,我從任何面板註銷時都會創建該問題。當我從前端註銷時,後端管理員會通過銷燬所有網站會話自動註銷。但是我有兩個不同的註銷功能就像兩個登錄功能登錄。註銷時取消設置會話問題

用戶的註銷功能包含以下代碼。

session_start(); 
    unset($_SESSION); 
    session_destroy(); 
    echo '<script> 
     window.location.href = "'.$site_path.'"; 
     </script>';  

和我希望這兩種註銷功能只適用於他們的面板。他們不會破壞其他小組的會議。

任何人都有任何想法如何解決這個問題,我做錯了什麼。謝謝。

+0

try'foreach($ _SESSION as $ value){ unset($ value); }' – user2092317

+0

你應該可以做到 未設置($ _ SESSION ['adminName'];單獨取消設置此會話 – 2013-10-30 11:24:34

+0

@ user2092317你把'&'而不是'$';) – Jonathon

回答

0

如果您刪除session_destroy()並使其更具體,例如unset($_SESSION['userName'])要從主站點註銷,並且想要將它們註銷到管理面板時,請使用unset($_SESSION['adminName'])。肯定不推薦使用unset($_SESSION)

只要兩個面板分別需要每個會話變量,你應該沒問題。

+0

這是很好的方式。謝謝 –

+1

@ParamKumar如果答案可以幫助你,那麼你應該接受這個答案。 – 2013-10-30 12:13:39

+0

是的,並再次感謝。 –

0

不建議以這種方式取消設置會話變量。
使用session_unset(),請參閱http://php.net/manual/en/function.session-unset.php
除此之外,您不希望會話仍然存在於用戶計算機上,因此使用session_destroy()。 session_unset()僅清除會話的使用情況。