php - PHP 在页面加载和页面离开时获取 UNIX 时间戳
问题描述
我有几个 html 页面,当用户使用 PHP 以 UNIX 格式输入和离开每个页面时,我想将其保存在一个文本文件中。
if(isset($_POST['submit'])){
$t=time();
$myfile1 = fopen("temp/time.txt", "w");
fwrite($myfile1, $t);
header("Location: main2.html");
}
该代码可以在用户输入时获取时间戳,但是有没有办法在用户离开时获取时间戳?
先感谢您!
解决方案
您不能使用 PHP,因为 PHP 是服务器端的,而卸载事件是客户端的。
为此,您可以使用 Javascript 使用 Ajax 调用另一个 PHP 页面,并在此其他页面的代码中记录您的时间戳。
像这样的东西(使用jQuery):
$(window).unload(function(){
$.ajax({
type: 'GET',
url: '/your_url.php',
async:false
}).done(function(data) {
console.log('complete');
});
});
但是,正如评论中提到的,您的 PHP 文件中的标头函数将立即重定向用户。在这种情况下,javascript 方式不是解决方案。
如果我是对的,您使用了 header 函数,因为您使用的是 HTML 页面而不是 PHP。您的 PHP 就像 HTML 页面之前的中间件。在这种情况下,您也可以将上述 Javascript 用于加载事件。
推荐阅读
- c++ - 带有智能指针的继承对象的深拷贝
- php - 无法使用准备好的语句插入日期
- mysql - 数据库表设计:在同一个表中分组或创建子表并加入
- html - 如何使用新列表重新加载组件?
- c# - PowerShell 管道卡住
- javascript - 刷新验证码,也刷新整个注册表
- android - 循环设置通知,直到用户单击
- javascript - Internet Explorer 11 在 XmlHttpRequest-POST 期间始终发送 Cache-Control-header
- altium-designer - 库组件注释/指示符的可见属性如何工作?
- reactjs - React Native 打开一个活动