VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > PHP >
  • PHP Cookie记录用户历史浏览信息的代码

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

【基础】

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.   }
  54.  



出处:http://www.phpfensi.com/php/20210708/17101.html


相关教程