phpsession刪除
① php如何在用戶沒有操作20分鍾後,清除SESSION
我給你思路:
簡單點的
條件:
a.會用HTML設置自動刷新吧(可以設定刷新時間),不會的話網路
b.會用內嵌浮動窗口吧。,不會網路
c.會CSS隱藏DIV吧,不會網路查詢
以上3個都會的話可以在你的需要的頁面裡面都加入一個隱藏的DIV,DIV裡面內嵌浮動頁面,內嵌浮動頁面指定的是一個空白自動刷新的頁面,這樣你在當前頁面看著是禁止的,其實裡面隱藏了一個自動刷新的頁面,這樣你只要打開當前頁面就會永不過期。
用JAVASCRIPT定時AJAX發送信息到後台一個頁面。也可以實現永不過期。
客戶端永久保存cookie。cookie裡面保存用戶名和密碼,這個以前經常看到登陸頁面下方有個提示下拉選框,讓你選擇保持1個月 1年 永久,現在也是經常用 不過你看不到了而已,你看網路主頁登陸了後下次是不是不用登陸了,不過這種方法,在你20分鍾後還是會埠session的,不過你感覺不到而已。
相對而已第一種你更容易理解些。第二種更加流行,主流是第二種。
不過第二種其實也是打開了一個頁面,只是瀏覽器自動隱藏了。
只要訪問了伺服器,伺服器就會延續session
② PHP怎樣清除session.save
你改下php.ini:
;session.save_path
=
"/temp"
把前面的分號去掉,並且把路徑改為一個實際存在的目錄,比如
session.save_path
=
"C:\Windows\Temp"
然後你可以定期刪除它,也可以寫個批處理定期刪除它。
③ PHP中的SESSION的刪除為什麼要有$_SESSION=array()
session_destroy()銷毀當前會話中的全部數據,但是不會重置當前會話所關聯的全局變數,也不會重置會話cookie。
上面一段是PHP手冊中的內容
我來總結一下的話,就是你執行session_destroy()不會重置當前會話中的SESSION內容
所以需要用第二部對當前會話進行SESSION重置
否則,你在session_destroy之後還是能夠取得SESSION數據的
當然,根據手冊,上面還少了一步如下:
if(ini_get("session.use_cookies")){
$params=session_get_cookie_params();
setcookie(session_name(),'',time()-42000,
$params["path"],$params["domain"],
$params["secure"],$params["httponly"]
);
}
④ iis下php中的SESSION無法刪除
1.銷毀當前session變數 unset($_SESSION['admin']);
2.session_destroy();
3.session_unset();
2,3效果相同,銷毀全部session變數
你可以用JS在客戶端觸發close事件的時候發送一個ajax給php,然後php執行銷毀動作。
因為:http是無連接的,無法知道瀏覽器什麼時候關閉或者跳轉
⑤ linuxphp生成session文件不會自動刪除
許可權設置有問題。
session.gc_maxlifetime=1440把這個時間設短一些試試。
如果設定了session.gc_maxlifetime那麼在這個時間後應該會自動刪除無用session。
⑥ php 如何刪除單個session並釋放內存
unset($_SESSION['users_user_id']);這個是注銷一個session變數;
session_destroy();是注銷所有的session變數,並且結束session會話;
也就是說用unset($_SESSION['users_user_id']);就行了