【问题标题】:HTTP_REFERER redirect problem when going to a members only page w/ PHP使用 PHP 访问仅限会员的页面时出现 HTTP_REFERER 重定向问题
【发布时间】:2011-03-11 20:40:57
【问题描述】:

到目前为止,我的 HTTP_REFERER 重定向脚本在用户登录之前无法访问的页面(submit.php)上看起来像这样:

session_start();
 if(!isset($_SESSION['user_id'])) {
 header("Location: login.php");
 exit();
}

这很好,因为显然如果他们尝试去 submit.php,他们需要先登录。但是一旦他们登录,他们就会再次被带到 login.php,因为 login.php 是他们访问的最后一个页面,而不是 submit.php(这应该是他们试图访问的正确页面)。

这只是在用户登录之前不显示的页面的问题。例如,如果他们转到 /contact.php 然后登录,它会立即将他们带回contact.php,但那是因为在他们注销时也可以看到

【问题讨论】:

    标签: php session redirect


    【解决方案1】:

    我尽量不使用 HTTP_REFERER,这让我很头疼。

    我建议将 URL 保存到他们进入您的应用程序的会话中,因此在您重定向并检查他们是否经过身份验证之前。然后他们将点击登录并将它们转发到您会话中保存的页面。如果重定向到主页或其他页面,请确保不保存登录页面。

    【讨论】:

      【解决方案2】:

      检查您是否在登录页面上,如果是则不重定向

      if (!isset($_SESSION['user_id']) && ($_SERVER['SCRIPT_NAME'] != '/login.php')) {
          header(...);
      }
      
      .. show login form
      

      【讨论】:

        猜你喜欢
        • 2011-02-04
        • 2014-02-23
        • 2019-10-11
        • 2011-07-01
        • 2019-12-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多