为了账号安全,请及时绑定邮箱和手机立即绑定

使用 PHP 检测 Iphone 中的浏览器刷新

使用 PHP 检测 Iphone 中的浏览器刷新

PHP
扬帆大鱼 2023-07-08 20:50:48
我正在尝试检测我的网站页面的浏览器是否刷新,以便可以执行一些逻辑。显然它可以在除 iPhone 之外的所有其他平台上运行。任何帮助将不胜感激。下面是我正在使用的 php 脚本。$pageWasRefreshed = isset($_SERVER['HTTP_CACHE_CONTROL']) && $_SERVER['HTTP_CACHE_CONTROL'] === 'max-age=0'; if($pageWasRefreshed ) {  //do something because page was refreshed;} else {  //do nothing;}
查看完整描述

1 回答

?
幕布斯7119047

TA贡献1794条经验 获得超8个赞

Cache-Control刷新后Safari 似乎没有发送标头(发生这种情况的原因有多种)。依靠浏览器通过标头通知您刷新并不是一个好主意,因为浏览器可能会随着时间的推移而发生变化。


解决此问题的更好方法是使用会话,因为无论浏览器如何,它都可以工作。


session_start(); //place it at the start of the PHP document, before anything except headers is send to browser


if (!isset($_SESSION["refresh"]))

    $_SESSION["refresh"] = 0;

$_SESSION["refresh"] = $_SESSION["refresh"] + 1;


if ($_SESSION["refresh"] > 1)

{

    //you refreshed the page!

}

else

{

    //first time

}

编辑:此问题的其他解决方案是:

  • 使用cookie(在服务器端)。如果用户禁用了 cookie,这将不起作用。

  • 在客户端使用 javascript 代码。这取决于问题 - 通过 javascript 的解决方案有时可能会不必要地复杂,有时则需要。


查看完整回答
反对 回复 2023-07-08
  • 1 回答
  • 0 关注
  • 96 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信