Cookie通常用來識別用戶。
Cookie是什麼?
Cookie通常用來識別用戶。 Cookie是服務器在用戶的計算機中的小文件。 每當計算機請求一個頁面瀏覽器時,它就會發送cookie。 使用PHP,您可以創建並取回cookie的值。
創建Cookies用PHP
甲cookie被與所創建setcookie()函數。
句法
setcookie( name, value, expire, path, domain, secure, httponly );
只有名稱參數是必需的。 所有其他參數都是可選的。
PHP創建/檢索一個Cookie
下面的示例創建一個名為cookie的"user"與價值"John Doe" 。 經過30天的cookie將過期(86400 * 30) 該"/"表示該cookie是在整個網站(否則,選擇您喜歡的目錄)可用。
然後,我們檢索cookie的值"user" (使用全局變量$ _COOKIE)。 我們還使用isset()的功能,以找出是否設置cookie:
例
<?php
$cookie_name = "user";
$cookie_value = "John
Doe";
setcookie($cookie_name, $cookie_value, time() + (86400 * 30), "/");
// 86400 = 1 day
?>
<html>
<body>
<?php
if(!isset($_COOKIE[$cookie_name]))
{
echo "Cookie named '" . $cookie_name . "' is not
set!";
} else {
echo "Cookie '" . $cookie_name
. "' is set!<br>";
echo "Value is: " . $_COOKIE[$cookie_name];
}
?>
</body>
</html>
運行示例» Note:該setcookie()函數必須出現在之前<html>標記。
Note:在發送cookie時cookie的值會自動url編碼,在接收時自動解碼(為防止URL編碼,使用setrawcookie()代替)。
修改Cookie值
要修改一個cookie,只需將(again)使用該cookie setcookie()函數:
例
<?php
$cookie_name = "user";
$cookie_value = "Alex
Porter";
setcookie($cookie_name, $cookie_value, time() + (86400 * 30), "/");
?>
<html>
<body>
<?php
if(!isset($_COOKIE[$cookie_name]))
{
echo "Cookie named '" . $cookie_name . "' is not
set!";
} else {
echo "Cookie '" . $cookie_name
. "' is set!<br>";
echo "Value is: " . $_COOKIE[$cookie_name];
}
?>
</body>
</html>
運行示例» 刪除Cookie
要刪除Cookie,使用setcookie()的功能與過去的到期日期:
例
<?php
// set the expiration date to one hour ago
setcookie("user",
"" , time() - 3600);
?>
<html>
<body>
<?php
echo "Cookie 'user'
is deleted.";
?>
</body>
</html>
運行示例» 檢查Cookies被啟用
下面的示例創建一個小的腳本來檢查是否cookies被啟用。 首先,嘗試創建一個測試Cookie與setcookie()的功能,再算上$ _COOKIE數組變量:
例
<?php
setcookie("test_cookie", "test" , time() + 3600, '/');
?>
<html>
<body>
<?php
if(count($_COOKIE) > 0) {
echo "Cookies are enabled.";
} else {
echo
"Cookies are disabled.";
}
?>
</body>
</html>
運行示例» 完整的PHP HTTP參考
對於HTTP功能的完整參考,請給我們完整的PHP HTTP參考 。