1
2
3
4
5
6
7
8
9
10
11

Cookie原理及使用

發(fā)布時間:2017-07-20 08:03   發(fā)布人:毛書朋   浏覽次數:7267

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="提交">&nbsp;

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.png

圖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所示的運行效果。

7-2.1.png

輸入的不正确的用戶名和口令

7-2.2.png

輸入正确的用戶名和口令

但當輸入其他用戶名和密碼後(hòu)點“提交”按鈕會出現圖7-3所示的運行結果

7-3.png

圖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.png

圖7-4  將(jiāng)系統設爲禁用cookies時程序7-1action-check.php的運行結果



  • 姜瑞祥 2018-01-07 17:27:38
    cookie 是一種(zhǒng)發(fā)送到客戶浏覽器的文本串句柄,并保存在客戶機硬盤上,可以用來在某個WEB站點會話間持久的保持數據。
  • 甄丹丹 2018-01-09 16:37:23
    Cookie是一種(zhǒng)在本地浏覽器端儲存數據并以此來跟蹤和識别用戶的機制。PHP透明地支持HTTP Cookie。從客戶端發(fā)送的cookie都(dōu)會被PHP 5自動加入$_COOKIE的全局數組。如果希望對(duì)一個Cookie變量設置多個值,則需在cookie的名稱後(hòu)加“["值名稱"]”符号。
  • 李倩文 2018-01-10 12:00:59
    Cookie是一種(zhǒng)在本地浏覽器端儲存數據并以此來跟蹤和識别用戶的機制。PHP透明地支持HTTP Cookie。從客戶端發(fā)送的cookie都(dōu)會被PHP 5自動加入$_COOKIE的全局數組。如果希望對(duì)一個Cookie變量設置多個值,則需在cookie的名稱後(hòu)加“["值名稱"]”符号。