当前位置:首页 > PHP教程 > php会话 > 列表

PHP Cookie记录用户历史浏览信息的代码

发布:smiling 来源: PHP粉丝网  添加日期:2021-07-08 09:42:35 浏览: 评论:0 

购物类网站有时候需要了解用户最近的需求,收集和推送用户的查看记录成为了大部分此类的网站不可缺少的功能,下面是本人在开发项目中自己写的方法,一来留有保存,二来和大家分享。

【基础】

Cookie常用方法:

$_COOKIE[‘RecordLuHuiDUDU'] 得到Cookie

setcookie(‘RecordLuHuiDUDU',”,time()-3600*24*30); setcookie(字段名,数据,过期时间); 设置Cookie

【注意】

重新设置Cookie需要使之前的Cookie失效,删除Cookie也是同样的方法:

setcookie(‘RecordLuHuiDUDU',”,time()-3600*24*30);

【代码示例】

  1. /** 
  2.    * 将用品id存入Cookie中 
  3.    * 
  4.    * @param $id 
  5.    * @return bool 
  6.    */ 
  7.   public function setCookieRecord($id){ 
  8.     $data = null; 
  9.     if(!isset($_COOKIE['RecordLuHuiDUDU'])){ 
  10.       if(!emptyempty($id)) { 
  11.         $data[0] = array
  12.           'id' = $id
  13.           'time' = date('Y-m-d H:i:s', time()) 
  14.         ); 
  15.       }else
  16.         return false; 
  17.       } 
  18.     }else
  19.       if(!emptyempty($id)) { 
  20.         $data = $_COOKIE['RecordLuHuiDUDU']; 
  21.         setcookie('RecordLuHuiDUDU','',time()-3600*24*30); 
  22.         $data = json_decode($data, true); 
  23.         $num = count($data); 
  24.         //判断是否重复 
  25.         $judge = false; 
  26.         foreach($data as $index => $value){ 
  27.           if($data[$index]['id'] == $id){ 
  28.             $data[$index]['time'] = date('Y-m-d H:i:s', time()); 
  29.             $judge = true; 
  30.           } 
  31.         } 
  32.    
  33.         if($judge){ 
  34.           setcookie('RecordLuHuiDUDU',json_encode($data),time()+3600*24*30); 
  35.           return true; 
  36.         } 
  37.    
  38.         if($num == 10){ 
  39.           for($i = 0; $i < 9; $i++){ $data[$i] = $data[$i+1]; } $data[9] = array'id' => $id
  40.             'time' => date('Y-m-d H:i:s', time()) 
  41.           ); 
  42.         } 
  43.         if($num <10){ $data[$num] = array'id' => $id
  44.             'time' => date('Y-m-d H:i:s', time()) 
  45.           ); 
  46.         }else { 
  47.           return false; 
  48.         } 
  49.       } 
  50.     } 
  51.     setcookie('RecordLuHuiDUDU',json_encode($data),time()+3600*24*30); 
  52.     return true; 
  53.   }

Tags: Cookie历史浏览信息

分享到: