日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > php >内容正文

php

php中cookie的用法

發(fā)布時(shí)間:2025/3/21 php 48 豆豆
生活随笔 收集整理的這篇文章主要介紹了 php中cookie的用法 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

php中cookie的用法是怎么樣的?在php中使用cookie需要注意什么?cookie 是一種在遠(yuǎn)程瀏覽器端儲(chǔ)存數(shù)據(jù)并以此來(lái)跟蹤和識(shí)別用戶的機(jī)制。
PHP在http協(xié)議的頭信息里發(fā)送cookie, 因此 setcookie() 函數(shù)必須在其它信息被輸出到瀏覽器前調(diào)用,這和對(duì) header() 函數(shù)的限制類(lèi)似。

本文轉(zhuǎn)自:
http://blog.chinaunix.net/u/27731/showart_259031.html

1.1 設(shè)置cookie:
??? 可以用 setcookie() 或 setrawcookie() 函數(shù)來(lái)設(shè)置 cookie。也可以通過(guò)向客戶端直接發(fā)送http頭來(lái)設(shè)置.
1.1.1 使用setcookie()函數(shù)設(shè)置cookie:
bool setcookie ( string name [, string value [, int expire [, string path [, string domain [, bool secure [, bool httponly]]]]]] )
???? name:?? cookie變量名
???? value:?? cookie變量的值
???? expire:? 有效期結(jié)束的時(shí)間,
???? path:??? 有效目錄,
???? domain: 有效域名,頂級(jí)域唯一
???? secure:? 如果值為1,則cookie只能在https連接上有效,如果為默認(rèn)值0,則http和https都可以.
例子:
<?php
$value = 'something from somewhere';

setcookie("TestCookie", $value); /* 簡(jiǎn)單cookie設(shè)置 */
setcookie("TestCookie", $value, time()+3600); /* 有效期1個(gè)小時(shí) */
setcookie("TestCookie", $value, time()+3600, "/~rasmus/", ".example.com", 1); /* 有效目錄 /~rasmus,有效域名example.com及其所有子域名 */
?>

設(shè)置多個(gè)cookie變量: setcookie('var[a]','value');用數(shù)組來(lái)表示變量,但他的下標(biāo)不用引號(hào).這樣就可以用$_COOKIE[‘var’][‘a(chǎn)’]來(lái)讀取該COOKIE變量.

1.1.2. 使用header()設(shè)置cookie;
header("Set-Cookie: name=$value[;path=$path[;domain=xxx.com[;...]]");
后面的參數(shù)和上面列出setcookie函數(shù)的參數(shù)一樣.
比如:

$value = 'something from somewhere';
header("Set-Cookie:name=$value");

1.2 Cookie的讀取:

直接用php內(nèi)置超級(jí)全局變量 $_COOKIE就可以讀取瀏覽器端的cookie.
上面例子中設(shè)置了cookie"TestCookie",現(xiàn)在我們來(lái)讀取:

print $_COOKIE['TestCookie'];

COOKIE是不是被輸出了?!

1.3 刪除cookie
只需把有效時(shí)間設(shè)為小于當(dāng)前時(shí)間, 和把值設(shè)置為空.例如:
setcookie("name","",time()-1);
用header()類(lèi)似.

1.4 常見(jiàn)問(wèn)題解決:

1) 用setcookie()時(shí)有錯(cuò)誤提示,可能是因?yàn)檎{(diào)用setcookie()前面有輸出或空格.也可能你的文檔使從其他字符集轉(zhuǎn)換過(guò)來(lái),文檔后面可能帶 有BOM簽名(就是在文件內(nèi)容添加一些隱藏的BOM字符).解決的辦法就是使你的文檔不出現(xiàn)這種情況.還有通過(guò)使用ob_start()函數(shù)有也能處理一 點(diǎn).
2) $_COOKIE受magic_quotes_gpc影響,可能自動(dòng)轉(zhuǎn)義
3) 使用的時(shí)候,有必要測(cè)試用戶是否支持cookie


1.5 cookie工作機(jī)理:

有些學(xué)習(xí)者比較沖動(dòng),沒(méi)心思把原理研究,所以我把它放后面.
a) 服務(wù)器通過(guò)隨著響應(yīng)發(fā)送一個(gè)http的Set-Cookie頭,在客戶機(jī)中設(shè)置一個(gè)cookie(多個(gè)cookie要多個(gè)頭).
b) 客戶端自動(dòng)向服務(wù)器端發(fā)送一個(gè)http的cookie頭,服務(wù)器接收讀取.

HTTP/1.x 200 OK
X-Powered-By: PHP/5.2.1
Set-Cookie: TestCookie=something from somewhere; path=/
Expires: Thu, 19 Nov 2007 18:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Content-type: text/html

這一行實(shí)現(xiàn)了cookie功能,收到這行后
Set-Cookie: TestCookie=something from somewhere; path=/
瀏覽器將在客戶端的磁盤(pán)上創(chuàng)建一個(gè)cookie文件,并在里面寫(xiě)入:

TestCookie=something from somewhere;

這一行就是我們用setcookie('TestCookie','something from somewhere','/');的結(jié)果.也就是用header('Set-Cookie: TestCookie=something from somewhere; path=/');的結(jié)果.

轉(zhuǎn)載于:https://www.cnblogs.com/shsgl/p/3952975.html

總結(jié)

以上是生活随笔為你收集整理的php中cookie的用法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。