詳解php設置session(過期、失效、有效期)
在php中設置session有很多方面包有給session設置值或直接設置過期、失效和有效期,下面小編來給大家給各位朋友介紹怎么使用。
我們先來看看在php.ini中session怎么設置,打開 php.ini,查找Session設置部分中以下一項,代碼如下:
session.save_path = "N;/path" session.save_path = "C:/Temp" #此處以你自己設定的路徑為準
這項設置提供給我們可以給session存放目錄進行多級散列,其中“N”表示要設置的目錄級數(shù),后面的“/path”表示session文件存放的根目錄路徑,比如我們設置為下面的格式,代碼如下:
session.save_path = "2;C:/Temp"
上面的設置表示我們把php的session文件進行兩級目錄存儲,每一級目錄分別是0-9和a-z共36個字母數(shù)字為目錄名,這樣存放session的目錄可以達到36*36個,共1332個文件夾,相信作為單臺服務器來說,這是完全夠用了,如果說您的系統(tǒng)架構設計為多臺服務器共享session數(shù)據(jù),可以把目錄級增加到3級或者更多。
Session過期時間設定
繼續(xù)PHP中的Session話題,在PHP中主要通過設置session.gc_maxlifetime來設定Session的生存周期,例如如下代碼:
<?php ini_set('session.gc_maxlifetime', 3600); //設置時間 ini_get('session.gc_maxlifetime');//得到ini中設定值 ?>
下面提供一個別人封裝好的函數(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設置文件,修改三行如下:
1、session.use_cookies
把這個的值設置為1,利用cookie來傳遞sessionid
2、session.cookie_lifetime
這個代表SessionID在客戶端Cookie儲存的時間,默認是0,代表瀏覽器一關閉SessionID就作廢……就是因為這個所以PHP的session不能永久使用! 那么我們把它設置為一個我們認為很大的數(shù)字吧,999999999怎么樣,可以的!就這樣。
3、session.gc_maxlifetime
這個是Session數(shù)據(jù)在服務器端儲存的時間,如果超過這個時間,那么Session數(shù)據(jù)就自動刪除!那么我們也把它設置為99999999。
就這樣一切ok了,當然你不相信的話就測試一下看看——設置一個session值過個10天半個月的回來看看,如果你的電腦沒有斷電或者宕機,你仍然可以看見這個sessionid。
當然也可能你沒有控制服務器的權限并不能像我一樣幸運的可以修改php.ini設置,一切依靠我們自己也是有辦法的,當然就必須利用到客戶端存儲cookie了,吧得到的sessionID存儲到客戶端的cookie里面,設置這個cookie的值,然后把這個值傳遞給session_id()這個函數(shù),具體做法如下:
<?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的值 ?>
以上就是php設置session的具體做法,內容涉及session設置值或直接設置過期、失效和有效期,希望對大家的學習有所幫助。
- PHP中使用Session配合Javascript實現(xiàn)文件上傳進度條功能
- PHP使用Session實現(xiàn)上傳進度功能詳解
- PHP實現(xiàn)提高SESSION響應速度的幾種方法詳解
- PHP Session 變量的使用方法詳解與實例代碼
- PHP session有效期問題
- PHP中session使用方法詳解
- PHP會話控制:Session與Cookie詳解
- PHP 文件上傳進度條的兩種實現(xiàn)方法的代碼
- php ajax實現(xiàn)文件上傳進度條
- PHP利用APC模塊實現(xiàn)文件上傳進度條的方法
- PHP實現(xiàn)帶進度條的Ajax文件上傳功能示例
- PHP基于session.upload_progress 實現(xiàn)文件上傳進度顯示功能詳解
相關文章
WordPress的文章自動添加關鍵詞及關鍵詞的SEO優(yōu)化
這篇文章主要介紹了給WordPress的文章添加關鍵詞及關鍵詞的SEO優(yōu)化方法,突出關鍵詞在搜尋結果中的作用,需要的朋友可以參考下2016-03-03PHP開發(fā)中解決并發(fā)問題的幾種實現(xiàn)方法分析
這篇文章主要介紹了PHP開發(fā)中解決并發(fā)問題的幾種實現(xiàn)方法,結合實例形式分析了php通過各種加鎖機制解決并發(fā)問題的相關操作技巧,需要的朋友可以參考下2017-11-11