Задать вопрос
@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 слаб, но стараюсь. А тут ничего не выходит.
Заранее благодарю
  • Вопрос задан
  • 144 просмотра
Подписаться 1 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Skillbox
    Веб-разработчик на PHP
    9 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Stepik
    Язык программирования PHP
    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))
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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