php 使用COOKIE制作浏览记录

文件1 cookieHistory.class.php

<?php
/**
 *使用COOKIE 制作网站浏览记录
 *by threemore
 */


class HistoryCookie {
	var $times =""; //记录COOKIE保存时间
	var $cookiename = 'History_cookie'; //COOKIE名称
	var $counts = 5;

	function __construct($name="",$times = '',$counts) {
		if(!empty($times)) $this->times = time()+$times;
		if(!empty($name)) $this->cookiename = $name;
		if(!empty($counts)) $this->counts = $counts;
	}
	
	//保存记录到COOKIE中
	public function getData($data) {
		$historydate = array();
		$historydate[] = $data;
		//unset($_COOKIE[$this->cookiename]);
		if(isset($_COOKIE[$this->cookiename])) {
			
			$new_history = stripslashes($_COOKIE[$this->cookiename]);
			
			$new = unserialize($new_history);
			if(count($new) > ($this->counts-1)) return unserialize(stripslashes($_COOKIE[$this->cookiename]));
			foreach ($new as $key => $value) {
				if(!in_array($value,$historydate)) {
					$historydate[] =$value;
				}
			}
			$savedate = serialize($historydate);
			setcookie($this->cookiename,$savedate,time()+$this->times);
		}else {
			$savedate= serialize($historydate);
			
			setcookie($this->cookiename,$savedate,$this->times);
			
		}
		return unserialize(stripslashes($_COOKIE[$this->cookiename]));
	}

	//销毁历史记录
	public function Destroy() {
		unset($_COOKIE[$this->cookiename]);
	}
	
}

?>

文件二 history.php

<?php

require_once 'cookieHistory.class.php';
ob_start();//打开缓冲区
$history = new HistoryCookie('cookiename',10000);



$data['id'] = $_GET['id'];
$data['name'] = $_GET['name'];



$cookiedate = $history->getData($data);



echo "<pre>";
print_r($cookiedate);
?>

  程序流程:

  1. 引入类库文件
  2. 初始化类库 (可以填写三个参数 以此是cookie的名称,保存的时间,保存到条数)
  3. 打开缓冲区 ob_start(); (也可以直接跳过,如果发现有报错就加上此代码,放置在文件的一开始)
  4. 接收需要保存的数据
  5. 保存之cookie中
posted @ 2013-08-08 23:35  assassin0905  阅读(699)  评论(1编辑  收藏  举报