setcookie() 定義一個和其余的 HTTP 標頭一起發送的 cookie和其它標頭一樣cookie 必須在腳本的任何其它輸出之前發送(這是協議限制)這 需要將本函數的調用放到任何輸出之前包括 <html> 和 <head> 標簽以及任何空格如果在調用 setcookie() 之前有任何輸出本函數將失敗並返回 FALSE如果 setcookie() 函數成功運行將返回 TRUE這並不說明用戶是否接受了 cookie
函數定義
bool setcookie ( string name [ string value [ int expire [ string path [ string domain [ bool secure]]]]] )
setcookie() 參數詳解
參數
說明
舉例
name
cookie的名字
使用
$_COOKIE[cookiename] 調用名為 cookiename 的 cookie
value
cookie的值
存放在客戶端
不要存放敏感數據
假定
name 是
cookiename
可以通過
$_COOKIE[cookiename] 取得其值
expire
Cookie 過期的時間這是個 Unix 時間戳即從 Unix 紀元開始的秒數
換而言之通常用 time() 函數再加上秒數來設定 cookie 的失效期
或者用mktime()來實現
time()+*** 將設定 cookie 天後失效
如果未設定cookie 將會在會話結束後(一般是浏覽器關閉)失效
path
Cookie 在服務器端的有效路徑
如果該參數設為 / 的話cookie 就在整個 domain 內有效
如果設為 /foo/cookie 就只在 domain 下的 /foo/ 目錄及其子目錄內有效例如 /foo/bar/
默認值為設定 cookie 的當前目錄
domain
該 cookie 有效的域名
要使 cookie 能在如 examplecom 域名下的所有子域都有效的話該參數應該設為 examplecom
雖然 並不必須的但加上它會兼容更多的浏覽器
如果該參數設為wwwexamplecom 的話就只在 www 子域內有效
細節見Cookie 規范中的 tail matching
secure
指明 cookie 是否僅通過安全的 HTTPS 連接傳送
當設成 TRUE 時cookie 僅在安全的連接中被設置默認值為FALSE
或
例子 setcookie() 發送例子
復制代碼 代碼如下:
$value =
something from somewhere
;
setcookie("TestCookie"
$value);
setcookie("TestCookie"
$value
time()+
); /* expire in
hour */
setcookie("TestCookie"
$value
time()+
"/~rasmus/"
"
utoronto
ca"
);
注意 cookie 中值的部分在發送的時候會被自動用 urlencode 編碼並在接收到的時候被自動解碼並把值賦給與自己同名的 cookie 變量如果不想這樣並且在使用 PHP 的話可以用 setrawcookie() 來代替下面這個簡單的例子可以得到剛才所設定的 cookie 的值
復制代碼 代碼如下:
<?php
// 輸出單獨的 cookie
echo $_COOKIE["TestCookie"];
echo $HTTP_COOKIE_VARS["TestCookie"];
// 另一個調試的方法就是輸出所有的 cookie
print_r($_COOKIE);
?>
要刪除 cookie 需要確保它的失效期是在過去才能觸發浏覽器的刪除機制下面的例子說明了如何刪除剛才設置的 cookie
例子 setcookie() 刪除例子
復制代碼 代碼如下:
// 將過期時間設為一小時前
setcookie("TestCookie"
""
time()
);
setcookie("TestCookie"
""
time()
"/~rasmus/"
"
utoronto
ca"
);
也可以通過在 cookie 名稱中使用數組符號來設定數組 cookie可以設定多個 cookie 作為數組單元在腳本提取 cookie 時所有的值都放在一個數組種
例子 setcookie() 中使用數組的例子
復制代碼 代碼如下:
<?php
// 設定 cookie
setcookie("cookie[three]"
"cookiethree");
setcookie("cookie[two]"
"cookietwo");
setcookie("cookie[one]"
"cookieone");
// 刷新頁面後
顯示出來
if (isset($_COOKIE[
cookie
])) {
foreach ($_COOKIE[
cookie
] as $name => $value) {
echo "$name : $value <br />n";
}
}
?>
上例將輸出
three : cookiethree
two : cookietwo
one : cookieone
總結cookie的基本使用不難這篇文章記錄的重點主要是掌握path的路徑設置和domain的域名設置
From:http://tw.wingwit.com/Article/program/PHP/201311/21055.html