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

PHP中Cookies指南

編輯:關於PHP編程

綜述

  Cookie是在HTTP協議下,服務器或腳本可以維護客戶工作站上信息的一種方式。Cookie是由Web服務器保存在用戶浏覽器上的小文件,它可以包含有關用戶的信息(如身份識別號碼、密碼、用戶在Web站點購物的方式或用戶訪問該站點的次數)。無論何時用戶鏈接到服務器,Web站點都可以訪問Cookie信息。

  怎樣設置cookies?

  在PHP中可以使用setcookie函數設置一個cookie。cookie是 HTTP標頭的一部分, 因此設置cookie功能必須在任何內容送到浏覽器之前。這種限制與header()函數一樣。任何從客戶端傳來的cookie將自動地轉化成一個PHP變量。PHP取得信息頭並分析, 提取cookie名並變成變量。因此,假如設置cookie如setcookie("mycookie","Cookies")php將自動產生一個名為$mycookie,值為"Cookies"的變量。

  我們來看一下setcookie函數語法:


  init setcookie(string CookieName,string CookieValue,int CookieExpireTime,path,domain,int secure);

  參數說明:

  PATH:表示web服務器上的目錄,默認為被調用頁面所在目錄

  DOMAIN:cookie可以使用的域名,默認為被調用頁面的域名。這個域名必須包含兩個".",所以假如你指定你的頂級域名,你必須用".mydomain.com"

  SECURE:假如設為"1",表示cookie只能被用戶的浏覽器認為是安全的服務器所記住.

cookies使用舉例

  假設我們有這樣一個需要注冊的站點,它自動識別用戶的身份並進行相關的操作:假如是已經注冊的用戶,發送給他信息;假如不是已經注冊的用戶,則顯示一個注冊頁面的鏈接。

  按照上面的要求,我們先創建數據庫用來保存注冊用戶的信息:名字(first name),姓(last name),Email地址(email address),計數器(visit counter)。

  先按下面步驟建表:


mysql> create database users;
    Query OK, 1 row affected (0.06 sec)
    mysql> use users;
    Database changed
    mysql> create table info (FirstName varchar(20), LastName varchar(40), email varchar(40), count varchar(3));
    Query OK, 0 rows affected (0.05 sec)
  然後建一個php頁面對照數據庫檢查cookies。

  由於php能轉換可識別的cookie為相應的變量,所以我們能檢查一個名為"myCookies" 的變量:


<? if (isset($myCookies)) { // 假如Cookie已經存在
    ……
    } else { //假如Cookie不存在
    ……
    }
    ?>

  當cookie存在時,我們執行下面步驟:

  首先取得cookie值,用explode函數分析成不同的變量,增加計數器,並設一個新cookie:


$info = explode("&", $myCookies);
    ……
    $count ;
    $CookieString=$FirstName.'&'.$LastName.'&'.$email.'&'.$count;
    SetCookie ("myCookies",$CookieString, time() 3600); //設置cookie

  接著用html語句輸出用戶信息。

  最後,用新的計數器值更新數據庫。

  假如這個cookie不存在,我們顯示一個注冊頁(register.php)的鏈接。

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