【问题标题】:Detect in php if it was meta refresh在 php 中检测是否是元刷新
【发布时间】:2015-03-18 09:27:10
【问题描述】:

是否有人知道如何在 PHP 中检测是否进行了元刷新以访问我们的页面? 我的意思是,某些页面有以下 html 代码

<META HTTP-EQUIV='refresh' content='3; URL=http://www.example.com/mypage.php'> 

我想在 mypage.php 中检测是否真的是这种重定向方式。

附:带有元刷新的网站不是我的网站,所以我不能传递任何参数

附言我不知道带有元刷新的网站的确切 URL,它可以是任何东西。

P.P.P.S.我对重定向的来源不感兴趣,我对重定向的事实感兴趣。

【问题讨论】:

  • &lt;META HTTP-EQUIV='refresh' content='3; URL=http://www.example.com/mypage.php?method=viaMetaRefresh'&gt;?
  • 带有元刷新的网站不是我的网站,所以我不能传递任何参数
  • 如果一个referrer被发送到你的网络服务器,你可以很容易地检测到重定向的来源,但是IE和Firefox不这样做,这个:stackoverflow.com/questions/2985579/…
  • 我不需要重定向的来源,我需要该重定向的事实。

标签: php refresh meta-tags


【解决方案1】:

只需使用会话或 cookie。

检查它是否存在,在别处创建它(下次刷新时检测到)。

有些喜欢:

session_start();
$currentPage = $_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF'];
if (empty($_SESSION['lastSeenPage']) {
    if ($_SESSION['lastSeenPage'] == $currentPage) {
        // Comes from Refresh
    }
}
$_SESSION['lastSeenPage'] = $currentPage;

也许您需要在访问其他页面后检查该 SESSION 是否仍然存在。 您可以使用

检查它(“//来自刷新”的位置)
if($_SERVER["HTTP_REFERER"]== $currentPage) {
    // do the stuff
}

【讨论】:

  • 没有关于如何检测是否是元刷新访问的答案。
猜你喜欢
  • 2010-10-02
  • 2019-01-25
  • 2018-10-27
  • 1970-01-01
  • 1970-01-01
  • 2012-02-12
  • 2012-04-25
  • 2011-05-16
  • 2011-04-02
相关资源
最近更新 更多