使用 PHP 检测历史记录更改

Detecting History Change using PHP?

本文关键字:记录 历史 PHP 检测 使用      更新时间:2023-09-26

这是我在JavaScript中要做的事情。 有什么办法可以在 php 中做到这一点吗?我正在从事一个需要此功能但无法使用 JavaScript 的项目。

setInterval ( "checkHistory()", 1000 );
function checkHistory() {
   if (oldHistLength != history.length) {
      removegateway();
      oldHistLength = history.length;
   }
}

很抱歉,使用 PHP 无法做到这一点。你唯一的选择是在某个地方使用 JavaScript。

但是,您可以实现我相信您正在尝试使用另一种技术 - PHP 会话和请求 URI 做的事情。

这涉及将用户访问的URL存储到一个变量中(或者您可以使用MySQL),该变量可以在当前会话中引用网站上的任何地方。

下面是一个(未经测试的)示例:

<?php
session_start();
// Retrieve/create the current list
if( isset($_SESSION['history']) ) {
    $history = $_SESSION['history'];
} else {
    $history = new array();
}
// Add the current URL to the history array
array_push($history, $_SERVER['REQUEST_URI']);
// Do anything else you want to here
// Store the array again
$_SESSION['history'] = $history;
?>

在代码中,可以保留一个包含 $_SERVER['php_self'] 值的数组,serialize()该数组,并将其存储在会话变量中。不过,这对于您要做的事情可能还不够。我不确定removegateway()做什么,但是这段代码是否试图阻止使用后退按钮?

如果

阻止缓存页面,则可以将数组中的第二个值到最后一个值与当前页面进行比较,如果它们匹配,则检测到后退按钮。只有当无法返回到前端的上一页时,这才有可能。

阻止后退按钮通常被认为是一件坏事,因此最好重新考虑您做事的方式并提出更好的解决方案。