Задать вопрос
@Azami

Как заставить условия работать?

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

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

<?php $user = cmsUser::getInstance();
if ((($user->is_logged) && ($_SERVER['REQUEST_URI'] != '/page-1' || $_SERVER['REQUEST_URI'] != '/page-2')) 
 
|| 

((!$user->is_logged) && ($_SERVER['REQUEST_URI'] != '/' || $_SERVER['REQUEST_URI'] != '/index.php' || $_SERVER['REQUEST_URI'] != '/page-3'))) { ?>
 
 <div class="is_left_menu_main">
<?php $this->widgets('left-menu-main'); ?>
</div>
 
<?php } ?>


В php слаб, но стараюсь. А тут ничего не выходит.
Заранее благодарю
  • Вопрос задан
  • 143 просмотра
Подписаться 1 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 2
Какая-то адовая смесь получилась.

Для начала стоит разделить условие "пользователь авторизован"/"пользователь не авторизован". Потом убедиться, что логика сравнения правильная.

if ($user->is_logged) {
  if ($_SERVER['REQUEST_URI'] == '/page-1' || $_SERVER['REQUEST_URI'] == '/page-2') {
    // пользователь авторизован и запрашивает page-1 или page-2
  }
} else {
  if ($_SERVER['REQUEST_URI'] == '/' || $_SERVER['REQUEST_URI'] == '/index.php' || $_SERVER['REQUEST_URI'] == '/page-3') {
    // Пользователь не авторизован и запрашивает /, index.php или page-3
  }
}
Ответ написан
UZEIR
@UZEIR
Учусь. Пытаюсь развиваться.
Во втором случае вместо ! попробуй так
((empty($user->is_logged))
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы