Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Dziwne zachowanie php przy uzyciu funkcji header
NoiseMc
post 4.09.2007, 18:30:29
Post #1





Grupa: Zarejestrowani
Postów: 398
Pomógł: 10
Dołączył: 24.11.2004
Skąd: Łódź

Ostrzeżenie: (0%)
-----


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.


--------------------
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
qqrq
post 4.09.2007, 18:35:50
Post #2





Grupa: Zarejestrowani
Postów: 418
Pomógł: 8
Dołączył: 16.11.2006

Ostrzeżenie: (0%)
-----


OK, ale te dwa kody są w różnych plikach, czy w tym samym?


--------------------
Go to the top of the page
+Quote Post
NoiseMc
post 4.09.2007, 18:35:50
Post #3





Grupa: Zarejestrowani
Postów: 398
Pomógł: 10
Dołączył: 24.11.2004
Skąd: Łódź

Ostrzeżenie: (0%)
-----


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


--------------------
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 19.07.2025 - 05:49