程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> php setcookie(name, value, expires, path, domain, secure) 參數詳解

php setcookie(name, value, expires, path, domain, secure) 參數詳解

編輯:關於PHP編程

    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()+60*60*24*30 將設定 cookie 30 天後失效。

    如果未設定,cookie 將會在會話結束後(一般是浏覽器關閉)失效。

    path Cookie 在服務器端的有效路徑。

    如果該參數設為 '/' 的話,cookie 就在整個 domain 內有效,

    如果設為 '/foo/',cookie 就只在 domain 下的 /foo/ 目錄及其子目錄內有效,例如 /foo/bar/

    默認值為設定 cookie 的當前目錄。

    domain 該 cookie 有效的域名。

    要使 cookie 能在如 example.com 域名下的所有子域都有效的話,該參數應該設為 '.example.com'

    雖然 . 並不必須的,但加上它會兼容更多的浏覽器。

    如果該參數設為www.example.com 的話,就只在 www 子域內有效。

    細節見Cookie 規范中的 tail matching。

    secure

    指明 cookie 是否僅通過安全的 HTTPS 連接傳送。

    當設成 TRUE 時,cookie 僅在安全的連接中被設置。默認值為FALSE

    01


    例子 1. setcookie() 發送例子

    復制代碼 代碼如下:
    $value = 'something from somewhere';
    setcookie("TestCookie", $value);
    setcookie("TestCookie", $value,time()+3600); /* expire in 1 hour */
    setcookie("TestCookie", $value,time()+3600, "/~rasmus/", ".utoronto.ca", 1);


    注意 cookie 中值的部分在發送的時候會被自動用 urlencode 編碼並在接收到的時候被自動解碼並把值賦給與自己同名的 cookie 變量。如果不想這樣並且在使用 PHP 5 的話,可以用 setrawcookie() 來代替。下面這個簡單的例子可以得到剛才所設定的 cookie 的值:

    復制代碼 代碼如下:
    <?php
    // 輸出單獨的 cookie
    echo $_COOKIE["TestCookie"];
    echo $HTTP_COOKIE_VARS["TestCookie"];
    // 另一個調試的方法就是輸出所有的 cookie
    print_r($_COOKIE);
    ?>


    要刪除 cookie 需要確保它的失效期是在過去,才能觸發浏覽器的刪除機制。下面的例子說明了如何刪除剛才設置的 cookie:
    例子 2. setcookie() 刪除例子

    復制代碼 代碼如下:
    // 將過期時間設為一小時前
    setcookie("TestCookie", "", time() - 3600);
    setcookie("TestCookie", "", time() - 3600, "/~rasmus/", ".utoronto.ca", 1);


    也可以通過在 cookie 名稱中使用數組符號來設定數組 cookie,可以設定多個 cookie 作為數組單元,在腳本提取 cookie 時所有的值都放在一個數組種:
    例子 3. 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的域名設置。

    1. 上一頁:
    2. 下一頁:
    Copyright © 程式師世界 All Rights Reserved