2017-08-04 29 views
1

我写了一个简单的登录系统,并且正在工作。我已经设置了几个页面,只有在登录后才能看到。我想限制一个页面到特定的会话ID。我会怎么做呢?这正是我用来限制页面的时间:将页面限制为特定会话ID

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

我该如何限制这从任何u_id到特定的u_id?

+0

会话ID来来去去,你可能要重新考虑你在做什么试图完成。 – Difster

+0

我想限制一个页面给特定的用户。会话ID当前设置为用户唯一ID,理论上应该只有一个唯一ID。有没有更好的方法来完成这一点? –

+0

检查'if($ _SESSION ['u_id'] =='specific id'){/ *加载你的视图* /}',之后只加载视图,否则重定向到其他页面/如你所愿。 – Sinto

回答

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检查当前会话用户标识存在于$ sessionIds数组中,然后重定向到用户。

+0

这工作。谢谢。 –

1

您需要将您的$ _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(); 
}