|
文件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);
?>
程序流程:
- 引入类库文件
- 初始化类库 (可以填写三个参数 以此是cookie的名称,保存的时间,保存到条数)
- 打开缓冲区 ob_start(); (也可以直接跳过,如果发现有报错就加上此代码,放置在文件的一开始)
- 接收需要保存的数据
- 保存之cookie中
|
|
|