A. 請問一個php設置cookie有效期的問題
登錄就開始保存cookie
刷新也不會重新計算的
不管動什麼手腳都會一直到過期,用戶名和密碼就消失了。
那麼把cookie放在當前頁面
一刷新就開始保存,再刷新
那就是重新開始計算了,一直到期,你也看不出來有什麼變化的。
B. 怎麼設置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一項的值,比較科學。
C. php中 cookie 的時間怎麼設置為永久的,除非客戶刪除了cookie
PHP的cookie函數裡面有個時間的設置為永遠都不過期,就行了。
您也可以向我們團隊發出請求,會有更專業的人來為您解答。
如果我的回答沒能幫助您,請繼續追問。
D. cookies不設置過期時間默認是永遠不過期嗎
並不是的,默認cookies生存期限就到關閉瀏覽器為止。
設置Cookie的生存期。有兩種存儲類型的Cookie:會話性與持久性。Expires屬性預設時,為會話性Cookie,僅保存在客戶端內存中,並在用戶關閉瀏覽器時失效。
持久性Cookie會保存在用戶的硬碟中,直至生存期到或用戶直接在網頁中單擊「注銷」等按鈕結束會話時才會失效 。
(4)phpcookie永不過期擴展閱讀:
Cookie文本數據組成:
1、Name/Value:設置Cookie的名稱及相對應的值,對於認證Cookie,Value值包括Web伺服器所提供的訪問令牌 。
2、Path屬性:定義了Web站點上可以訪問該Cookie的目錄。
3、Domain屬性:指定了可以訪問該 Cookie 的 Web 站點或域。Cookie 機制並未遵循嚴格的同源策略,允許一個子域可以設置或獲取其父域的 Cookie。當需要實現單點登錄方案時,Cookie 的上述特性非常有用,然而也增加了 Cookie受攻擊的危險。
比如攻擊者可以藉此發動會話定置攻擊。因而,瀏覽器禁止在Domain屬性中設置.org、.com 等通用頂級域名、以及在國家及地區頂級域下注冊的二級域名,以減小攻擊發生的范圍 。
4、Secure屬性:指定是否使用HTTPS安全協議發送Cookie。使用HTTPS安全協議,可以保護Cookie在瀏覽器和Web伺服器間的傳輸過程中不被竊取和篡改。該方法也可用於Web站點的身份鑒別,即在HTTPS的連接建立階段,瀏覽器會檢查Web網站的SSL證書的有效性。
但是基於兼容性的原因(比如有些網站使用自簽署的證書)在檢測到SSL證書無效時,瀏覽器並不會立即終止用戶的連接請求,而是顯示安全風險信息,用戶仍可以選擇繼續訪問該站點。由於許多用戶缺乏安全意識,因而仍可能連接到Pharming攻擊所偽造的網站。
5、HTTPOnly 屬性 :用於防止客戶端腳本通過document.cookie屬性訪問Cookie,有助於保護Cookie不被跨站腳本攻擊竊取或篡改。
但是,HTTPOnly的應用仍存在局限性,一些瀏覽器可以阻止客戶端腳本對Cookie的讀操作,但允許寫操作;此外大多數瀏覽器仍允許通過XMLHTTP對象讀取HTTP響應中的Set-Cookie頭 。
E. PHP即時cookie有效期時間怎麼設置
設置方法如下:
setcookie("cookie_name", "abcd", time()+3600);
解釋:這個cookie有3600秒的有效期;
cookie有效期在退出作用域那一刻開始生效;
重新又有3600秒,設置cookie時,不會考慮之前的是否設置cookie和cookie是否有效,可以認為是強制設置。
如果關閉瀏覽器重新打開又重新算(當然這個要php.ini設置了關閉瀏覽器立即失效的開關),其實就是打開頁面產生cokeie開始算起,如果你打開頁面產生cokeie的時間有1800秒了,假如設置的3600秒失效,再次刷新頁面就剩1800秒了
F. php如何設置COOKIE控制登錄用戶的過期時間
在php函數裡面setcookie是有時間限制的
setcookie有3個參數
第一個參數是設置的變數名字
第二個參數是變數的值
第三個參數就是有效期了.有效期是以秒來計算的
假設你設置的cookie的有效期是1個小時,那麼從你設置的時間開始,到一個小時候這個cookie都有效.換句話說就是這個cookie變數能夠讀取到的時間是1個小時
一個小時之後這個變數就失效了.不存在了
用php控制用戶過期的話.先設置一個cookie.並設置時間長度.例如1天.每次當用戶訪問的時候都去讀取這個cookie.如果存在.就免驗證.如果不存在就重新驗證.這樣就實現了登陸用戶的過期時間問題.
setcookie("TestCookie", $value);
setcookie("TestCookie", $value, time()+3600); /* 有效期1 小時 */
G. 在php中能夠設置cookie有效期的參數是
此 cookie 在一小時後過期:
setcookie("user", "runoob", time()+3600);
<?php
// 輸出 cookie 值
echo $_COOKIE["user"];
// 查看所有
cookieprint_r($_COOKIE);
?>
H. cookie.setMaxAge();如何設置這個cookie永不過期
1、打開瀏覽器,按下鍵盤上的F12鍵。
I. 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的值
?>