#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, чтобы страница останавливалась. Таким образом, заголовок и сообщение о недоступности были видны.