您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關php會話時間怎么設置,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
php會話時間的設置方法:首先打開php.ini,并查找Session設置部分;然后通過設置“session.gc_maxlifetime”來設定Session的生存周期即可。
本文操作環境:windows7系統、PHP7.1版,DELL G3電腦
php設置session(過期、失效、有效期)
在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的值
關于“php會話時間怎么設置”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。