選單
×
   ❮     
HTML CSS JAVASCRIPT SQL PYTHON JAVA PHP HOW TO W3.CSS C C++ C# BOOTSTRAP REACT MYSQL JQUERY EXCEL XML DJANGO NUMPY PANDAS NODEJS R TYPESCRIPT ANGULAR GIT POSTGRESQL MONGODB ASP AI GO KOTLIN SASS VUE DSA GEN AI SCIPY AWS CYBERSECURITY DATA SCIENCE
     ❯   

PHP 教程

PHP HOME PHP 簡介 PHP 安裝 PHP 語法 PHP 註釋 PHP 變數 PHP Echo / Print PHP 資料型別 PHP 字串 PHP 數字 PHP 型別轉換 PHP 數學 PHP 常量 PHP 魔術常量 PHP 運算子 PHP If...Else...Elseif PHP Switch PHP 迴圈 PHP 函式 PHP 陣列 PHP 超全域性變數 PHP 正則表示式

PHP 表單

PHP 表單處理 PHP 表單驗證 PHP 表單必填項 PHP 表單 URL/電子郵件 PHP 表單完成

PHP 高階

PHP 日期和時間 PHP Include PHP 檔案處理 PHP 檔案開啟/讀取 PHP 檔案建立/寫入 PHP 檔案上傳 PHP Cookies PHP Sessions PHP 過濾器 PHP 高階過濾器 PHP 回撥函式 PHP JSON PHP 異常

PHP OOP

PHP 什麼是 OOP PHP 類/物件 PHP 建構函式 PHP 解構函式 PHP 訪問修飾符 PHP 繼承 PHP 常量 PHP 抽象類 PHP 介面 PHP Trait PHP 靜態方法 PHP 靜態屬性 PHP 名稱空間 PHP 可迭代物件

MySQL 資料庫

MySQL 資料庫 MySQL 連線 MySQL 建立資料庫 MySQL 建立表 MySQL 插入資料 MySQL 獲取最後 ID MySQL 插入多條資料 MySQL 預處理 MySQL 查詢資料 MySQL Where MySQL Order By MySQL 刪除資料 MySQL 更新資料 MySQL 限制資料

PHP XML

PHP XML 解析器 PHP SimpleXML 解析器 PHP SimpleXML - 獲取 PHP XML Expat PHP XML DOM

PHP - AJAX

AJAX 簡介 AJAX PHP AJAX 資料庫 AJAX XML AJAX 即時搜尋 AJAX 投票

PHP 示例

PHP 示例 PHP 編譯器 PHP 測驗 PHP 練習 PHP 伺服器 PHP 證書

PHP 參考手冊

PHP 概述 PHP 陣列 PHP 日曆 PHP 日期 PHP 目錄 PHP 錯誤 PHP 異常 PHP 檔案系統 PHP 過濾器 PHP FTP PHP JSON PHP 關鍵詞 PHP Libxml PHP 郵件 PHP 數學 PHP 雜項 PHP MySQLi PHP 網路 PHP 輸出控制 PHP 正則表示式 PHP SimpleXML PHP Stream PHP String PHP 變數處理 PHP XML 解析器 PHP 壓縮 PHP 時區

PHP setcookie() 函式

❮ PHP 網路參考

示例

下面的示例建立一個名為“user”且值為“John Doe”的 cookie。此 cookie 將在 30 天后過期(86400 * 30)。“/”表示 cookie 在整個網站中可用(否則,請選擇您偏好的目錄)。

然後,我們檢索 cookie“user”的值(使用全域性變數 $_COOKIE)。我們還使用 isset() 函式來判斷 cookie 是否已設定。

<!DOCTYPE html>
<?php
$cookie_name = "user";
$cookie_value = "John Doe";
setcookie($cookie_name, $cookie_value, time() + (86400 * 30), "/"); // 86400 = 1 天
?>
<html>
<body>

<?php
if(!isset($_COOKIE[$cookie_name])) {
    echo "名為 '" . $cookie_name . "' 的 cookie 未設定!";
} else {
    echo "Cookie '" . $cookie_name . "' 已設定!<br>";
    echo "值為: " . $_COOKIE[$cookie_name];
}
?>

</body>
</html>
自己動手試一試 »

定義和用法

setcookie() 函式定義一個 cookie,該 cookie 將隨其餘 HTTP 標頭一起傳送。

Cookie 通常用於識別使用者。Cookie 是伺服器嵌入使用者計算機中的一個小檔案。每次同一臺計算機使用瀏覽器請求頁面時,它也會發送 cookie。使用 PHP,您可以同時建立和檢索 cookie 值。

