2016-01-20 4 views
1

Я использую вызов в location() функции в моем файле конфигурации, но он держит меня перенаправляет на страницу творю, чтобы перейти в вызове к нему,Использование `Header (" Location: ...) `

Я делаю это:

if (!isset($_SESSION['user_login_name']) || !isset($_SESSION['user_logged_in'])) 
{ 
    header("Location: /login/"); 
    exit(); 
} 

что такое лучший способ сделать так, чтобы сервер знал, что на странице входа в систему, а не переадресовывать назад к этому бесконечно

+0

Установка заголовка, как этот 'заголовок («Location: ....»)' немедленно выдает редирект. Можете ли вы объяснить, что именно вы хотите сделать? Если вы хотите перенаправить пользователя, когда он/она вошел в систему правильно, вы должны переместить этот оператор, где вы проверяете учетные данные пользователя и задаете переменные $ _SESSION. В противном случае - конечно - можно перенаправить бесконечно. – hherger

+0

Я хочу, чтобы иметь возможность перенаправлять пользователя в папку/login/file, где находится индексный файл, это значит, что они регистрируются независимо от того, что можно получить на сайте, поэтому мне нужен способ проверьте, не является ли активная страница не индексным файлом в каталоге входа. Также вы можете увидеть в вопросе, я использую 'header (" Location:/login/");' для изменения местоположения, '...' был заполнителем пробелов – swiftie821

+0

Я думаю, что нет необходимости идентифицировать саму страницу. Если какие-либо скрипты страниц проверяют учетные данные, как в вашем примере **, но на странице login.php **, перенаправление будет выполняться только тогда, когда пользователь не войдет в систему. – hherger

ответ

0

Я думаю, что лучший способ? сделайте это, чтобы проверить $_SERVER, чтобы увидеть, является ли текущий скрипт в каталоге /login/, это может выглядеть следующим образом:

if (!isset($_SESSION['user_login_name']) || !isset($_SESSION['user_logged_in'])) 
{ 
    if ($_SERVER['SCRIPT_NAME'] !== '/login/index.php') 
    { 
     header("Location: /login/"); 
     exit(); 
    } 
} 
+0

Спасибо за это, я проверю! – swiftie821

+0

Это сработает. С другой стороны, недостаток заключается в том, что скрипт будет привязан к каталогу и должен иметь имя, которое вы проверяете. Что, когда страница входа в систему перемещается в каталог '/ admin /' и переименовывается как 'login.php'? – hherger

+0

@hherger, тогда OP может изменить условный оператор или добавить дополнительный –

Смежные вопросы