当前位置:首页 > PHP

php实现浏览记录

2026-02-16 08:15:39PHP

PHP 实现浏览记录的方法

使用 Cookie 存储浏览记录

通过 Cookie 存储用户的浏览记录是一种简单的方法。每次用户访问页面时,将页面信息存入 Cookie,并限制存储数量。

// 设置浏览记录
$history = isset($_COOKIE['history']) ? json_decode($_COOKIE['history'], true) : [];
$currentPage = ['title' => '当前页面标题', 'url' => '当前页面URL'];

// 限制记录数量(例如最近 5 条)
array_unshift($history, $currentPage);
$history = array_slice($history, 0, 5);

// 存储到 Cookie
setcookie('history', json_encode($history), time() + 86400 * 30, '/');

使用 Session 存储浏览记录

Session 适合临时存储用户的浏览记录,数据在用户关闭浏览器后失效。

php实现浏览记录

session_start();

// 初始化浏览记录
if (!isset($_SESSION['history'])) {
    $_SESSION['history'] = [];
}

$currentPage = ['title' => '当前页面标题', 'url' => '当前页面URL'];

// 限制记录数量
array_unshift($_SESSION['history'], $currentPage);
$_SESSION['history'] = array_slice($_SESSION['history'], 0, 5);

使用数据库存储浏览记录

对于需要长期保存或跨设备同步的浏览记录,可以使用数据库存储。

php实现浏览记录

// 假设已连接数据库
$userId = 1; // 用户ID
$title = '当前页面标题';
$url = '当前页面URL';

// 插入记录
$stmt = $pdo->prepare("INSERT INTO browsing_history (user_id, title, url, visited_at) VALUES (?, ?, ?, NOW())");
$stmt->execute([$userId, $title, $url]);

// 查询最近的浏览记录
$stmt = $pdo->prepare("SELECT title, url FROM browsing_history WHERE user_id = ? ORDER BY visited_at DESC LIMIT 5");
$stmt->execute([$userId]);
$history = $stmt->fetchAll(PDO::FETCH_ASSOC);

结合前端和后端实现

可以通过 Ajax 将浏览记录发送到后端存储,同时在前端展示。

// 后端接收 Ajax 请求
if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['title'], $_POST['url'])) {
    session_start();
    $currentPage = ['title' => $_POST['title'], 'url' => $_POST['url']];
    array_unshift($_SESSION['history'], $currentPage);
    $_SESSION['history'] = array_slice($_SESSION['history'], 0, 5);
    echo json_encode(['status' => 'success']);
    exit;
}
// 前端发送浏览记录
$.post('save_history.php', {
    title: document.title,
    url: window.location.href
}, function(response) {
    console.log('浏览记录已保存');
});

清理过期的浏览记录

对于数据库存储的浏览记录,可以定期清理过期数据。

// 删除 30 天前的记录
$stmt = $pdo->prepare("DELETE FROM browsing_history WHERE visited_at < DATE_SUB(NOW(), INTERVAL 30 DAY)");
$stmt->execute();

以上方法可以根据实际需求选择或组合使用,以实现灵活高效的浏览记录功能。

标签: php
分享给朋友:

相关文章

php实现增删改查

php实现增删改查

以下是在PHP中实现增删改查(CRUD)操作的详细方法,以MySQL数据库为例: 数据库连接配置 创建config.php文件存储数据库连接信息: <?php $host = 'localh…

php实现登录

php实现登录

PHP 登录功能实现 数据库连接与用户表创建 创建一个数据库连接文件 db.php,用于管理数据库连接。MySQL 示例代码如下: <?php $host = 'localhost'; $db…

php购物车实现

php购物车实现

PHP购物车实现方法 使用PHP实现购物车功能可以通过多种方式完成,以下是几种常见的实现方法: Session存储购物车数据 利用PHP的$_SESSION超全局变量存储购物车数据是最简单的方法。用…

php实现搜索

php实现搜索

PHP实现搜索功能的方法 在PHP中实现搜索功能通常涉及数据库查询和用户输入的匹配。以下是几种常见的实现方式: 使用MySQL LIKE语句 通过简单的LIKE语句实现基础搜索: $searchT…

php 实现购物车

php 实现购物车

PHP 实现购物车功能 购物车功能是电子商务网站的核心部分,可以通过 PHP 和 Session 或数据库来实现。以下是两种常见的实现方式: 使用 Session 存储购物车数据 Sessi…

php 实现秒杀

php 实现秒杀

PHP 实现秒杀的关键技术 秒杀系统需要解决高并发、超卖、性能瓶颈等问题。以下是实现秒杀的核心方案: 使用 Redis 预减库存 将商品库存提前加载到 Redis 中,通过原子操作保证库存准确性:…