用php实现类似淘宝,拍拍,易趣的最近浏览商品的功能模型代码,该如何处理
用php实现类似淘宝,拍拍,易趣的最近浏览商品的功能模型代码
最近在做一个项目,要用到类似淘宝,拍拍,易趣的最近浏览商品的功能,在网络上遍寻不及,遂找出一ASP代码用PHP自行改写,得以下片段,先发上来和大家共享。此代码片段只包含cookie写入部分,读出处理的部分大家可以自行编写。最先跟帖提出建议的给以加分。
/*
RecentlyGoods File
Urchin Studio FoxCMS
Version: 1.1.6
Author: luckyfox ([email protected])
Copyright: Urchin Studio (www.itocean.net)
Last Modified: 2008-9-3
*/
//TempNum 显示临时记录数
$TempNum=5;
//setcookie("RecentlyGoods", "12,31,90,39");
//RecentlyGoods 最近商品RecentlyGoods临时变量
if (isset($_COOKIE['RecentlyGoods']))
{
$RecentlyGoods=$_COOKIE['RecentlyGoods'];
$RecentlyGoodsArray=explode(",", $RecentlyGoods);
$RecentlyGoodsNum=count($RecentlyGoodsArray); //RecentlyGoodsNum 当前存储的变量个数
}
if($_GET['Id']!="")
{
$Id=$_GET['Id']; //ID 为得到请求的字符
//如果存在了,则将之前的删除,用最新的在尾部追加
if (strstr($RecentlyGoods, $Id))
{
//echo "已经存在,则不写入COOKIES
";
}
else
{
if($RecentlyGoodsNum {
if($RecentlyGoods=="")
{
setcookie("RecentlyGoods",$Id,time()+3600);
}
else
{
$RecentlyGoodsNew=$RecentlyGoods.",".$Id;
setcookie("RecentlyGoods", $RecentlyGoodsNew,time()+3600);
}
}
else //如果大于了指定的大小后,将第一个给删去,在尾部再加入最新的记录。
{
$pos=strpos($RecentlyGoods,",")+1; //第一个参数的起始位置
$FirstString=substr($RecentlyGoods,0,$pos); //取出第一个参数
$RecentlyGoods=str_replace($FirstString,"",$RecentlyGoods); //将第一个参数删除
$RecentlyGoodsNew=$RecentlyGoods.",".$Id; //在尾部加入最新的记录
setcookie("RecentlyGoods", $RecentlyGoodsNew,time()+3600);
}
}
}
?>
------解决方案--------------------
收藏。谢谢
------解决方案--------------------
学习..收藏。
------解决方案--------------------
up
------解决方案--------------------
顶
------解决方案--------------------
up
------解决方案--------------------
jf
------解决方案--------------------
看看
------解决方案--------------------
支持.
------解决方案--------------------
if (strstr($RecentlyGoods, $Id))
{
//echo "已经存在,则不写入COOKIES
";
}
如果我看了100号,100保存了,然后我再看10号,那就不能保存了
------解决方案--------------------
很好,收藏了。。
------解决方案--------------------
学习..收藏。
------解决方案--------------------
对id的处理用字符串查找来处理,这样的方式其实不太合理。
- PHP code
define('MAX_ITEMS', 5);$id = intval($_GET['id']); // 确保id是整数if (isset($_COOKIE['recentlyGoods'])) { // 已有历史数据,追加新数据 $goods = explode(',', $_COOKIE['recentlyGoods']); // 取得id数组 $key = array_search($id, $goods); // 在历史数据中查找当前id if ($key !== false) { unset($goods[$key]); // 找到则删除 } $goods[] = $id; // 追加当前浏览的id} else { // 尚未有历史数据,创建并将当前浏览id加入 $goods = array($id);}// 如果数组中历史数据条目超出限制,则截取最后一段if (count($goods) > MAX_ITEMS) { // 从倒数第MAX_ITEMS条开始提取MAX_ITEMS条记录 $goods = array_slice($goods, 0 - MAX_ITEMS, MAX_ITEMS);}setcookie('recentlyGoods', join(',', $goods), time()+3600);<div class="clear"> </div>

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

熱門話題

setcookie php失效的解決方法:1、開啟對應的PHP檔案;2、查看網域參數是否規範;3、透過全域變數來實現即可,程式碼如「foreach ($_COOKIE["cookie"] as $name => $value) {$name = htmlspecialchars($name);$value = htmlspecialchars($value);echo...」。

php提交表单通过后,弹出的对话框怎样在当前页弹出php提交表单通过后,弹出的对话框怎样在当前页弹出而不是在空白页弹出?想实现这样的效果:而不是空白页弹出:------解决方案--------------------如果你的验证用PHP在后端,那么就用Ajax;仅供参考:HTML code

在網路開發中,Cookie是一種非常常見的技術,它允許網路應用程式在客戶端儲存和存取資料。在PHP編程中,設定Cookie通常使用setcookie函數實作。 setcookie函數的語法如下:boolsetcookie(string$name[,string$value[,int$expire[,string$path[,

PHP中的setcookie()函數是將Cookie設定為客戶端瀏覽器的一種方法。它可以讓網站在下一次訪問時,透過Cookie來識別用戶,並為其提供相應的服務。 setcookie()有幾個參數,其中包括Cookie的名稱、值、過期時間等。當設定過期時間時,可以透過時間戳來指定。但是,有時候我們會看到時間戳被設定為0的情況,這究竟表示什麼意思呢?

使用PHP函數"setcookie"設定cookie在網站開發中,cookie是一種非常常用的技術,它用於在使用者的瀏覽器中儲存少量的數據,以便在不同頁面之間傳遞訊息。 PHP提供了一個名為"setcookie"的函數,用來設定cookie的值和屬性。在本文中,我們將學習如何使用"setcookie"函數來設定cookie。下面是使用"setcook

不用数据库来实现用户的简单的下载,代码如下,但是却不能下载,请高手找下原因,文件路劲什么的没问题。

图片消失如何解决先是图片文件上传$file=$_FILES['userfile']; if(is_uploaded_file($file['tmp_name'])){$query=mysql_query("INSERT INTO gdb_banner(image_src ) VALUES ('images/{$file['name'

图片消失如何解决先是图片文件上传$file=$_FILES['userfile']; if(is_uploaded_file($file['tmp_name'])){$query=mysql_query("INSERT INTO gdb_banner(image_src ) VALUES ('images/{$file['name'
