Cookie原理及使用
關聯課件:7子項目七 - Cookie原理及使用(點擊在線預覽)
7.3.1.1 Cookie機制的原理及使用
Cookie是一種(zhǒng)在本地浏覽器端儲存數據并以此來跟蹤和識别用戶的機制。PHP透明地支持HTTP Cookie。從客戶端發(fā)送的cookie都(dōu)會被PHP 5自動加入$_COOKIE的全局數組。如果希望對(duì)一個Cookie變量設置多個值,則需在cookie的名稱後(hòu)加“["值名稱"]”符号。
下面(miàn)來看一下Cookie的具體應用實例。
先來建立一個用戶登錄的表單。
1: <!--文件7-1.php:COOKIE實現用戶登錄的表單-->
2: <HTML>
3: <HEAD>
4: <TITLE>COOKIE實現用戶登錄的表單</TITLE>
5: </HEAD>
6: <BODY>
7: <form name="form1" method="post" action="7-1action.php">
8: <table width="280" height="96" border="0" cellpadding=
"0" cells: pacing="1" bgcolor="#999999">
9: <tr>
10: <td colspan="2" bgcolor="#FFFFFF">用戶登錄</td>
11: </tr>
12: <tr>
13: <td bgcolor="#FFFFFF">用戶名:</td>
14: <td bgcolor="#FFFFFF">
15: <input type="text" name="user_name" size="12">
16: </td>
17: </tr>
18: <tr>
19: <td bgcolor="#FFFFFF">口令:</td>
20: <td bgcolor="#FFFFFF">
21: <input type=" password " name="user_pw" size="12"></td>
22: </tr>
23: <tr>
24: <td colspan="2" bgcolor="#FFFFFF">
25: <input type="submit" name="Submit" value="提交">
26: <input type="reset" name="Submit2" value="重置"></td>
27: </tr>
28: </table>
29: </form>
30: </BODY>
31: </HTML>
程序7-1.php的運行結果如圖7-1所示。
圖7-1 程序7-1.php的運行結果
再建立一個名爲“7-1action.php”的文件,在“7-1.php”文件中的第7行已經(jīng)規定圖7-3所示的用戶填寫的表單的内容要提交到“7-1action.php”文件中。也就是要在這(zhè)個文件中利用Cookie模拟用戶的登錄是否成(chéng)功。“7-1action.php”文件的詳細代碼如下。
1: <?php
2: //文件7-1action.php:COOKIE實現用戶登錄
3: setcookie("user_name", $_POST[user_name]);
4: setcookie("user_pw", $_POST[user_pw]);
5: ?>
6: <HTML>
7: <HEAD>
8: <TITLE>COOKIE實現用戶登錄</TITLE>
9: </HEAD>
10: <BODY>
11: <?php
12: if ($_POST["user_name"]=="php" && $_POST["user_pw"]=="php5"){
13: echo "恭喜您,用戶名和口令正确,登錄成(chéng)功!";
14: echo "<a href=7-1action-check.php>單擊檢測Cookie的值是否可以頁
間傳遞</a>" ;
15: }else{
16: echo "您輸入的用戶名和口令不正确,請<a href=7-1.php>返回</a>
請嘗試:php和php5";
17: }
18: echo "<br>您輸入的用戶名爲:".$_COOKIE["user_name"];
19: echo "<br>口令爲:".$_COOKIE["user_pw"];
20: ?>
21: </BODY>
22: </HTML>
“7-1action.php”程序中第8行和第9行是接受“7-1.php”程序中第15行和第21行表單傳遞的變量值,并注冊爲Cookie,此時“$_COOKIE["user_name"]”和“$_COOKIE ["user_pw"]”均爲全局變量,隻要是由程序“7-1action.php”聲稱的跳轉過(guò)去的葉子這(zhè)兩(liǎng)個變量的值均可用。
在圖7-1中輸入用戶名“php”和密碼“php5”後(hòu)單擊“提交”按鈕會出現如圖7-2所示的運行效果。
輸入的不正确的用戶名和口令
輸入正确的用戶名和口令
但當輸入其他用戶名和密碼後(hòu)點“提交”按鈕會出現圖7-3所示的運行結果
圖7-3 程序7-1action.php的運行結果
下面(miàn)來檢測一下在系統設爲禁用的時,Cookie是否可以在不同的頁間傳遞。建立一個名爲“7-1action-check.php”的文件。在文件“7-1action.php”的第18行,我們需單擊一個鏈接方可進(jìn)行測試,而鏈接的目标文件爲“7-1action.php-check.php”,文件“7-1action.php- check.php”的詳細代碼如下。
1: <!--文件7-1action-check.php:COOKIE頁間傳遞-->
2: <HTML>
3: <HEAD>
4: <TITLE>COOKIE頁間傳遞</TITLE>
5: </HEAD>
6: <BODY>
7: <?php
8: if ($_COOKIE["user_name"]!="" && $_COOKIE["user_pw"]!=""){
9: echo "Cookie頁間傳遞成(chéng)功!<br>";
10: echo "您輸入的用戶名爲:".$_COOKIE["user_name"];
11: echo "<br>口令爲:".$_COOKIE["user_pw"];
12: }else{
13: echo "Cookie頁間傳遞失敗,其值爲空!<br>";
14: }
15: ?>
16: </BODY>
17: </HTML>
在IE的“工具”菜單中有“Internet選項”菜單項,打開(kāi)後(hòu)再選“安全”→“自定義級别”,將(jiāng)安全設置中的“允許使用每個對(duì)話cookies”設爲禁用時,其運行結果如圖7-4所示。
圖7-4 將(jiāng)系統設爲禁用cookies時程序7-1action-check.php的運行結果
cookie 是一種(zhǒng)發(fā)送到客戶浏覽器的文本串句柄,并保存在客戶機硬盤上,可以用來在某個WEB站點會話間持久的保持數據。
Cookie是一種(zhǒng)在本地浏覽器端儲存數據并以此來跟蹤和識别用戶的機制。PHP透明地支持HTTP Cookie。從客戶端發(fā)送的cookie都(dōu)會被PHP 5自動加入$_COOKIE的全局數組。如果希望對(duì)一個Cookie變量設置多個值,則需在cookie的名稱後(hòu)加“["值名稱"]”符号。
Cookie是一種(zhǒng)在本地浏覽器端儲存數據并以此來跟蹤和識别用戶的機制。PHP透明地支持HTTP Cookie。從客戶端發(fā)送的cookie都(dōu)會被PHP 5自動加入$_COOKIE的全局數組。如果希望對(duì)一個Cookie變量設置多個值,則需在cookie的名稱後(hòu)加“["值名稱"]”符号。