❶ php中session變數的銷毀
1.何為session?
相當於一個客戶端(可以是瀏覽器、app、ftp等其他,而且同一個瀏覽器多開幾個又算是不同的客戶端)對伺服器的一個訪問,這個期間伺服器為此建立一個唯一的標示(session_id
session_name),其實也就是一個數組Array(),Session的開始和結束並不以業務上的輸入用戶名密碼開始,也不以關閉瀏覽器和網頁刷新而結束
2.session變數的銷毀
程序代碼
<?php
session_unset();
session_destroy();
?>
session_unset()
釋放當前在內存中已經創建的所有$_SESSION變數,但不刪除session文件以及不釋放對應的session
id
session_destroy()
刪除當前用戶對應的session文件以及釋放session
id,內存中的$_SESSION變數內容依然保留
【注意】:
刪除session方法:
1、unset
($_SESSION['xxx'])
刪除單個session,unset($_SESSION['xxx'])
用來unregister一個已注冊的session變數。其作用和session_unregister()相同。session_unregister()在PHP5中不再使用,可將之打入冷宮。
unset($_SESSION)
此函數千萬不可使用,它會將全局變數$_SESSION銷毀,而且還沒有可行的辦法將其恢復。用戶也不再可以注冊$_session變數。
2、$_SESSION=array()
刪除多個session
3、session_destroy()結束當前的會話,並清空會話中的所有資源。。該函數不會unset(釋放)和當前session相關的全局變數(globalvariables),也不會刪除客戶端的session
cookie.PHP默認的session是基於cookie的,如果要刪除cookie的話,必須藉助setcookie()函數。
返回值:布爾值。
功能說明:這個函數結束當前的session,此函數沒有參數,且返回值均為true
session_unset()
如果使用了$_session,則該函數不再起作用。由於PHP5必定要使用$_session,所以此函數可以打入冷宮了。
可以得出刪除session的步驟:
①session_start()
②$_SESSION=array()/unset($_session['xxx'])
③session_destroy()
❷ 如何嚴格設置php中session過期時間
設置php中session過期時間:
只需要進行如下的步驟設置:
1、把「session.use_cookies」設置為1,使用Cookie來儲存SessionID,不過默認就是1,一般不用修改;
2、把「session.cookie_lifetime」改為你需要設置的時間(比如一個小時,就可以設置為3600,以秒為單位);
3、把「session.gc_maxlifetime」設置為和「session.cookie_lifetime」一樣的時間;
在PHP的文檔中明確指出,設定session有效期的參數是session.gc_maxlifetime。可以在php.ini文件中,或者通過ini_set()函數來修改這一參數。問題在於,經過多次測試,修改這個參數基本不起作用,session有效期仍然保持24分鍾的默認值。
PHP中的session有效期默認是1440秒(24分鍾),也就是說,客戶端超過24分鍾沒有刷新,當前session就會失效。當然如果用戶關閉了瀏覽器,回話也就結束了,Session自然也不存在了。