1. 程式人生 > >詳解php設定session(過期、失效、有效期)

詳解php設定session(過期、失效、有效期)

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

我們先來看看在php.ini中session怎麼設定,開啟 php.ini,查詢Session設定部分中以下一項,程式碼如下:

?
1 2 session.save_path = "N;/path" session.save_path = "C:/Temp"  #此處以你自己設定的路徑為準

 這項設定提供給我們可以給session存放目錄進行多級雜湊,其中“N”表示要設定的目錄級數,後面的“/path”表示session檔案存放的根目錄路徑,比如我們設定為下面的格式,程式碼如下:

?
1 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的生存週期,例如如下程式碼:

?
1 2 3 4 <?php ini_set('session.gc_maxlifetime', 3600); //設定時間 ini_get('session.gc_maxlifetime');//得到ini中設定值 ?>

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

?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 <?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()這個函式,具體做法如下:

?
1 2 3 4 5 6 7 8 9

相關推薦

php設定session(過期失效有效期)

在php中設定session有很多方面包有給session設定值或直接設定過期、失效和有效期,下面小編來給大家給各位朋友介紹怎麼使用。 我們先來看看在php.ini中session怎麼設定,開啟 php.ini,查詢Session設定部分中以下一項,程式碼如下:

【l轉】phpsession過期時間設定及回收機制

php中session過期時間設定及回收機制詳解: 修改php中的session過期時間可以修改php配置檔案php.ini中的session.gc_maxlifetime即可。 當php每發出一次請求時,會有1/100的概率(預設值)觸發"session回收"。如果"session回收"發生,那就會檢查

為什麼一段時間後網站後臺自動退出 phpsession過期時間設定

修改php配置檔案中的session.gc_maxlifetime。如果想了解更多session回收機制,繼續閱讀。(本文環境php5.2) 概述:每一次php請求,會有1/100的概率(預設值)觸發“session回收”。如果“session回收”發生,那就會檢查/t

PHP 設定 session過期時間

現在的網站都流行登入後, 除非按了登出, 不然就永遠是登入狀態(永不過期).(註: 相對需要更注意使用者帳號的安全問題) 不過, 這樣子設的話, 計算 目前站上人數 就得要另外想辦法做囉~ :) Session 過期時間引數 設定過期時間引數, 主要是設定 sessio

phpsession過期時間設定

網上很多人給出瞭解答:修改配置檔案中的session.gc_maxlifetime。如果想了解更多session回收機制,繼續閱讀。(本文環境php5.2) 概述:每一次php請求,會有1/100的概率(預設值)觸發“session回收”。如果“session回收”發生,那就會檢查/tmp/sess_*的檔

PHP配置文件php.ini

php配置文件詳解php.iniPHP配置文件詳解php.ini [PHP] ; PHP還是一個不斷發展的工具,其功能還在不斷地刪減 ; 而php.ini的設置更改可以反映出相當的變化, ; 在使用新的PHP版本前,研究一下php.ini會有好處的 ;;;;;;;;;;;;;;;;;;; ; 關於這個

AngularJS語法基礎及數據綁定——各種數據綁定指令屬性應用

har 用戶 添加 雙向 技巧 title 程序 詳細 allow   AngularJS簡單易學,但是功能強大。特別是在構建單頁面應用方面效果顯著。而 數據綁定 可以說是他被廣泛使用的最主要的優點。他舍棄了對DOM的操作方式,一切都由AngularJS來自動更新視圖,我們

Java的位運算符實例——與(&)非(~)或(|)異或(^)(僅作記錄)

out 位運算符 異或運算 pri stat 運算 data 操作 amp 位運算符主要針對二進制,它包括了:“與”、“非”、“或”、“異或”。從表面上看似乎有點像邏輯運算符,但邏輯運算符是針對兩個關系運算符來進行邏輯運算,而位運算符主要針對兩個二進制數的位進行邏輯運算。下

PHP文件下載的原理和實現

