欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

詳解php設(shè)置session(過期、失效、有效期)

 更新時間:2015年11月12日 16:57:09   投稿:lijiao  
這篇文章主要介紹了php設(shè)置session,其實(shí)php中設(shè)置session有很多方面包,包括session設(shè)置值或直接設(shè)置過期、失效和有效期,需要的朋友可以參考下

在php中設(shè)置session有很多方面包有給session設(shè)置值或直接設(shè)置過期、失效和有效期,下面小編來給大家給各位朋友介紹怎么使用。

我們先來看看在php.ini中session怎么設(shè)置,打開 php.ini,查找Session設(shè)置部分中以下一項(xiàng),代碼如下:

session.save_path = "N;/path" 
session.save_path = "C:/Temp"  #此處以你自己設(shè)定的路徑為準(zhǔn)

 這項(xiàng)設(shè)置提供給我們可以給session存放目錄進(jìn)行多級散列,其中“N”表示要設(shè)置的目錄級數(shù),后面的“/path”表示session文件存放的根目錄路徑,比如我們設(shè)置為下面的格式,代碼如下:

session.save_path = "2;C:/Temp"

上面的設(shè)置表示我們把php的session文件進(jìn)行兩級目錄存儲,每一級目錄分別是0-9和a-z共36個字母數(shù)字為目錄名,這樣存放session的目錄可以達(dá)到36*36個,共1332個文件夾,相信作為單臺服務(wù)器來說,這是完全夠用了,如果說您的系統(tǒng)架構(gòu)設(shè)計為多臺服務(wù)器共享session數(shù)據(jù),可以把目錄級增加到3級或者更多。

Session過期時間設(shè)定

繼續(xù)PHP中的Session話題,在PHP中主要通過設(shè)置session.gc_maxlifetime來設(shè)定Session的生存周期,例如如下代碼:

<?php 
ini_set('session.gc_maxlifetime', 3600); //設(shè)置時間 
ini_get('session.gc_maxlifetime');//得到ini中設(shè)定值 
?> 

下面提供一個別人封裝好的函數(shù),但是我沒有測試過,僅供參考,代碼如下:

<?php 
function start_session($expire = 0) 
{ 
 if ($expire == 0) { 
 $expire = ini_get('session.gc_maxlifetime'); 
 } else { 
 ini_set('session.gc_maxlifetime', $expire); 
 } 
 if (emptyempty($_COOKIE['PHPSESSID'])) { 
 session_set_cookie_params($expire); 
 session_start(); 
 } else { 
 session_start(); 
 setcookie('PHPSESSID', session_id(), time() + $expire); 
 } 
} 
?> 

使用方法:

加入start_session(600);//600秒以后過期。

session永不過期的方法

打開php.ini設(shè)置文件,修改三行如下:

1、session.use_cookies

把這個的值設(shè)置為1,利用cookie來傳遞sessionid

2、session.cookie_lifetime

這個代表SessionID在客戶端Cookie儲存的時間,默認(rèn)是0,代表瀏覽器一關(guān)閉SessionID就作廢……就是因?yàn)檫@個所以PHP的session不能永久使用! 那么我們把它設(shè)置為一個我們認(rèn)為很大的數(shù)字吧,999999999怎么樣,可以的!就這樣。

3、session.gc_maxlifetime

這個是Session數(shù)據(jù)在服務(wù)器端儲存的時間,如果超過這個時間,那么Session數(shù)據(jù)就自動刪除!那么我們也把它設(shè)置為99999999。

就這樣一切ok了,當(dāng)然你不相信的話就測試一下看看——設(shè)置一個session值過個10天半個月的回來看看,如果你的電腦沒有斷電或者宕機(jī),你仍然可以看見這個sessionid。

當(dāng)然也可能你沒有控制服務(wù)器的權(quán)限并不能像我一樣幸運(yùn)的可以修改php.ini設(shè)置,一切依靠我們自己也是有辦法的,當(dāng)然就必須利用到客戶端存儲cookie了,吧得到的sessionID存儲到客戶端的cookie里面,設(shè)置這個cookie的值,然后把這個值傳遞給session_id()這個函數(shù),具體做法如下:

<?php 
session_start(); // 啟動Session 
$_SESSION['count']; // 注冊Session變量Count 
isset($PHPSESSID)?session_id($PHPSESSID):$PHPSESSID = session_id(); 
// 如果設(shè)置了$PHPSESSID,就將SessionID賦值為$PHPSESSID,否則生成SessionID 
$_SESSION['count']++; // 變量count加1 
setcookie('PHPSESSID', $PHPSESSID, time()+3156000); // 儲存SessionID到Cookie中 
echo $count; // 顯示Session變量count的值 
?> 

以上就是php設(shè)置session的具體做法,內(nèi)容涉及session設(shè)置值或直接設(shè)置過期、失效和有效期,希望對大家的學(xué)習(xí)有所幫助。

相關(guān)文章

最新評論