1. 如何嚴格設置php中session過期時間
可以在PHP中,設置php.ini,找到session.gc_maxlifetime
=
1440
#(PHP5默認24分鍾)
這里你可以隨便設置一下過期時間.但是有人說設置以後,好象不起作用!
其實不是不起作用,而是因為系統默認:
session.gc_probability
=
1
session.gc_divisor
=
1000
以上設置的
1/1000就是session
1000次才有一次被回收。
只要你的訪問量大了,那就能達到回收的效果.
或者你也可以設置一下session.gc_divisor
的值,
比如:session.gc_divisor
=
1,這樣就能明顯的看到SESSION過期的效果了.
2. 誰解釋一下session的生命周期
session的生命周期是session會話域,打開一個瀏覽器請求一個網站的頁面後,Session開始,當session超過時間限制(一般是30分種)後,session注銷而失效 或是人為使用session.invalidate();使用session失效; 或是關閉瀏覽器後,session還存在,但是這里已經無法獲取session了,過一會它還是失效。
3. 如何嚴格設置php中session過期時間
第一種方法即設置php.ini配置文件,設置session.gc_maxlifetime和session.cookie_lifetime節
點屬性值,當然也可以使用ini_set函數改變當前上下文環境的屬性值:
ini_set('session.gc_maxlifetime', "3600"); // 秒
ini_set("session.cookie_lifetime","3600"); // 秒
第二種方法即設置Session時間戳,比如下面的辦法。
在登錄成功時設置時間戳為當前時間推後1小時,$_SESSION['expiretime'] = time() + 3600;。在
檢查用戶登錄情況使用如下代碼:
if(isset($_SESSION['expiretime'])) {
if($_SESSION['expiretime'] < time()) {
unset($_SESSION['expiretime']);
header('Location: logout.php?TIMEOUT'); // 登出
exit(0);
} else {
$_SESSION['expiretime'] = time() + 3600; // 刷新時間戳
}
}
兩種方法可以結合使用。
4. 怎麼理解PHP Session的用法 生命周期 過期時間
session簡介
Session直接翻譯成中文比較困難,一般都譯成時域。在計算機專業術語中,Session是指一個終端用戶與交互系統進行通信的時間間隔,通常指從注冊進入系統到注銷退出系統之間所經過的時間以及如果需要的話,可能還有一定的操作空間。
具體到Web中的Session指的就是用戶在瀏覽某個網站時,從進入網站到瀏覽器關閉所經過的這段時間,也就是用戶瀏覽這個網站所花費的時間。因此從上述的定義中我們可以看到,Session實際上是一個特定的時間概念。
需要注意的是,一個Session的概念需要包括特定的客戶端,特定的伺服器端以及不中斷的操作時間。A用戶和C伺服器建立連接時所處的Session同B用戶和C伺服器建立連接時所處的Session是兩個不同的Session。
5. PHP中SESSION的有效時間是多長
session有效時長可以通過修改伺服器端配置文件來修改時長
默認配置時長為1小時
6. php怎麼設置某個session的過期時間
可以在PHP中,設置php.ini,找到session.gc_maxlifetime = 1440 #(PHP5默認24分鍾) 這里你可以隨便設置一下過期時間.但是有人說設置以後,好象不起作用! 其實不是不起作用,而是因為系統默認: session.gc_probability = 1 session.gc_divisor = 1000...
7. 如何嚴格設置php中session過期時間
如何嚴格限制session在30分鍾後過期!
1.設置客戶端cookie的lifetime為30分鍾;
2.設置session的最大存活周期也為30分鍾;
3.為每個session值加入時間戳,然後在程序調用時進行判斷;
至於為什麼,我們首先來了解下php中session的基本原理:
PHP中的session有效期默認是1440秒(24分鍾),也就是說,客戶端超過24分鍾沒有刷新,當前session就會失效。當然如果用戶關閉了瀏覽器,會話也就結束了,Session自然也不存在了!
大家知道,Session儲存在伺服器端,根據客戶端提供的SessionID來得到這個用戶的文件,然後讀取文件,取得變數的值,SessionID可以使用客戶端的Cookie或者Http1.1協議的
Query_String(就是訪問的URL的「?」後面的部分)來傳送給伺服器,然後伺服器讀取Session的目錄……
要控制Session的生命周期,首先我們需要了解一下php.ini關於Session的相關設置(打開php.ini文件,在「[Session]」部分):
1、session.use_cookies:默認的值是「1」,代表SessionID使用Cookie來傳遞,反之就是使用Query_String來傳遞;
2、session.name:這個就是SessionID儲存的變數名稱,可能是Cookie,也可能是Query_String來傳遞,默認值是「PHPSESSID」;
3、session.cookie_lifetime:這個代表SessionID在客戶端Cookie儲存的時間,默認是0,代表瀏覽器一關閉SessionID就作廢……就是因為這個所以Session不能永久使用!
4、session.gc_maxlifetime:這個是Session數據在伺服器端儲存的時間,如果超過這個時間,那麼Session數據就自動刪除! ...展開如何嚴格限制session在30分鍾後過期!
1.設置客戶端cookie的lifetime為30分鍾;
2.設置session的最大存活周期也為30分鍾;
3.為每個session值加入時間戳,然後在程序調用時進行判斷;
至於為什麼,我們首先來了解下php中session的基本原理:
這樣試試呢,我在後盾人看見的不知道對不對,希望能幫到你☝(Θ㉨Θ)你們還是圖樣
8. php 當session超時時(前)處理代碼寫在哪
php中session的時間一般是在php.ini中設置的,如果你不願意在那裡設置,參考一下下面的代碼。
在你設置session的頁面中
session_start();
$_SESSION[ 'session_time ']=time(); //這個用來計時
$_SESSIOM[ 'user']= "username";
要檢驗session是否超時的頁面:
session_start();
$timeout=600; //超時時間,單位:秒,這里設為10分鍾.
$now=time();
if(($now-$_SESSION[ 'session_time '])> $timeout)
{
//超時了.
unset($_SESSION[ 'user']);
//在這里寫上刪除數據的代碼
.......
}else{
//還沒超時.
$_SESSION[ 'session_time ']=time();
}
9. thinkphp 怎麼配置session過期時間
不要session_start()
具體的你可以看下來介紹:
get(name) 獲取 Session 值
getLocal(name) 獲取本地化 Session 的值
set(name, value) 設置 Session 的值
setLocal(name, value) 設置本地化 Session 的值
is_set(name) 檢查 Session 的值是否設置
is_setLocal(name) 檢查本地化 Session 的值是否已經設置
pause() 暫停 session
clear() 清空 Session
clearLocal() 清空本地化 Session
destroy() 銷毀 Session
isExpired() 檢測 Session 是否過期
isIdle() 檢測 Session 是否閑置