2017-08-04 46 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(); 
}