PHP Cookie记录用户历史浏览信息例子

Cookie我们经常使用了可以记录到用户的行为并且保存信息在用户本地了,下次访问还可以直接调用这些Cookie信息了,下面我们来看一个利用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. if($judge){
  33. setcookie('RecordLuHuiDUDU',json_encode($data),time()+3600*24*30);
  34. return true;
  35. }
  36. if($num == 10){
  37. for($i = 0; $i < 9; $i++){ $data[$i] = $data[$i+1]; } $data[9] = array( 'id' => $id,
  38. 'time' => date('Y-m-d H:i:s', time())
  39. );
  40. }
  41. if($num <10){ $data[$num] = array( 'id' => $id,
  42. 'time' => date('Y-m-d H:i:s', time())
  43. ); //phpfensi.com
  44. }else {
  45. return false;
  46. }
  47. }
  48. }
  49. setcookie('RecordLuHuiDUDU',json_encode($data),time()+3600*24*30);
  50. return true;
  51. }