php中的cookie用法

來源:互聯網
上載者:User

 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 "請登陸";

}

?>

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.