一、cookie的基本用法
在 PHP 中,cookie 是一種用于在客戶端(瀏覽器)和服務(wù)器之間存儲數(shù)據(jù)的一種機制。 它們通常用于跟蹤和識別用戶,并存儲用戶的偏好設(shè)置。下面是一些常見的用法和函數(shù)來操作 cookie。
1.設(shè)置 Cookie:
可以使用 setcookie()
函數(shù)來設(shè)置 cookie。該函數(shù)有多個參數(shù),其中最重要的是名稱和值。下面是一個設(shè)置 cookie 的例子:
setcookie("username", "JohnDoe", time() + 3600, "/");
上面的代碼將創(chuàng)建一個名為 “username” 的 cookie,值為 “JohnDoe”。time() + 3600
參數(shù)將 cookie 的過期時間設(shè)置為當(dāng)前時間的一小時后。最后一個參數(shù) “/” 是可選的,用于指定 cookie 的可訪問路徑。
2.獲取 Cookie:
使用 $_COOKIE
超全局變量來訪問 cookie。這個變量是一個關(guān)聯(lián)數(shù)組,包含了當(dāng)前請求中發(fā)送的所有 cookie。
下面是一個使用 $_COOKIE
訪問 cookie 的例子:
if (isset($_COOKIE["username"])) {
$username = $_COOKIE["username"];
echo "Welcome back, " . $username;
} else {
echo "Welcome, guest!";
}
上面的代碼首先檢查是否存在名為 “username” 的 cookie,如果存在則將其值存儲在 $username
變量中,然后輸出歡迎消息。如果不存在,則輸出默認的歡迎消息。
3.刪除 Cookie:
要刪除 cookie,可以通過將 cookie 的過期時間設(shè)置為一個早于當(dāng)前時間的時間戳來實現(xiàn)。例如:
setcookie("username", "", time() - 3600, "/");
上面的代碼將 “username” cookie 的過期時間設(shè)置為一個小時前,這將導(dǎo)致瀏覽器立即刪除該 cookie。請注意,刪除 cookie 需要確保在發(fā)送任何輸出之前執(zhí)行。
這是一些基本的 cookie 用法。還有其他一些參數(shù)和選項可以用來設(shè)置和操作 cookie,你可以查閱 PHP 官方文檔來獲取更詳細的信息。
二、實戰(zhàn)開發(fā)應(yīng)用
在購物網(wǎng)站,最常見的做法:猜你喜歡,即在未正常登錄的時候,瀏覽很多商品時,系統(tǒng)會自動記錄你的瀏覽歷史,并在猜你喜歡等展示位置顯示你最近的足跡。這個就是使用到cookie的一個用發(fā)。那么,如何使用呢?
- 瀏覽商品,記錄商品的id,設(shè)置為cookie, v a l u e = ′ 1 ′ , 比如賦值給 s e t c o o k i e ( ′ h i s t o r y ′ , value='1',比如賦值給setcookie('history', value=′1′,比如賦值給setcookie(′history′,value,‘’,‘’);
- 瀏覽多個商品,將多個商品的id,設(shè)置為cookie, v a l u e = ′ 1 , 2 , 3 ′ , 統(tǒng)一賦值 s e t c o o k i e ( ′ h i s t o r y ′ , value='1,2,3',統(tǒng)一賦值setcookie('history', value=′1,2,3′,統(tǒng)一賦值setcookie(′history′,value,‘’,‘’);
- 設(shè)置history的長度,比如記錄30個,超過30個的商品記錄,予以刪除,unset($history[0]);;
- 讀取設(shè)置的$_COOKIE[‘history’],將記錄的字符串轉(zhuǎn)為數(shù)組,遍歷商品ID,讀取商品信息;
1.設(shè)置cookie封裝函數(shù)
COOKIE的基本設(shè)置方式,便于快速調(diào)用和修改,封裝為函數(shù),統(tǒng)一調(diào)用。文章來源:http://www.zghlxwxcb.cn/news/detail-555651.html
//設(shè)置cookie
function set_cookie($name, $value = '', $expire = 0, $path = "/", $domain = null)
{
$cookiedomain = ''; //COOKIE作用域
$domain = $domain == null ? $cookiedomain: $domain;
setcookie($name, $value, $expire, $path, $domain);
}
2.商品頁,讀取商品ID,并設(shè)置cookie
//記錄最近瀏覽
$p = $_GET['id'];
$history_tmp = isset($_COOKIE['history']) ? $_COOKIE['history'] : '';
$history = array_filter(explode(',', $history_tmp));
if (in_array($p, $history) == false) {
if (count($history) == 30)
{
unset($history[0]);
}
array_push($history, $p);
$history_tmp = implode(',', $history);
set_cookie('his', $history_tmp, time() + 15552000);
}
3.獲取最近瀏覽商品
function get_history($num)
{
$history = isset($_COOKIE['history']) ? $_COOKIE['history'] : '';
$his = array_filter(explode(',', $history));
$count = count($his);
$ids = array();
$row = array();
$num = $count > $num ? $num : $count;
$n = $count - 1;
for ($i = 0; $i < $num; $i++) {
$id = intval(ucode($his[$n - $i]));
if ($id > 0) {
$ids[] = $id;
}
}
if (count($ids) > 0) {
$row = "";//讀取數(shù)據(jù)表
}
return $row;
}
@漏刻有時文章來源地址http://www.zghlxwxcb.cn/news/detail-555651.html
到了這里,關(guān)于php開發(fā)實戰(zhàn)分析(2):cookie的動態(tài)使用(設(shè)置、獲取、刪除、猜你喜歡原理、購物車調(diào)用)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!