利用 ring php代碼 按鈕 功能 span 所有 編號 變量 通常文件下載過程是十分簡單的,建立一個鏈接指向到目標文件就可以了。例如下面的鏈接: XML/HTML代碼 <a href=http://www.xxx.com/xxx.rar>點擊下載文件&

linux後臺運行和關閉查看後臺任務

輸入 列表 顯示 color pre opp ima 監聽 kill -9 一、& 加在一個命令的最後,可以把這個命令放到後臺執行,如 watch -n 10 sh test.sh & #每10s在後臺執行一次test.sh腳本 二、ctrl + z

《TCP-IP卷3:TCP 事務協議HTTPNNTP和UNIX域協議》【PDF】下載

維護 tcp協議 zha 簡介 參考文獻 源程序 .com 的人 ntp TCP-IP詳解卷3:TCP 事務協議、HTTP、NNTP和UNIX域協議》【PDF】下載鏈接: https://u253469.pipipan.com/fs/253469-230062539

PHP實現定時任務的五種方法

清理 toolbar 路徑 頁面 文檔 errors conf star 包含 定時運行任務對於一個網站來說,是一個比較重要的任務,比如定時發布文檔,定時清理垃圾信息等,現在的網站大多數都是采用PHP動態語言開發的,而對於PHP的實現決定了它沒有Java和.Net這種A

【TP3.2.*】解決session過期失效 和 設置不成功問題

lifetime runtime isset 清除 不成功 use 問題 func true 1、背景:本來我想設置session有效期1800秒即30分鐘 失效的,可是實際使用TP3.2.0的時候發現,登錄了幾天用戶竟然沒有失效,一直都可以登錄。 2、解決: 2.1

如何嚴格設置phpsession過期時間

基本原理 默認 方法 path bag 當前時間 並不會 itl ring 如何嚴格限制session在30分鐘後過期!1.設置客戶端cookie的lifetime為30分鐘;2.設置session的最大存活周期也為30分鐘;3.為每個session值加入時間戳,然後在程序

PHP file_put_contents() 函數用法示例

include 轉載 用法 () 功能 path mod 例子 註意事項 今天春哥技術博客給大家講解下PHP函數file_put_contents()的用法,示例,及註意事項。定義和用法 file_put_contents() 函數把一個字符串寫入文件中。 與依次調用 fo

Mysql-5.7用戶管理授權控制日誌管理以及解決數據庫亂碼問題

pda 定時 權限 null 優化 修改 日誌功能 新建 erro 簡介 1、用戶管理2、授權控制3、日誌管理4、解決數據亂碼問題 實驗環境 系統環境:centos7.4 宿主機IP地址:192.168.100.71 yum掛載目錄:/mnt/sr0 命令步驟 一、用戶

【小家java】BlockingQueue阻塞佇列以及5大實現(ArrayBlockingQueueDelayQueueLinkedBlockingQueue...)

相關閱讀 【小家java】java5新特性(簡述十大新特性) 重要一躍 【小家java】java6新特性(簡述十大新特性) 雞肋升級 【小家java】java7新特性(簡述八大新特性) 不溫不火 【小家java】java8新特性(簡述十大新特性) 飽受讚譽 【小家java】java9

絕對PHP 的imageTtfText()函式

圖片處理,是許多程式的功能之一;而文字渲染則是繪圖的基本組成部分。PHP通過很多擴充套件庫來支援圖片的處理,最常用的還是GD庫,通過一系列imagexxx()函式來提供繪圖功能。本文專注於非常細小的一點:繪製文字。熟悉Win32的人都知道,TextOut()就可以輕鬆顯示任何文字了,然而到了PHP的

PHP中foreach的用法和例項

在PHP中經常會用到foreach的使用,而要用到foreach,就必須用到陣列。因此,在這篇文章中,我們一邊講陣列,一邊講foreach。 foreach有兩種語法: 第一種:遍歷給定的 陣列語句 array_expression 陣列。每次迴圈中,當前單元的值被賦給