close

HTPP 通訊協定的Stateless特性

  HTTP通訊協定中,並沒有設計保存連線狀態的能力 (Stateless Connection),所以不管上一頁還是下一頁之類的動作,對Server來說,每一次的網頁都是重新建立連線 (不論是否同一頁),所以每個HTTP連線之間都是獨立的,互不相干,所以囉,User輸入的資料,或是網頁的變數值,都無法被保留下來 (無法給下一個網頁使用(PS : 除非使用POST GET 傳給下一頁 ))

 

  這一篇主要是介紹COOKIE的,什麼是COOKIE ?

Cookie 是一種能夠將狀態記錄在用戶端的技術。

 

 

建立 & 修改 :

我們使用 setcookie() 來操作。

 

語法 :

      Setcookie (name , value , expire) ;

Name :  variable name

Value :  variable of value

Expire:  到期的時間,設定該cookie何時該到期,到期之後,該cookie會被刪除而消失,如果沒有設置到期時間,cookie會在browser close的時候,立刻刪除。

 

 

讀取與刪除Cookie

讀取方式

程式要讀取cookie時,只要使用內建變數 $_COOKIE[] 就可以了

刪除方式 :

      將到期時間設為過去時間即可。

      Setcookie(“count”,1,time()-10);

 

Sample :

 

 

<?php

      $count = 1 ;

      if (!isset ($_COOKIE['counter']))

      {

             //設定cookie count 變數值為 1, 30 天之後到期

             setcookie("counter",1,time()+30*24*3600);

      }

      else

      {

             //把讀取到的cookie 內容+1 , 成為本次上站次數

             $count = $_COOKIE['counter']+1 ;

             setcookie("counter" , $count , time()+30*24*3600);

      }

      echo "這是您第$count 次進入本站";

?>

 

 

存取範圍:

      建立cookie後,在預設情況下,只有同一個網站、同一個目錄,與子目錄下的網頁,才可以存取這個cookie
 

 

 

Cookie 用陣列的方式來儲存

      <?php

      setcookie("info[1]", 'tony',time()+30*60);

      setcookie("info[2]", 'Eric',time()+30*60);

     

      echo $_COOKIE['info'][1];

      echo '<br>';

      echo $_COOKIE['info'][2];

      echo '<br>';

?>

 

 

 

arrow
arrow
    文章標籤
    PHP
    全站熱搜

    Eric 發表在 痞客邦 留言(0) 人氣()