首页 > php教程 > php手册 > 使用cookie记录商品浏览记录

使用cookie记录商品浏览记录

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
发布: 2016-06-06 19:32:02
原创
959 人浏览过

使用cookie记录商品浏览记录。最后一个参数可以传递多个参数值,以特殊字符分割。 例如:$ids=RecentViews($num=5,$day=2,($id.,.$cid.,.$mid)); 无 /*author: limo*update:2013-10-17**浏览历史记录 *param$num int 记录条数 默认10条 提示:cookie存数据

使用cookie记录商品浏览记录。最后一个参数可以传递多个参数值,以特殊字符分割。
例如:$ids = RecentViews($num=5,$day=2,($id.','.$cid.','.$mid));
/*author: limo
*update:2013-10-17
*
*浏览历史记录 
*param	$num int 记录条数 默认10条 提示:cookie存数据大小有限制,一般为4K
*param	$day int 记录保存时间 默认7天
*param	$id string 商品id,分类 等等参数值 如cid,id参数值以处‘|’外的其他字符分割
*return datastr string	信息id数据字符串
*/

function RecentViews($num=10,$day=7,$id)
{	
	$id = isset($id) ? $id : 0;
	if(isset($_COOKIE['views']))
	{	
		//直接替换
		if($num==1)
		{	
			setcookie("views",$id,time()+3600*$day);
			$datastr = $_COOKIE['views'];
		}
		else
		{	
			$datastr = $_COOKIE['views'];
			$ids = explode('|',$datastr);
			//在限定记录数以内
			if(count($ids )< $num){
				//id是否已经存在
				if(!in_array($id,$ids)){
					$datastr .= '|'.$id;
					setcookie("views",$datastr,time()+3600*$day);
				}
			}
			else
			{
				if(!in_array($id,$ids))
				{
					$datastr = str_replace($ids[0].'|','',$datastr);
					$datastr .= '|'.$id;
					setcookie("views",$datastr,time()+3600*$day);
				}
			}
			
		}
	}
	else
	{
		setcookie("views",$id,time()+3600*$day);
		//php的cookie不会及时生效 直接访问报错 需要刷新一次
		@$datastr = $_COOKIE['views'];
	}
	return $datastr;
}
登录后复制
相关标签:
来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
mac使用
来自于 1970-01-01 08:00:00
0
0
0
在 vue 3 中使用 nuxt 而不使用组合 api
来自于 1970-01-01 08:00:00
0
0
0
php5.6可以使用吗?
来自于 1970-01-01 08:00:00
0
0
0
使用 golang 还有必要使用 nginx 么?
来自于 1970-01-01 08:00:00
0
0
0
php - 使用composer出错
来自于 1970-01-01 08:00:00
0
0
0
热门推荐
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板