因爲Http協議是無狀態協議,當同一個用戶請求一個頁面後,再請求同一個網站的另外一個頁面時,http協議並不能告訴服務器兩個請求是來自同一個用戶,不能將兩次訪問聯繫到一塊兒。php
Cookie可讓Web服務器將一些網站登陸用戶的資料存放於客戶端的電腦上。例如:當經過驗證,成功登錄網站後,在同一個網站下第一個頁面的PHP腳本,會把這個用戶有關的信息設置到客戶端電腦的Cookie中,當再次訪問同一個網站中的其餘腳本時,會自動攜帶Cookie中的數據一塊兒訪問,服務器中的每一個腳本均可以接受Cookie中的數據,不須要每訪問一個頁面就從新輸入一次登錄者的信息。html
Cookie的創建數組
1. 向用戶端電腦設置Cookie setcookie();瀏覽器
2. 在服務器端讀取Cookie內容 $_COOKIE服務器
3. 將多維數組應用於Cookie中 setcookie(「member[name]」,’liangjie’); setcookie(「member [email]」,’1853881164@qq.com’);cookie
4.刪除Cookie setcookie(「member」,‘ ’,time()-3600); //將時間設爲超時網站
新建文件下,在其下面建立第一個.php文件,創建Cookie。代碼以下:spa
<?php header('Content-type:text/html;charset=utf-8'); /* var_dump(setcookie('name','liangjie',time()+3600)); echo '<br />'; var_dump($_COOKIE); */ //向客戶端電腦設置Cookie,有效時間爲當前時間+3600s var_dump(setcookie("member[name]",'liangjie',time()+3600)); //打印結果,若返回true則設置成功 echo '<br />'; var_dump(setcookie("member[email]",'185@163.com',time()+3600));//打印結果,若返回ture則設置成功 ?>
在同文件夾下面建立第二個.php文件,驗證Cookie。代碼以下:code
<?php header('Content-type:text/html;charset=utf-8'); var_dump($_COOKIE); ?>
在同文件夾下面建立第三個.php文件,刪除Cookie。代碼以下:htm
<?php //遍歷刪除 foreach($_COOKIE['member'] as $key => $val){ var_dump(setcookie("member[{$key}]",'',time()-3600)); }
注:實驗前最好清空一下瀏覽器瀏覽記錄
此實驗說明同一個用戶使用不一樣的瀏覽器訪問同一個網站時,設置的Cookie值不一樣
新建文件下,在其下面建立第一個.php文件,創建Cookie。代碼以下:
<?php header('Content-type:text/html;charset=utf-8'); //隨機產生一個ID,並在此ID前隨機產生一個數做爲前綴(避免ID重複)交給Cookie $id = uniqid(rand(1000,9999).'_'); var_dump(setcookie('id',$id,time()+3600)); //打印結果,返回值爲ture,設置成功 ?>
新建文件下,在其下面建立第二個.php文件,驗證Cookie。代碼以下:
<?php header('Content-type:text/html;charset=utf-8'); var_dump($_COOKIE); ?>
新建文件下,在其下面建立第三個.php文件,刪除Cookie。代碼以下:
<?php //遍歷刪除 foreach($_COOKIE['member'] as $key => $val){ var_dump(setcookie("member[{$key}]",'',time()-3600)); }