【问题标题】:Detect redirected visitor检测重定向的访客
【发布时间】:2012-03-09 20:48:30
【问题描述】:

这是场景:

Page1.php 的访问者被 JavaScript 重定向到 Page2.php

如果我根本不使用任何语言的任何会话和变量,有没有办法通过监视 Page2.php 来知道登陆 Page2.php 的访问者是重定向访问者?

不做/使用:

  • 网址操作
  • 饼干
  • 会话
  • 任何类型的变量
  • Page1.php 完全没有变化

我问这个是因为我不希望其他网站检测到我已将用户重定向到他们的网站。

我只是想知道这种可能性。

【问题讨论】:

  • 你有反对变量的东西吗? O.o

标签: php javascript redirect


【解决方案1】:

重定向时只需在查询字符串中设置一个标志(将查询字符串附加到您的重定向位置):

Page2.php?redirect=1

或者如果您需要引用页面:

Page2.php?referer=Page1.php

然后检查$_GET['referer']

您也许可以阅读$_SERVER['HTTP_REFERER'],但我个人倾向于避免使用它,因为它并不总是包含您认为应该包含的内容。

【讨论】:

  • 谢谢,但请告诉我在没有执行/使用的情况下检测到 Page2.php 上的重定向访问者的可能性:URL 操作、Cookie、会话、任何类型的变量。并使用任何服务器端或客户端语言............?绝对不对 Page1.php 做任何改动
【解决方案2】:

如果您不想使用服务器端语言,您唯一的选择是JavaScript。您可以重定向到Page2.php?redirected=true 并使用以下代码到GET Page2.php 上的重定向变量。

var $_GET = {};

document.location.search.replace(/\??(?:([^=]+)=([^&]*)&?)/g, function () {
    function decode(s) {
        return decodeURIComponent(s.split("+").join(" "));
    }

    $_GET[decode(arguments[1])] = decode(arguments[2]);
});

if($_GET['redirected']){
   // Redirected from Page1.php!
}

来源:how to get GET and POST variables with JQuery?

【讨论】:

  • 谢谢,但请告诉我在不执行/使用以下操作的情况下检测 Page2.php 上的重定向访问者的可能性:URL 操作、Cookie、会话、任何类型的变量。并使用任何服务器端或客户端语言.........?绝对不对 Page1.php 做任何改动
【解决方案3】:

在您进行重定向时在初始页面上设置一个 javascript cookie。

在新页面上,检查是否设置了cookie,然后将其删除。

【讨论】:

  • +1 可能是最好的方法。查询字符串和 cookie 不会促进完整性,但 cookie 更好。当人们发布诸如“我不想使用会话”之类的内容时,我总是感到困惑,这表明他们不了解 如何 使用会话,而不是他们考虑并决定了不是正确的解决方案。
  • 告诉我在没有执行/使用的情况下检测到 Page2.php 上的重定向访问者的可能性:URL 操作、Cookie、会话、任何类型的变量。并使用任何服务器端或客户端语言............?绝对不对 Page1.php 做任何改动
  • @baburao113:为什么,请告诉我,您为什么要避免使用您选择的编程语言的所有基本内置工具,这会使这变得非常简单?说真的,你在期待什么:魔法?
  • @Madmartigan 哈哈!! :P 我没有回避任何事情。我只是想知道是否有可能检测到访问 Page2.php 的访问者而不需要做额外的工作来对 Page1.php 进行任何修改就是这样......我问这个是因为我不希望其他网站检测到我已将用户重定向到他们的网站。可能是我不够清楚,或者我的英语不好:P
  • 你应该刚开始问你真正的问题。您想重定向用户并对其重定向到的外部站点保密吗?你真的不能(访问日志会显示它)。你为什么想要,或者你为什么觉得你必须这样做?
猜你喜欢
  • 2016-02-11
  • 1970-01-01
  • 2011-09-25
  • 2022-12-20
  • 2021-11-20
  • 2014-05-02
  • 2011-11-17
  • 1970-01-01
  • 2019-12-06
相关资源
最近更新 更多