Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Zbyt wiele przekierowań
Forum PHP.pl > Forum > Przedszkole
sadistic_son
Cześć. Przy pomocy książki popełniłem taki oto kod, który niestety nie działa. Otrzymuję error o zbyt dużej ilości przekierowań:

Ta strona nie działa
Strona localhost spowodowała zbyt wiele przekierowań.
Usuń pliki cookie.
ERR_TOO_MANY_REDIRECTS


Proszę o pomoc, bo nie wiem nawet gdzie dokładnie szukać źródła problemu.

index.php
  1. require('config.php');
  2.  
  3. use Hajduk\Shortener;
  4.  
  5. $processor = new \Hajduk\Shortener\RequestProcessor();
  6.  
  7. switch ($_SERVER['HTTP_HOST']) {
  8. case ROOT_LANDING_URL:
  9. $processor->processLandingRequest($_SERVER['REQUEST_URI']);
  10. break;
  11. case ROOT_APP_URL:
  12. $processor->processAppRequest($_SERVER['REQUEST_URI']);
  13. break;
  14. case ROOT_SHORT_URL:
  15. $processor->processShortRequest($_SERVER['REQUEST_URI']);
  16. break;
  17. default:
  18. header("Location:https://" . ROOT_LANDING_URL);
  19. break;
  20. }



config.php
  1. <?php
  2. //Define DB params
  3. define("DB_HOST", "localhost");
  4. define("DB_USER", "xxx");
  5. define("DB_PASS", 'xxx');
  6. define("DB_NAME", "test");
  7.  
  8. //Define URL
  9. define("ROOT_LANDING_URL", "localhost/stronka");
  10. define("ROOT_APP_URL", "app.stronka.com");
  11. define("ROOT_SHORT_URL", "riy");
  12.  
  13. foreach (glob("app/*.php") as $filename) {
  14. include $filename;
  15. }
  16.  
  17. include("RequestProcessor.php");



RequestProcessor.php
  1. namespace Hajduk\Shortener;
  2.  
  3. class RequestProcessor
  4. {
  5. public function processShortRequest($request)
  6. {
  7. $shortener = new Shortener();
  8. $shortener->RedirectToDestinationUrl(
  9. '/',
  10. '',
  11. $request
  12. )
  13. );
  14. }
  15. public function processAppRequest($request)
  16. {
  17. $dashboard = new Dashboard($request);
  18. $dashboard->ProcessRequest();
  19. }
  20. public function processLandingRequest($request)
  21. {
  22. require("landing.view.php");
  23. }
  24. }



landing.view.php nie wklejam, bo to właściwie niemalże czysty html.

Dzięki z góry.
nospor
A patrzyles co dokladnie kryje sie pod $_SERVER['HTTP_HOST']?

var_dump($_SERVER['HTTP_HOST']); exit;
?
Salvation
Jedyne przekierowanie, w tym kodzie co wrzuciłeś, masz tutaj:
  1. default:
  2. header("Location:https://" . ROOT_LANDING_URL);
  3. break;

To chyba wystarczająca wskazówka? wink.gif

PS. Aj, nie odświeżyłem wątku przed napisaniem posta i dopiero teraz zauważyłem post od @nospor. Sorry.
sadistic_son
var_dump z $_SERVER['HTTP_HOST'] zwraca string(9) "localhost". Czyli jak rozumiem, to co powinno.


@Salvation:
No ok, no i ono przekirowuje do localhost/stronka. Czyli do adresu który chcę mieć. Czy mam rozumieć, że występuje tutaj zapętlenie? Wchodzę na localhost/stronka, która przekierowuje do localhost/stronka i tak w kółko?
nospor
Cytat
var_dump z $_SERVER['HTTP_HOST'] zwraca string(9) "localhost". Czyli jak rozumiem, to co powinno.


facepalmxd.gif

A potem to 'localhost' porownujesz z tektem 'localhost/stronka'
Jakim cudem te dwa teksty maja byc rowne?
sadistic_son
W config.php zmieniłem:

define("ROOT_LANDING_URL", "localhost/stronka");

na

define("ROOT_LANDING_URL", "localhost");

I teraz działa. Dlaczego? Pomóżcie zrozumieć.


EDIT:
@UP - racja. Teraz rozumiem gdzie był błąd.
Dziękuję.
nospor
Toz ci napisalem w poprzednim poscie czemu nie dzialalo

Moze zamiast brac sie za klasy, to wroc do podstaw, IF, SWITCH, co jak dziala bo naprawde juzprzesadzasz teraz tongue.gif
sadistic_son
Pisaliśmy w tym samym czasie tongue.gif
Dzięki za uszczypliwość tongue.gif
nospor
Cytat
Dzięki za uszczypliwość

Alez prosze, zawsze do uslug, tego u mnie wiele. czego nie mozna powiedziec o cierpliwosci biggrin.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.