@vladislav997

Как написать это условие по нормальному?

Есть такой код (пример прикрепляю), он хоть и рабочий, но написан коряво, подскажите, как его переписать по нормальному?
т.е. если незалогиненый юзер попытался зайти по какому-то урлу, по которому у него нет доступа, то его должно средиректить на логин-форму, но при этом если он зашел на signup, то он там должен остаться (логично, что сначала надо зарегаться)

if($_SERVER['REQUEST_URI'] != '/login' || $_SERVER['REQUEST_URI'] != '/signup' && empty($_SESSION['logged_user']))
	    {
	        if($_SERVER['REQUEST_URI'] == '/signup')
	        {
	            
	        }
	        elseif($_SERVER['REQUEST_URI'] == '/login')
	        {
	            
	        }
	        else
	        {
	            header("Location: /login");
	        }
	    }
  • Вопрос задан
  • 105 просмотров
Решения вопроса 1
@vdem
if (empty($_SESSION['logged_user']) && !in_array($_SERVER['REQUEST_URI'], ['/login', '/signup'])) {
    header('Location: /login');
}
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
usdglander
@usdglander Куратор тега PHP
Yipee-ki-yay
Если по нормальному, что через Router и Middleware.
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы