php session不過期的實作方法:先利用客戶端儲存cookie;然後把得到的sessionID儲存到客戶端的cookie裡面;接著設定cookie的值;最後把值傳遞給「session_id()」函數即可。
PHP中的session永不過期的解決思路及實作方法分享
開啟php. ini設定文件,修改三行如下:
相關推薦:《php session 會話(專題)》
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的值 ?>
注意:在setcookie一行中的'PHPSESSID'並不是一定的,有可能對其做了修改,最好的方法是用phpinfo()這個函數看看,確認一下session.name一項的值,比較科學。
以上是php session不過時的實作方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!