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

使用cookie记录商品浏览记录

WBOY
풀어 주다: 2016-06-06 19:32:02
원래의
948명이 탐색했습니다.

使用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으로 문의하세요.
인기 추천
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