【问题标题】:Stopping the use of a URL to get to the site停止使用 URL 访问站点
【发布时间】:2015-10-30 23:38:17
【问题描述】:

所以我有一个网站重定向到网站的另一部分,即,当按下“www.test.com”上的按钮时,它会重定向到“www.test.com/anotherpage”。现在我的问题是我只希望用户在使用按钮时能够访问第二页,而不仅仅是在搜索栏中输入“www.test.com/anotherpage”。

那么,有什么方法可以设置我的页面,使其无法通过 url 访问,而只能从网站的另一部分重定向?

【问题讨论】:

  • 有一些简单的方法很容易被绕过,或者一些更难的方法需要更多的工作来实现。您在寻找什么,您尝试过什么?
  • 另一个问题是你有服务器端脚本能力吗?
  • 你为什么要这样做?如果你想确保他们首先登录,你应该让第二个页面检查他们是否已经登录(检查会话变量),而不是依赖于他们来自哪里。

标签: javascript html url


【解决方案1】:

document.referrer

如果用户直接导航到页面(不是通过链接,而是通过例如书签),则该值是一个空字符串。由于此属性仅返回一个字符串,因此它不会为您提供对引用页面的 DOM 访问权限。

【讨论】:

    【解决方案2】:

    您需要使用 PHP 代码登录用户并检查会话示例,例如这里的 exaplain:Login form and session example 当然你需要对 PHP 有基本的了解

    【讨论】:

      【解决方案3】:

      您可以使用客户端服务器端技术。

      客户端的示例是 Javascript,读取被调用页面中的 document.referrer,如 @Barmar 指出的那样,并重定向到主页以防引荐来源不是您的主页。

      服务器端方式可以使用传递给页面的参数,例如将在主页上生成并在被调用页面中检查的SESSION 标识符。

      实际上,有多种方法可以实现您的目标。 您应该提供更多有关环境的信息,以便我们提供帮助。

      【讨论】:

        【解决方案4】:

        您可以使用 PHP。只需将按钮放在表单标签之间

        <form action="http://www.test.com/anotherpage" method="POST">
           <input name="mybutton" type="submit" value="Go to another page">
        </form>
        

        在另一个页面上

        <?php 
         if (!isset($_POST['mybutton'])) { //check if the button was clicked
            header('Location: index.html'); //forward to index if not
         }
        ?>
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2019-02-13
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2020-05-05
          相关资源
          最近更新 更多