Слишком много редиректов

Я не могу найти решение этого. В основном мы используем систему адресов тщеславия, поэтому это user.domain.com. Доступ ко всем файлам осуществляется как user.domain.com/home.php и т. д. Когда вы очищаете куки, перенаправления работают, им предлагается снова войти в систему. Но когда я использую выход из системы, он все еще работает, но когда они возвращаются к ссылке для входа в систему (user.domain.com, имеет форму входа на целевой странице для пользователя), это не сработает. Ошибка, которую я получаю,

Сообщение об ошибке:

              The page isn't redirecting properly



               Firefox has detected that the server is redirecting the request for this address
               in a way that will never complete.


               This problem can sometimes be caused by disabling or refusing to accept
      cookies.

Код перенаправления для всех страниц участников:

         if(!isset($_SESSION['user_name'])) { header("Location: http://$_SERVER[HTTP_HOST]");}
         Note:  The $_SERVER[HTTP_HOST] captures the user.domain.com value for redirect. 

Код выхода:

          <?php


            session_start();
            session_destroy();

            header( 'Location: $_SERVER[HTTP_HOST]' ) ;
              ?>

Единственный способ решить эту проблему — удалить файлы cookie.

ОБНОВЛЕНИЕ: после использования logout.php я перешел на одну из страниц участников user.domain.com/home.php вместо перенаправления на user.domain.com для входа в систему, это дало мне ошибку перенаправления. Может ли это быть проблемой с сессиями или чем-то с заголовками?

Что я могу улучшить или добавить, чтобы исправить это? Я пробовал гуглить, но не нашел ничего особенного в этом. Мне действительно нужна помощь в исправлении этого. Спасибо.

Это сообщение об ошибке, которое я получаю в Safari:

       Too many redirects occurred trying to open “http://user.domain.com/home.php”.
      This might occur if you open a page that is redirected to open another page which then is  redirected to open the original page.

person AAA    schedule 28.01.2011    source источник
comment
Вы делаете die() после перенаправления заголовка?   -  person Pekka    schedule 28.01.2011
comment
Ни в одном из заголовков нет die().   -  person AAA    schedule 28.01.2011
comment
Я попытался использовать его после кода сеанса. все еще дает ту же проблему.   -  person AAA    schedule 28.01.2011


Ответы (4)


Браузер мешает вам забить сервер кучей запросов. Скорее всего, это связано с тем, что header() отправляет вас на страницу, которая, в свою очередь, отправляет вас на ту же страницу (или страницу с тем же header()).

person Prisoner    schedule 28.01.2011

Скорее всего, это происходит из-за того, что вас перенаправляют на ту же страницу выхода. Я бы попробовал установить другое место.

person Josh K    schedule 28.01.2011

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

Лучше всего - отладьте свой код и посмотрите, входите ли вы повторно на страницу с теми же строками запроса/параметрами сообщения...

person thedrs    schedule 29.04.2012

Проблема может заключаться в странице, на которую вы пересылаете, а не на странице, с которой вы пересылаете. Это случилось со мной, когда страница, на которую я перенаправлял (home.php) со страницы forwardingPage.php, не прошла проверку подлинности.

Формат на принимающей странице home.php был

если проверка аутентификации проходит... сделайте это, если проверка аутентификации не удалась, используйте функцию заголовка для пересылки обратно на тот же forwardingPage.php

Проверка аутентификации каждый раз давала сбой, поэтому страница перенаправлялась, а затем возвращалась к самой себе. Я исправил проверку аутентификации, и проблема решена

person cormacio100    schedule 15.07.2014