在php中,只需要設(shè)置setcookie()函數(shù)第三個(gè)參數(shù)的值一直大于系統(tǒng)當(dāng)前時(shí)間即可,語(yǔ)法“setcookie("cookie_name", "cookie_value", time()+99*365*24*3600);”。
本教程操作環(huán)境:windows7系統(tǒng)、PHP7.1版,DELL G3電腦
PHP里面設(shè)置cookie的時(shí)候,如果沒有指定有效期,則生存周期為瀏覽器會(huì)有期間,也可以稱為不存盤,瀏覽器關(guān)閉后再次打開就沒有了。
如果給cookie設(shè)置一個(gè)比較久的有效期(一直大于系統(tǒng)當(dāng)前時(shí)間),則可讓cookie永不過期。而setcookie()函數(shù)的第三個(gè)參數(shù)$expire就是用來設(shè)置cookie有效期的。例如下面代碼:
setcookie("cookie_name", "cookie_value", time() + 99 * 365 * 24 * 3600);
說明:
setcookie()
函數(shù)的語(yǔ)法格式如下:
setcookie(string $name [, string $value = "" [, int $expire = 0 [, string $path = "" [, string $domain = "" [, bool $secure = false [, bool $httponly = false ]]]]]])
參數(shù)說明如下:
- $name:設(shè)置 Cookie 的名稱;
- $value:可選參數(shù),用來設(shè)置 Cookie 的值??梢酝ㄟ^ $_COOKIE['$name'] 的形式來獲取 $value 的值;
- $expire:可選參數(shù),用來設(shè)置 Cookie 的過期時(shí)間,這個(gè)時(shí)間是 Unix 時(shí)間戳的形式。如果設(shè)置成零或者忽略該參數(shù),Cookie 會(huì)在會(huì)話結(jié)束時(shí)過期(也就是關(guān)掉瀏覽器時(shí));
- $path:可選參數(shù),用來設(shè)置 Cookie 有效的服務(wù)器路徑。 設(shè)置成 '/' 時(shí),Cookie 對(duì)整個(gè)域名 $domain 有效。 如果設(shè)置成'/foo/',則 Cookie 僅僅對(duì) $domain 中 /foo/ 目錄及其子目錄有效(比如 /foo/bar/)。默認(rèn)值為設(shè)置 Cookie 時(shí)的目錄;
- $domain:可選參數(shù),用來設(shè)置 Cookie 的有效域名/子域名。設(shè)置成子域名(例如 'c.biancheng.net'),會(huì)使 Cookie 對(duì)這個(gè)子域名和它的三級(jí)域名有效(例如 php.c.biancheng.net)。 要讓 Cookie 對(duì)整個(gè)域名有效(包括它的全部子域名),只要設(shè)置成域名就可以了(例如 'biancheng.net');
- $secure:可選參數(shù),用來設(shè)置這個(gè) Cookie 是否僅僅通過安全的 HTTPS 連接傳給客戶端。設(shè)置成 TRUE 時(shí),只有安全連接存在時(shí)才會(huì)設(shè)置 Cookie;
- $httponly:可選參數(shù),設(shè)置成 TRUE 時(shí),Cookie 僅可通過 HTTP 協(xié)議訪問,也就是說 Cookie 無法通過類似 JavaScript 這樣的腳本語(yǔ)言訪問。設(shè)置該參數(shù)可以有效的減少受到 XSS 攻擊的風(fēng)險(xiǎn)。
time()
返回自 Unix 紀(jì)元(January 1 1970 00:00:00 GMT)起的當(dāng)前時(shí)間的秒數(shù)。
推薦學(xué)習(xí):《PHP視頻教程》