最新的Web開發教程
 

PHP 5餅乾


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參考