2017-03-21 72 views
0

statment我正在使用PHP中的項目。在session.php中,我允許哪些用戶可以訪問每個頁面。登錄用戶和其他人。但問題是我無法將數據庫表中的所有id-s添加到if語句中。因爲我希望所有用戶都可以訪問所有'oglasi'。我如何添加多個條件,如果在php

 <?php 
     include_once 'db.php'; 
     session_start(); 
     ob_start(); 

     $query = "SELECT id FROM oglasi"; 
     $result = mysqli_query($link, $query); 

     while ($row = mysqli_fetch_array($result)) { 
     $id = $row['id']; 
     //if not logged in you can access 
     if (empty($_SESSION['user_id']) && 
       $_SERVER['REQUEST_URI'] != '/SP/oglasi/index.php' && 
       $_SERVER['REQUEST_URI'] != '/SP/oglasi/registration.php' && 
       $_SERVER['REQUEST_URI'] != '/SP/oglasi/oglasi.php' && 
       $_SERVER['REQUEST_URI'] != '/SP/oglasi/oglasi_show.php?id='.$id && 
       $_SERVER['REQUEST_URI'] != '/SP/oglasi/user_insert.php' && 
       $_SERVER['REQUEST_URI'] != '/SP/oglasi/login_check.php') 
      header("Location: index.php"); 
      die(); 
     } 
      } 

     ?> 

這是關鍵的語句

$_SERVER['REQUEST_URI'] != '/SP/oglasi/oglasi_show.php?id='.$id && 

$id變量應該改變1,2 ... 但它不是量變到質變。

如果我這樣做可行,但如果您有大量數據,這並不好。

$_SERVER['REQUEST_URI'] != '/SP/oglasi/oglasi_show.php?id=2' && 
    $_SERVER['REQUEST_URI'] != '/SP/oglasi/oglasi_show.php?id=1' && 

有人可以幫忙嗎?

+0

請與'strpos()' –

+0

在每個循環創建一個字符串來比較,比如'$ compare_with '這個變量是動態地在每個循環中創建的字符串。最後,將這個字符串與'$ _SERVER ['REQUEST_URI']'進行比較。每次使用str_replace時,您還可以讓您使用'$ compare_with'字符串。 – webDev

回答

0

我想你可以簡化檢查這樣:

include_once 'db.php'; 
session_start(); 
ob_start(); 

//if not logged in you can access 
if (empty($_SESSION['user_id']) && 
    strpos($_SERVER['REQUEST_URI'], '/SP/oglasi/') !== 0) { 
    header("Location: index.php"); 
    die();  
} 

在這裏,您檢查 - 如果模式/SP/oglasi/REQUEST_URI不存在於位置0(這意味着REQUEST_URI開始用它) - 然後你重定向用戶到index.php

如果不是所有oglasi小節可以由用戶來訪問 - 您仍然可以使用您的條件:

include_once 'db.php'; 
session_start(); 
ob_start(); 

if (empty($_SESSION['user_id']) && 
    $_SERVER['REQUEST_URI'] != '/SP/oglasi/index.php' && 
    $_SERVER['REQUEST_URI'] != '/SP/oglasi/registration.php' && 
    $_SERVER['REQUEST_URI'] != '/SP/oglasi/oglasi.php' && 
    $_SERVER['REQUEST_URI'] != '/SP/oglasi/user_insert.php' && 
    $_SERVER['REQUEST_URI'] != '/SP/oglasi/login_check.php' && 
    strpos($_SERVER['REQUEST_URI'], '/SP/oglasi/oglasi_show.php') !== 0 
) { 
    header("Location: index.php"); 
    die(); 
} 
+0

謝謝你工作:) – Moonwalker4z