2014-10-08 3 views
2

Я кодирую доступ «только для пользователей» для сайта, а когда пользователь не входит в систему на панели управления, перенаправляется на страницу входа.Передача переменных GET с использованием заголовка в PHP

<?php 
session_start(); 
$logged= $_SESSION['logged']; 

if(!$logged){ 
    header("Location:http://www.someweb.com/system/login.php?logged_off=1"); 
} 

?> 

но страница входа не получает переменную GET, можете ли вы рассказать, что я делаю неправильно?

+0

За исключением недостающего места после 'Местоположение:', ничего действительно не так с этим кодом. Вам придется отлаживать это самостоятельно. например do 'var_dump ($ _ GET)' в вашем скрипте входа. используйте отладчик браузера, чтобы узнать, есть ли какие-либо переадресации, которые могут быть лишены параметров и т. д. –

+0

Вы видите этот аргумент в перенаправленной адресной строке браузера? – Cheery

+0

Вы уверены, что это так? Что, если вместо этого вы действительно получите 404, который в результате перенаправляет вас на hp? – Sebas

ответ

3

При использовании header location, вы должны вызвать exit();

Почему? Поскольку выполнение скрипта не будет прекращено.

Скобки () являются необязательными, exit - это языковая конструкция, а не функция, и на самом деле это плохая идея (у PHP больше работы, если они существуют), просто ужасная привычка.

+0

Смотри, что я нашел ... http://stackoverflow.com/a/2747803/ - передай соль. –

+2

Theres нет новых вопросов по S.O только новые способы спросить (и ответить) –

+0

Точно. Существует несколько способов попросить охотника/ловушку о том, как обмануть wiki. –

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