cookie 的名稱會自動分配給同名的變數。例如,如果傳送了一個名為“user”的 cookie,則會自動建立一個名為 $user 的變數,其中包含 cookie 的值。

注意: setcookie() 函式必須出現在 <html> 標記之前。

注意: 傳送 cookie 時,cookie 的值會自動進行 URL 編碼,接收時會自動解碼(要阻止 URL 編碼,請改用 setrawcookie())。

語法

setcookie(name, value, expire, path, domain, secure, httponly);

引數值

引數 描述
name 必需。指定 cookie 的名稱。
value 可選。指定 cookie 的值。
expire 可選。指定 cookie 何時過期。值:time()+86400*30,會將 cookie 設定為在 30 天后過期。如果省略此引數或將其設定為 0,則 cookie 將在會話結束時(瀏覽器關閉時)過期。預設值為 0。
path 可選。指定 cookie 的伺服器路徑。如果設定為“/”,則 cookie 在整個域中都可用。如果設定為“/php/”,則 cookie 僅在 php 目錄及其所有子目錄中可用。預設值為設定 cookie 的當前目錄。
domain 可選。指定 cookie 的域名。要使 cookie 在 example.com 的所有子域中都可用,請將 domain 設定為“example.com”。將其設定為 www.example.com 將僅使 cookie 在 www 子域中可用。
secure 可選。指定 cookie 是否僅透過安全的 HTTPS 連線傳輸。TRUE 表示僅在存在安全連線時才設定 cookie。預設值為 FALSE。
httponly 可選。如果設定為 TRUE,則只能透過 HTTP 協議訪問 cookie(指令碼語言無法訪問 cookie)。此設定有助於減少透過 XSS 攻擊進行的身份盜竊。預設值為 FALSE。


技術詳情

返回值 成功時為 TRUE。失敗時為 FALSE
PHP 版本 4+
PHP 更新日誌 PHP 5.5 - Max-Age 屬性包含在傳送給客戶端的 Set-Cookie 標頭中。
PHP 5.2 - 添加了 httponly 引數。

更多示例

示例

多個 cookie 過期日期

<?php
$value = "Hello world!";

// cookie 將在瀏覽器關閉時過期
setcookie("myCookie", $value);

// cookie 將在 1 小時後過期
setcookie("myCookie", $value, time() + 3600);

// cookie 將在 1 小時後過期,並且只能在
// php 目錄 + php 的所有子目錄中可用
setcookie("myCookie", $value, time() + 3600, "/php/");
?>
<html>
<body>

...some code...

</body>
</html>
自己動手試一試 »

示例

要修改 cookie,只需使用 setcookie() 函式(再次)設定 cookie 即可。

<?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_name . "' 的 cookie 未設定!";
} else {
    echo "Cookie '" . $cookie_name . "' 已設定!<br>";
    echo "值為: " . $_COOKIE[$cookie_name];
}
?>

</body>
</html>
自己動手試一試 »

示例

要刪除 cookie,請使用帶有過去過期日期的 setcookie() 函式。

<?php
// 設定過期日期為一小時前
setcookie("user", "", time() - 3600);
?>
<html>
<body>

<?php
echo "Cookie 'user' 已刪除。";
?>

</body>
</html>
自己動手試一試 »

示例

建立一個小指令碼來檢查 cookie 是否已啟用。首先,嘗試使用 setcookie() 函式建立一個測試 cookie,然後計算 $_COOKIE 陣列變數。

<?php
setcookie("test_cookie", "test", time() + 3600, '/');
?>
<html>
<body>

<?php
if(count($_COOKIE) > 0) {
    echo "Cookie 已啟用。";
} else {
    echo "Cookie 已停用。";
}
?>

</body>
</html>
自己動手試一試 »

❮ PHP 網路參考
×

聯絡銷售

如果您想將 W3Schools 服務用於教育機構、團隊或企業,請傳送電子郵件給我們
sales@w3schools.com

報告錯誤

如果您想報告錯誤,或想提出建議,請傳送電子郵件給我們
help@w3schools.com

W3Schools 經過最佳化,旨在方便學習和培訓。示例可能經過簡化,以提高閱讀和學習體驗。教程、參考資料和示例會不斷審查,以避免錯誤,但我們無法保證所有內容的完全正確性。使用 W3Schools 即表示您已閱讀並接受我們的使用條款Cookie 和隱私政策

版權所有 1999-2024 Refsnes Data。保留所有權利。W3Schools 由 W3.CSS 提供支援