Странный заголовок («Местоположение:»);ошибка - PullRequest
1 голос
/ 24 августа 2010

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

На контроллере панели мониторинга я проверяю, установлена ​​ли переменная $ _SESSION ['loggedin'].Если он не установлен, я хочу отправить пользователя обратно на главную страницу.Тем не менее, я получаю сообщение об ошибке «слишком много перенаправлений», хотя оно устанавливается только один раз.Может кто-нибудь мне помочь?Заранее спасибо за помощь!

Вот мой код -

function index() {
    if(!isset($_SESSION['loggedin'])) {
        header("Location: ./");
    } else {
        die("The user is logged in.");
    }
}

Ответы [ 4 ]

5 голосов
/ 24 августа 2010

./ означает «здесь», так что да, вы перенаправляете по кругу.Вы, вероятно, имеете в виду /, root .

Поле заголовка Location действительно должно содержать полный абсолютный URL .Таким образом, вы должны перенаправить на http://example.com/.Относительные URL-адреса просто (неправильно) принимаются некоторыми браузерами.

2 голосов
/ 24 августа 2010

Это потому, что вы просто обновляете страницу.Это означает, что пользователь не перенаправлен на другой URL, он остается там, где был.

Вы используете неправильный путь для заголовка Location../ равно ., что является относительным путем и означает текущий путь .Конечно, вы хотите использовать /, который является абсолютным путем, т.е.это связано с корнем домена.

0 голосов
/ 24 августа 2010

В вашем случае вам может понадобиться использовать global для доступа к переменным сеанса.

0 голосов
/ 24 августа 2010

Я бы использовал абсолютные пути, это уменьшит возможные ошибки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...