Cookie
由于Http協議是無狀態協議,當同一個用戶請求一個頁面后,再請求同一個網站的另一個頁面時,http協議并不能告訴服務器兩個請求是來自同一個用戶,不能將兩次訪問聯系到一起,
Cookie可以讓Web服務器將一些網站登錄用戶的資料存放于客戶端的電腦上,例如:當通過驗證,成功登陸網站后,在同一個網站下第一個頁面的PHP腳本,會把這個用戶有關的資訊設定到客戶端電腦的Cookie中,當再次訪問同一個網站中的其他腳本時,會自動攜帶Cookie中的資料一起訪問,服務器中的每個腳本都可以接受Cookie中的資料,不需要每訪問一個頁面就重新輸入一次登陸者的資訊,
Cookie的建立
1. 向用戶端電腦設定Cookie setcookie();
2. 在服務器端讀取Cookie內容 $_COOKIE
3. 將多維陣列應用于Cookie中 setcookie(“member[name]”,’liangjie’); setcookie(“member [email]”,’[email protected]’);
4.洗掉Cookie setcookie(“member”,‘ ’,time()-3600); //將時間設為超時
實驗1
新建檔案下,在其下面創建第一個.php檔案,建立Cookie,代碼如下:
<?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]",'[email protected]',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));
}
![]()

注:實驗前最好清空一下瀏覽器瀏覽記錄
實驗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));
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/83272.html
標籤:PHP
上一篇:檔案下載
下一篇:Session
