1. php中如何設置session過期時間,我要在代碼中設置,不在php.ini裡面設置
用session_cache_expire試試
例子 1. session_cache_expire() example
<?php
/* set the cache limiter to 'private' */
session_cache_limiter('private');
$cache_limiter = session_cache_limiter();
/* set the cache expire to 30 minutes */
session_cache_expire(30);
$cache_expire = session_cache_expire();
/* start the session */
session_start();
echo "The cache limiter is now set to $cache_limiter</ br>";
echo "The cached session pages expire after $cache_expire minutes";
?>
2. php session 過期時間怎麼正確的設置
瀏覽器關閉,默認的和伺服器連接就關閉,session當然就沒有了,如果你想在瀏覽器關閉後繼續連接伺服器的話,必須開啟一個設置,但是這樣很占資源的。
3. 如何嚴格設置php中session過期時間
第一種方法即設置php.ini配置文件,設置session.gc_maxlifetime和session.cookie_lifetime節
點屬性值,當然也可以使用ini_set函數改變當前上下文環境的屬性值:
ini_set('session.gc_maxlifetime', "3600"); // 秒
ini_set("session.cookie_lifetime","3600"); // 秒
第二種方法即設置Session時間戳,比如下面的辦法。
在登錄成功時設置時間戳為當前時間推後1小時,$_SESSION['expiretime'] = time() + 3600;。在
檢查用戶登錄情況使用如下代碼:
if(isset($_SESSION['expiretime'])) {
if($_SESSION['expiretime'] < time()) {
unset($_SESSION['expiretime']);
header('Location: logout.php?TIMEOUT'); // 登出
exit(0);
} else {
$_SESSION['expiretime'] = time() + 3600; // 刷新時間戳
}
}
兩種方法可以結合使用。
4. 如何嚴格設置php中session過期時間
如何嚴格限制session在30分鍾後過期!
1.設置客戶端cookie的lifetime為30分鍾;
2.設置session的最大存活周期也為30分鍾;
3.為每個session值加入時間戳,然後在程序調用時進行判斷;
至於為什麼,我們首先來了解下php中session的基本原理:
PHP中的session有效期默認是1440秒(24分鍾),也就是說,客戶端超過24分鍾沒有刷新,當前session就會失效。當然如果用戶關閉了瀏覽器,會話也就結束了,Session自然也不存在了!
大家知道,Session儲存在伺服器端,根據客戶端提供的SessionID來得到這個用戶的文件,然後讀取文件,取得變數的值,SessionID可以使用客戶端的Cookie或者Http1.1協議的
Query_String(就是訪問的URL的「?」後面的部分)來傳送給伺服器,然後伺服器讀取Session的目錄……
要控制Session的生命周期,首先我們需要了解一下php.ini關於Session的相關設置(打開php.ini文件,在「[Session]」部分):
1、session.use_cookies:默認的值是「1」,代表SessionID使用Cookie來傳遞,反之就是使用Query_String來傳遞;
2、session.name:這個就是SessionID儲存的變數名稱,可能是Cookie,也可能是Query_String來傳遞,默認值是「PHPSESSID」;
3、session.cookie_lifetime:這個代表SessionID在客戶端Cookie儲存的時間,默認是0,代表瀏覽器一關閉SessionID就作廢……就是因為這個所以Session不能永久使用!
4、session.gc_maxlifetime:這個是Session數據在伺服器端儲存的時間,如果超過這個時間,那麼Session數據就自動刪除! ...展開如何嚴格限制session在30分鍾後過期!
1.設置客戶端cookie的lifetime為30分鍾;
2.設置session的最大存活周期也為30分鍾;
3.為每個session值加入時間戳,然後在程序調用時進行判斷;
至於為什麼,我們首先來了解下php中session的基本原理:
這樣試試呢,我在後盾人看見的不知道對不對,希望能幫到你☝(Θ㉨Θ)你們還是圖樣
5. php怎麼設置某個session的過期時間
可以在PHP中,設置php.ini,找到session.gc_maxlifetime = 1440 #(PHP5默認24分鍾) 這里你可以隨便設置一下過期時間.但是有人說設置以後,好象不起作用! 其實不是不起作用,而是因為系統默認: session.gc_probability = 1 session.gc_divisor = 1000...
樓主去後盾人看看,那的學習視頻應該可以幫助你解決問題,以及你其他的不太懂的問題
6. php session 不會過期 怎麼設置過期
php session本來就會過期啊(本來是會話的cookie,也就是說關閉瀏覽器,則session過期),如果要強制過期的話可以:
setcookie(session_name(),'', time() - 3600);
session_destroy();
兩者同時使用即可。
希望能夠幫助到你,如果還有什麼疑問,請留言。
7. php 怎麼設置session 的值永不過期
把sessionID存到客戶端cookie里試試呢
<?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的值
?>
8. 怎麼設置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的值
?>
如果很久以後(多久?你自己看吧)你回來刷新這個頁面,輸出的數字比你走的時候大了1那就對了!如果大了很多,估計是誰動你電腦了,這次測試就不準確了,呵呵……重新出去一會兒吧!
注意:在setcookie一行中的』PHPSESSID』並不是一定的,如果你遇到有個患有修改狂疾病的網管員,他可能對其做了修改,最好的方法是用phpinfo()這個函數看看,確認一下session.name一項的值,比較科學。
9. php 如何設置sessionid的有效期
ini_set('session.gc_maxlifetime',20);//20s
用session.gc_maxlifetime來設置
10. php中session有效期如何設置(用php代碼設置,不是修改配置文件)
session_start();
// 保存一天
$lifeTime = 24 * 3600;
setcookie(session_name(), session_id(), time() + $lifeTime, "/");