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

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

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