[英]redirection to another page if array does not match
建立了一個登錄系統后,我可以向用戶分配權限,使他們可以訪問頁面或不訪問頁面,一切正常。 當前,如果用戶已登錄並具有權限,則顯示內容;如果未登錄,則重定向到登錄頁面。
我正在嘗試添加重定向,以便如果您登錄但沒有權限,那么它將帶您到包含有關產品信息的頁面。
我目前將其設置為:
<?php
if (!securePage($_SERVER['PHP_SELF'])){die();}
$parts = parse_url($_SERVER["REQUEST_URI"]);
$page_name = basename($parts['path']);
//Links for logged in user
if(isUserLoggedIn()) {
//Links for permission level 3 (BOF)
if ($loggedInUser->checkPermission(array(3))){
*do something*
(more code)
<div id='default'>
<?php } else { ?>
*login*
我知道我可以通過說“如果沒有許可,那就這樣做”,但是我目前有20多個許可並且正在攀登。 我正在嘗試類似的東西:
if ($loggedInUser <> 3){
header( 'Location: http://www.yoursite.com/new_page.html' ) ;
}
但是它解析但不顯示結果,我猜想它與變量為空有關嗎?
對最佳鍛煉有任何想法嗎?
好像您混合了對象和變量。
從評判
($loggedInUser->checkPermission(array(3)))
$ loggedInUser應該是一個對象。
但是,然后您嘗試將一個對象與一個整數進行比較。 可能是,您忘記了方法嗎? 有點像
if($loggedInUser->id!=3)
打開錯誤報告並檢查是否有任何錯誤。
檢查輸出中的BOM字符...它們可以防止重定向
除此之外,我想不出什么可以幫助您
EDIT1:幫助調試變量var_dump()並檢查獲得的類型(整數/字符串)。 也許您需要使用===來更改if語句(如果$ a === $ b),該語句將檢查值和類型
如果有太多...,則可以使用switch..case語句,更易於調試imo
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.