разрешить доступ к странице только указанным пользователям - PullRequest
0 голосов
/ 29 апреля 2020

У меня проблемы с созданием страницы, на которой только участники группы могут получить доступ к страницам своей группы.

Каждая группа в моей таблице содержит четыре столбца: $ bandm1 $ bandm2 $ bandm3 и $ bandm4.

Я попытался создать скрипт, который нарисовал имя пользователя сеанса, а затем нарисовал band_id из URL, и это было успешно. но когда я попробовал:

скрипт не работал. это проблема с моими операторами И / ИЛИ?

РЕДАКТИРОВАТЬ: вот мой полный код:

        $user = $_SESSION['user_name'];
    $get_user = "
select * 
  from users 
 where user_name = '$user'
"; 
    $run_user = mysqli_query($con,$get_user);
    $row=mysqli_fetch_array($run_user);

    $user_name = $row['user_name'];

if(isset($_GET['band_id'])) {
$band_id = mysqli_real_escape_string($con, $_GET['band_id']);
if (ctype_alnum($band_id)){
    $q =  "SELECT * FROM bands WHERE band_id = '$band_id' ";

$r = mysqli_query($con, $q);
if($r){
while($row=mysqli_fetch_array($r)){
            $band_id = $row['band_id'];
            $band_name = $row['band_name'];
        }
}

}
?>

FROM bands 
WHERE band_id = '$band_id' 
      and (bandm1 = $user_name) OR (bandm2 = $user_name) 
          OR (bandm3 = $user_name) OR (bandm4 = $user_name)

, он работает, НО, когда я заменяю выбор на: SELECT * FROM band WHERE band_id = '$ band_id' и (bandm1 = $ user_name ) ИЛИ (bandm2 = $ user_name) ИЛИ (bandm3 = $ user_name) ИЛИ (bandm4 = $ user_name) ";

перестает работать

1 Ответ

0 голосов
/ 29 апреля 2020

Попробуйте добавить в ваш запрос круглые скобки:

SELECT * FROM bands WHERE band_id = '$band_id' and ( (bandm1 = $user_name) OR (bandm2 = $user_name) OR (bandm3 = $user_name) OR (bandm4 = $user_name) )

Редактировать:

Возможно, вам нужны некоторые кавычки вокруг этих переменных, не знаете, как построен ваш скрипт, но что-то вроде этого:

$query = "SELECT * FROM bands WHERE band_id = '".$band_id."' and ( bandm1 = '".$user_name."' OR bandm2 = '".$user_name."' OR bandm3 = '".$user_name."' OR bandm4 = '".$user_name."' )";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...