Слишком много перенаправлений - PullRequest
3 голосов
/ 28 января 2011

Я не могу найти решение для этого.В основном мы используем систему тщеславных URL, поэтому ее 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 для входа в систему, он дал мне ошибку перенаправления.Может ли это быть проблема с сессиями или что-то с заголовками?

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

Это сообщение об ошибке, которое я получаю в 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.

Ответы [ 4 ]

11 голосов
/ 28 января 2011

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

3 голосов
/ 28 января 2011

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

2 голосов
/ 29 апреля 2012

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

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

0 голосов
/ 15 июля 2014

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

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

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

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

...