Cookie

Cookie

因爲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);  //將時間設爲超時網站

 

實驗1

新建文件下,在其下面建立第一個.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));
}

 

 

 

注:實驗前最好清空一下瀏覽器瀏覽記錄

 

 

實驗2

此實驗說明同一個用戶使用不一樣的瀏覽器訪問同一個網站時,設置的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));
}
相關文章
相關標籤/搜索