首页 > 解决方案 > 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,因为 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 用于加载事件。


推荐阅读