程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> php中的cookie用法

php中的cookie用法

編輯:關於PHP編程

     cookie和session都可以暫時保存在多個頁面中使用的變量,但是它們有本質的差別。

    cookie存放在客戶端浏覽器中,session保存在服務器上。它們之間的聯系是session ID一般保存在cookie中。

    cookie工作原理

    當客戶訪問某個網站時,在PHP中可以使用setcookie函數生成一個cookie,系統經處理把這個cookie發送到客戶端並保存在c:Documents and Settings用戶名Cookies

    目錄下。cookie是HTTP標頭的一部分,因此setcookie函數必須在任何內容送到浏覽器之前調用。這種限制與header()函數一樣。當客戶再次訪問該網站時,浏覽器會

    自動把c:Documents and Settings用戶名Cookies目錄下與該站點對應的cookie發送到服務器,服務器則把從客戶端傳來的cookie將自動地轉化成一個PHP變量。

    通過$_COOKIE['xxx']讀取客戶端發來的cookie。

    創建 cookie

    通過 setcookie() 函數來創建一個 cookie ,成功返回 TRUE ,否則返回 FALSE 。

    語法:

    bool setcookie( string name [, string value [, int expire [, string path [, string domain ]]]] )

    參數說明:

    name     cookie 名稱

    value     可選,cookie 值

    expire     可選,過期時間,時間戳格式

    path     可選,服務器端有效路徑,/ 表示整個域名有效,默認為當前設置 cookie 時頁面的路徑

    domain     可選,該 cookie 有效的域名

    <?php

    setcookie("username", "nostop", time()+3600); //設置了一個名稱為 username 的cookie,其值為 xiaoli ,並在1小時候後過期。如果時間也被省略,cookie 將會在會話結束後(一般是浏覽器關閉)失效。

    ?>

    cookie 會以一定格式被存儲在用戶計算機特定位置。

    <?php

    setcookie("username", "nostop", time()+3600, "/", ".example.com"); //在example.com 域名的 / 路徑下該 cookie 都有效(即全站有效)。

    ?>

    讀取 cookie

    PHP 內置了 $_COOKIE 變量以訪問設置的 cookie 值。

    例子:

    <?php

    echo $_COOKIE["username"];    //nostop

    ?>

    銷毀 cookie

    可以通過設置 cookie 過期時間為以前的時間點來銷毀一個 cookie :

    <?php

    setcookie("username", "", time()-3600);

    ?>

    cookie注意事項

    1、SetCookie()之前不能有任何html輸出,就是空格,空白行都不行。

    2、SetCookie()後,你在當前頁調用echo $_COOKIE["name"]不會有輸出。必須刷新或到下一個頁面在過期之前才可以看到Cookie值。

    3、由於 cookie 信息存儲於用戶的計算機中,那麼就有可能偽造或修改 cookie 從而造成 cookie 欺騙,一般可以對 cookie 的值進行加密來預防欺騙。讀取 cookie 的時候,對 cookie 解密即可。

    4、Cookie是保存在客戶端的,用戶禁用了Cookie,你的Cookie自然也就沒作用啦!

    <?php

    setcookie('username','nostop',time()+3600);    //創建cookie

    if(isset($_COOKIE["username"])){    //使用isset()函數檢測cookie變量是否已經被設置

        echo "您好!".$_COOKIE["username"];    //您好!nostop     讀取cookie 

    }else{

        echo "請登陸";

    }

    ?>

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