使用 PHP 检测历史记录更改
Detecting History Change using PHP?
这是我在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()
做什么,但是这段代码是否试图阻止使用后退按钮?
阻止缓存页面,则可以将数组中的第二个值到最后一个值与当前页面进行比较,如果它们匹配,则检测到后退按钮。只有当无法返回到前端的上一页时,这才有可能。
阻止后退按钮通常被认为是一件坏事,因此最好重新考虑您做事的方式并提出更好的解决方案。
相关文章:
- window.location替换并传递URL历史记录条目中的变量
- Javascript历史记录转换为php行
- 浏览器何时记录历史记录
- 输入类型按钮返回历史记录并返回顶部
- HTML5历史记录-返回上一个完整页面按钮
- Angular JS-如何强制浏览器记录历史以便快速路由
- asp.net网站文件下载历史记录
- 使用Ajax的后退按钮历史记录,URL中没有散列
- 历史记录和通过JavaScript修改的HTML
- Javascript:历史记录未加载页面
- 通过js设置页面历史记录和页面内容
- 如果没有历史记录,我如何隐藏图像或按钮onclick=;历史.go(-1);
- 将HTML表单发布到iframe会导致浏览器历史记录出现问题
- 如何防止浏览器在历史记录中缓存HTML
- 如何将新的stateObject添加或附加到历史记录中
- 检查浏览器后退按钮历史记录
- React-router 在添加历史记录后不会渲染组件
- 如何返回可用的历史记录状态数
- 引导选项卡不适用于历史记录.返回选项
- 非用户发起的操作触发的导航没有记录历史