Cookie是客戶端技術,服務器把每個用戶的數據以cookie的形式寫給用戶各自的瀏覽器。當用戶使用瀏覽器再去訪問服務器中的web資源時,就會帶着各自的數據去。這樣,web資源處理的就是用戶各自的數據了。
cookie初步介紹:
cookie是服務器在客戶端保存用戶的信息,數據量並不大,服務端在需要的時候可以從客戶端讀取,保存在客戶端的瀏覽器緩存目錄下。
語法:setcookie(name,val,expire)
cookie不能保存對象,只能保存字符串。
1.創建cookie信息
<?php
header("Content-type:text/html;charset=utf-8");
//演示如何創建cookie信息
//把用戶名和密碼保存到客戶端的cookie
//第一個參數表示cookie的一個key,第二個參數表示val,第三個參數表示cookie值在客戶端保存的時間。
setcookie("name","Tom",time()+7200);//當前時間+要保存的時間
setcookie("password","123456",time()+7200);//可以保存多個鍵值對
echo "sucess";
?>
2.獲取cookie信息
<?php
//在保存的時間內,獲取cookies全部信息
echo "<pre>";
print_r($_COOKIE);
echo "</pre>";
//獲取指定的key對應的值
$name=$_COOKIE['name'];
echo $name;
?>
cookie使用明文方式保存,比較危險。
cookie每一對鍵值的生命週期是可以不一樣的。
3.更新cookie信息
實際上就是重新設置 setCookie();
<?php
//更新
setcookie("name","Sabrina",time()+30);
echo "把鍵name的值更新了";
?>
之前的name的值Tom變爲Sabrina。
4.刪除cookie信息
<?php
//指定刪除某一個鍵值對
//如果要刪除某個key,只需要把time()-秒數(多少秒都可以)
setcookie("name","",time()-10);
echo "指定刪除成功!";
//如何刪除所有的cookie
foreach($_COOKIE as $key=>$val){
setcookie($key,"",time()-10);
}//遍歷刪除
echo "全部刪除成功!"
?>
若全部刪除,則cookie文件也被刪除。
5.例子:登錄信息
<?php
header("Content-type:text/html;charset=utf-8");
//首先看看cookie有沒有上次登錄信息
if(!empty($_COOKIE['lastVisit'])){
echo "上次登錄時間是".$_COOKIE['lastVisit'];
//更新時間
setcookie("lastVisit",date("Y-m-d H:i:s"),time()+24*3600*7);
}
else{
//說明用戶是第一次登錄
echo "歡迎您登錄!";
setcookie("lastVisit",date("Y-m-d H:i:s"),time()+24*3600*7);
}
?>