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

使用cookie记录商品浏览记录

WBOY
WBOYOriginal
2016-06-06 19:32:02918browse

使用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;
}
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn