2017-03-21 3 views
0

Ich arbeite an einem Projekt in PHP. Und in session.php erlaube ich, welche Benutzer auf jede Seite zugreifen können. Angemeldete Benutzer und andere. Aber das Problem ist, dass ich nicht alle ID-s aus der Tabelle in meiner Datenbank zur if-Anweisung hinzufügen kann. Weil ich möchte, dass alle 'oglasi' für alle Benutzer zugänglich sein sollten.Wie kann ich mehrere Bedingungen hinzufügen, wenn Statement in 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(); 
     } 
      } 

     ?> 

Dies ist die Kernaussage

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

$id Variable sollte 1,2 ... ändern, aber es ist changeing nicht.

Wenn ich das tue funktioniert es, aber es ist nicht gut, wenn Sie eine Menge Daten haben.

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

Kann jemand helfen?

+0

prüfen mit 'strpos()' –

+0

in jeder Schleife einen String erstellen wie '$ compare_with zu vergleichen 'und diese Variable ist die in jeder Schleife dynamisch erzeugte Zeichenfolge. Und zuletzt vergleiche diese Zeichenkette mit $ _SERVER ['REQUEST_URI'] '. Sie können auch jedesmal $ $ compare_with' string mit str_replace machen. – webDev

Antwort

0

Ich nehme an, Sie können auf diese Weise vereinfachen überprüfen:

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();  
} 

Hier überprüfen Sie - wenn Muster /SP/oglasi/ nicht in Ihrem REQUEST_URI an Position existiert 0 (was bedeutet, REQUEST_URI beginnt mit ihm) - dann leiten Sie Benutzer index.php .

Wenn nicht alleoglasi Unterabschnitte können vom Benutzer besucht werden - können Sie immer noch Ihre Bedingung verwenden:

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

danke es hat funktioniert :) – Moonwalker4z

Verwandte Themen