Показывать содержимое страницы на основе массива php

#php #arrays #redirect #show-hide

#php #массивы #перенаправление #показать-скрыть

Вопрос:

У нас есть массив некоторых идентификаторов пользователя, которые будут иметь доступ к странице. Если пользователь находится в массиве, мы хотим показать страницу. ЕСЛИ пользователя нет в массиве, мы хотим либо отобразить недопустимый идентификатор, либо перенаправить его на другую страницу.

 <?php

$valid = array("aa123", "aa34", "bb12");
$id = "pp123";
if (in_array($id, $valid)) {
    echo "Valid ID";
}

else {
    echo "Not Valid, go away";
}

?>

<div id="the-page">The main content</div>
  

Это работает без проблем (идентификатор будет введен через нашу центральную систему аутентификации, но я жестко кодирую его здесь для целей демонстрации). Мы хотим показывать содержимое на странице, если идентификатор находится в массиве, если нет, либо не показывать содержимое, ЛИБО перенаправлять их. Есть ли способ добиться этого без отображения css none?

Любые идеи или размышления были бы ему очень полезны.

Заранее спасибо!

Комментарии:

1. Возможно, в блоке else использовать header('Location: invalid.php'); exit; ?

2. Похоже, что это находится в середине страницы. Вы должны сделать это первым делом на странице, перед выводом, чтобы header можно было использовать.

Ответ №1:

Попробуйте это

 <?php

$valid = array("aa123", "aa34", "bb12");
$id = "pp123";
if (!in_array($id, $valid)) {
    exit("Not Valid, go away");
}
?>

<div id="the-page">The main content</div>

  

Или, если вы хотите перенаправить на какой-либо другой файл, сделайте это

 <?php

$valid = array("aa123", "aa34", "bb12");
$id = "pp123";
if (!in_array($id, $valid)) {
    header('Location: filename.php');
    exit();
}
?>

<div id="the-page">The main content</div>
  

Комментарии:

1. Помечаем это как ответ. Спасибо всем за вклад. Я использовал echo вместо перенаправления, но добавил exit, чтобы страница останавливалась. Таким образом, заголовок и сообщение о недоступности были видны.