php使用指南-cookies部分
在這課教程我們將學習怎樣利用 PHP 處理cookies,我將試著使事情盡可能簡單地去解釋cookies的一些實際應用。
什麼是cookies及作用?
cookies是由web伺服器產生的並且存在客戶端的一些資訊。它嵌在html資訊中,由伺服器端指定,在客戶端及伺服器端間傳遞訊息
。它通常用來:使用者網頁個人化,計數器,儲存被瀏覽網站的資訊等。
cookies和php
在 PHP中用cookies是相當容易的。可以使用setcookie函數設定一個cookie。 cookie是 HTTP標頭的一部分, 因此設定cookie功能必須在任何內容送到瀏覽器之前。這種限制與header()函數一樣。任何從客戶端傳來的cookie都會自動地轉換成一個PHP變數。 PHP取得資訊頭並分析, 提取cookie名並變成變數。因此,如果你設定cookie如setcookie("mycookie","wang");php將自動產生一個名為$mycookie,值為"wang"的變數.
先讓我們複習一下setcookie函數語法:
setcookie(string CookieName, string CookieValue, int CookieExpireTime, path, domain, int secure);
PATH:表示web伺服器上的目錄,預設為被呼叫頁面所在目錄
DOMAIN:cookie可以使用的域名,預設為被調用頁面的域名。這個域名必須包含兩個".",所以如果你指定你的頂級域名,你必須用".mydomain.com"
SECURE:如果設為"1",表示cookie只能被使用者的瀏覽器認為是安全的伺服器所記住
應用:
對於一個需要註冊的站點,將自動識別用戶的身份,並發送給它訊息,如果是陌生人,將告訴他請先註冊。我們按下面給出的資訊建立一個小數 據庫:名字(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.
########################index.php###################################### ###########
if (isset($Example)) { //Begin instructions for existing Cookie
$info = explode("&", $Example);
$FirstName=$info[0];
$LastName=$info[1];
$email=$info[2];
$count=$info[3];
$count++;
$CookieString=$FirstName.'&'.$LastName.'&'.$email.'&'.$count;
SetCookie ("Example",$CookieString, time()+3600); //設一新的cookie
echo"
Hello $FirstName $LastName, this is your visit number: $count
Your email address is: $email
Hello $FirstName $LastName, this is your visit number: $count
Your email address is: $email
使用者 $FirstName $LastName 已存在。使用現有的
資訊.
回首頁";
} 其他 {
$計數 = '1';
$query =「插入資訊值
('$FirstName','$LastName','$email','$count')";
$結果 = mysql_db_query("使用者", $query);
$CookieString=$FirstName.'&'.$LastName.'&'.$email.'&'.$count;
SetCookie("範例",$CookieString, time()+3600);
echo "感謝您註冊。
";
}
} else { echo "抱歉,缺少一些資訊。請返回並添加全部
資訊”;}
? >
首先檢查所有的資訊是否按要求填寫,如果沒有,返回重新輸入
if ($FirstName 和 $LastName 和 $email)
{
...
} else { echo "抱歉,缺少一些資訊。請返回並添加全部
資訊”;}
? >
如果所有資訊都填寫好,將執行下面:
mysql_connect() 或 die (「連接資料庫時出現問題」);
$query="select * from info where FirstName='$FirstName' 和
LastName='$LastName' 和 email='$email'";
$結果 = mysql_db_query("用戶", $query);
$r=mysql_fetch_array($結果);
$count=$r["計數"];
if (isset($count)) {
$計數++;
$CookieString=$FirstName.'&'.$LastName.'&'.$email.'&'.$count;
SetCookie("範例",$CookieString, time()+3600);
echo "
使用者 $FirstName $LastName 已存在。使用現有的
資訊.
回首頁";
} 其他 {
$計數 = '1'; //新訪客 - 將計數器設為 1。
$query =「插入資訊值
('$FirstName','$LastName','$email','$count')";
$結果 = mysql_db_query("用戶", $query);
$CookieString=$FirstName.'&'.$LastName.'&'.$email.'&'.$count;
SetCookie("範例",$CookieString, time()+3600);
echo "感謝您註冊。
";
也許程式做了幾件工作:它檢查資料庫中是否有這樣一個用戶(如果沒有,則該cookie已被刪除),如果有,它指定舊的信息,並用當前的信息構建一個新的cookie ,如果同一個用戶沒有資料庫登錄,新建一個資料庫登錄,並且建立一個新的cookie。
首先,我們從資料庫取回使用者登入的詳細資料
mysql_connect() 或 die (「連接資料庫時出現問題」);
$query="select * from info where FirstName='$FirstName' 和
LastName='$LastName' 和 email='$email'";
$結果 = mysql_db_query("使用者", $query);
$r=mysql_fetch_array($結果);
$count=$r["計數"];
現在檢查該使用者是否有成員,利用isset()函數
if (isset($count)) {
...
} 其他 {
...
}
增加投票並建立一個 cookie
$計數++; //增加計數器
$CookieString=$FirstName.'&'.$LastName.'&'.$email.'&'.$count;
SetCookie("範例",$CookieString, time()+3600);
echo "
使用者 $FirstName $LastName 已存在。使用現有資訊。
";返回首頁";
如果沒有一個使用者投票,在mysql中加一筆記錄,並設定一個cookie
注意:在任何時候,setcookie 將管道中的任何資料傳輸到瀏覽器之前,否則會得到錯誤訊息
以上就介紹了PHP使用指南-cookies部分,包含了面向的內容,希望對PHP教學有興趣的朋友有幫助。