Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Dziwne zachowanie php przy uzyciu funkcji header
Forum PHP.pl > Forum > PHP
NoiseMc
Po wpisaniu http://url/akcja/JakisParametr przenosze przegladarke z 301 na http://url/jakis-parametr.

jakis-parametr to ma byc url slug szkoly. ktorej dane wyswietlam tak wiec najpierw sprawdzam czy szkola o takim url istnieje:
  1. <?php
  2. $schools = $aycacc->getSchoolList();
  3.  
  4. $requestedUrlSlug = $requestArgs[0];
  5. $selectedProgram = $_GET['program'];
  6.  
  7. $schoolID = null;
  8. $schoolExists = false;
  9.  
  10. foreach($schools as $school)
  11. {
  12. $urlSlug = $school['url_slug'];
  13.  
  14. if ($urlSlug == $requestedUrlSlug)
  15. {
  16. $schoolID = $school['schoolID'];
  17. $schoolExists = true;
  18. }
  19. }
  20. ?>


Zalozmy ze znalazlem szkole i powinienem ja wyswietlic, ale na wypadek jakby nie zostala znaleziona to:
  1. <?php
  2. if (! $schoolExists)
  3. {
  4. header ('Location: /.');
  5. exit ();
  6. }
  7. ?>


I tu sie zaczynaja czary, bo nawet jezeli $schoolExists == true, a nawet $schoolExists === true to ta linijka z headerem zostaje wykonana to znaczy przenosi mnie do strony glownej. Co dziwne jezeli przed ta linijka w srodku instrukcji warunkowej wrzuce print ('Cos tam'); to nie drukuje mi tego na ekranie co znaczy ze jednak nie wchodzi w te klamerki, jezeli natomiast usune ten plrint to robi header.
Inna sytuacja, jezeli przed tym if-em ustawie na chama $schoolExists = true to header sie nie wykonuje.
Moze ma to jakis zwiazek z tym ze wchodze na ta strone z innego przekierowania, zglupialem i nie jestem w stanie tego w zaden sposob logicznie wytlumaczyc.
qqrq
OK, ale te dwa kody są w różnych plikach, czy w tym samym?
NoiseMc
Ok sorry, moja kulpa wlasnie zobaczylem ze po 301 nie dalem exit ();

PS. Jakby ktos kiedys szukal info na temat przekierowan i trafil tutaj to moja rada: zawsze po header (); uzywajcie exit (); oszczedzicie sobie paru minut klopotow winksmiley.jpg
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.