国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 網站 > 建站經驗 > 正文

php 設置 session的過期,失效,有效期詳解

2024-04-25 20:35:43
字體:
來源:轉載
供稿:網友

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

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

session.save_path = "N;/path"

session.save_path = "C:/Temp"  #此處以你自己設定的路徑為準

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

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

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

Session過期時間設定

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

<?php

ini_set('session.gc_maxlifetime', 3600); //設置時間

ini_get('session.gc_maxlifetime');//得到ini中設定值

?>

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

<?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設置文件,修改三行如下:

1、session.use_cookies

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

2、session.cookie_lifetime

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

3、session.gc_maxlifetime

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

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

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

<?php

session_start(); // 啟動Session

$_SESSION['count']; // 注冊Session變量Count

isset($PHPSESSID)?session_id($PHPSESSID):$PHPSESSID = session_id();

// 如果設置了$PHPSESSID,就將SessionID賦值為$PHPSESSID,否則生成SessionID

$_SESSION['count']++; // 變量count加1

setcookie('PHPSESSID', $PHPSESSID, time()+3156000); // 儲存SessionID到Cookie中

echo $count; // 顯示Session變量count的值
?>  

 

 

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 云林县| 横峰县| 乐东| 沙湾县| 延庆县| 中西区| 磐安县| 青铜峡市| 白朗县| 兴和县| 确山县| 乌拉特中旗| 包头市| 宾川县| 元氏县| 泽库县| 桦甸市| 深圳市| 汪清县| 南皮县| 沿河| 阿巴嘎旗| 泗洪县| 周口市| 西乌| 邵武市| 乌鲁木齐县| 浪卡子县| 保德县| 镇安县| 灵台县| 大田县| 若尔盖县| 苍溪县| 井研县| 清远市| 吉安县| 宜君县| 上犹县| 晋江市| 晋江市|