【问题标题】:Restrict Page to Specific Session ID将页面限制为特定会话 ID
【发布时间】:2017-08-04 04:46:48
【问题描述】:

我写了一个简单的登录系统,它正在工作。我设置了一些只有在登录时才能查看的页面。我想将页面限制为特定的会话 ID。我该怎么做呢?这就是我现在用来限制页面的方法:

<?php
session_start();
 if (!isset($_SESSION['u_id'])) {
 header("Location: ../index.php?index=mustlogin");
 exit();
}
?>

如何将其从任何 u_id 限制为特定的 u_id?

【问题讨论】:

  • 会话 ID 来来去去,您可能需要重新考虑您要完成的工作。
  • 我正在尝试将页面限制为特定用户。会话 ID 当前设置为用户唯一 ID,理论上每个唯一 ID 应该只有一个。有没有更好的方法来做到这一点?
  • 检查if ($_SESSION['u_id'] == 'specific id') { /*Load your view*/ },之后只加载视图,否则重定向到其他页面/如你所愿。
  • 更好的方法是将其绑定到数据库中给出的用户 ID。这样,当用户尝试访问该页面时,您可以查询他们的持续授权。并且在他们的用户帐户中有一个“状态”字段,因此如果他们已被取消授权,您可以将他们重定向到其他地方,等等。

标签: php session login uid


【解决方案1】:

您可以创建一个特定 id 的数组,然后使用 in_array 来验证用户。

示例

<?php
session_start();
$sessionIds = array('1','2'); //for example i have inserted 1 and 2 as ids
 if (!isset($_SESSION['u_id']) || in_array($_SESSION['u_id'], $sessionIds))  {
 header("Location: ../index.php?index=mustlogin");
 exit();
}

说明

在这里,我创建了一个数组 $sessionIds,其中包含不允许访问页面的特定 ID。然后用 in_array 检查当前会话用户 ID 是否存在于 $sessionIds 数组中,然后重定向到用户。

【讨论】:

    【解决方案2】:

    您需要将您的 $_SESSION['uid'] 与您的特定 ID 相匹配。为此,您需要特定用户 ID 的某种数据。有多种方法可以做到这一点,但我会用数组来做到这一点。您需要的是一组特定 id 的数组

     //Should've come from database of your users
          $specific= array(
            "id" => 1 
        ); 
    

    然后只需通过 in_array()

    在数组中搜索
    if (!in_array($_SESSION['u_id'], $specific)) {
         header("Location: ../index.php?index=mustlogin");
         exit();
    }
    

    【讨论】:

      猜你喜欢
      • 2016-07-02
      • 1970-01-01
      • 2018-08-01
      • 2012-04-26
      • 2021-01-12
      • 2015-10-22
      • 1970-01-01
      • 2019-11-16
      • 1970-01-01
      相关资源
      最近更新 更多