Задать вопрос
@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 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Skillfactory
    Профессия Fullstack веб-разработчик на JavaScript и PHP
    20 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 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))
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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