bllleee
1.02.2011, 16:44:44
Witam,
mam taki problem. Chciałbym zrobić przekierowanie na stronę błędu w momencie gdy z bazie nie ma powiedzmy artykułu o jakimś id. Strona jest postawiona na SMARTY najpierw generuje się część wspólna czyli jakieś menu, a następnie sprawdzam czy dany artykuł istnieje, operacje te są wykonywane w innym pliku niż index.php, który jest includowany do niego. Jeśli nie to wyświetlam info (normalnie w ramach strony), że taki artykuł nie istnieje. Chciałbym jednak wyświetlać stronę z błędem 404. Dodanie na początek pliku header("HTTP/1.0 404 Not Found") nic nie daje. Czy można to jakoś rozwiązać?
Mateusz
Po pierwsze, nie HTTP 1.0, a HTTP 1.1. Chyba nie zamierzasz obsługiwać przeglądarek z początku lat 90.
Sprawa ze stronami błędów wygląda w ten sposób, że nagłówek się jak najbardziej wysyła, ale przydałoby się jeszcze wysłać jakiś kod HTML z komunikatem "Błąd 404, coś tam nie istnieje". Tak, możliwe (a nawet zalecane) jest wtedy wysłanie własnego kodu HTML.
bllleee
1.02.2011, 17:06:51
Właśnie problem leży w tym, że nagłówek się nie wysyła. Pojawia mi się strona z komunikatem taka jakbym wyświetlał normalnie artykuł, a nie strona błędu. Jak wpiszę jakiś zupełnie kosmiczny adres w przeglądarce (taki nie pasujący do mod_rewrite) to wyświetla mi się strona błędu.
Czy jak wcześniej został wygenerowany normalny nagłówek html to czy wrzucenie w jakimś miejscu dodatkowo header("HTTP/1.1 404 Not Found") spowoduje, że będzie to strona błędu?
Dopóki nagłówki nie zostały wysłane, możesz je dowolnie zmieniać. Zakładam, że wiesz o tym, że wysłanie nawet pojedynczego bajtu normalnej treści uniemożliwia zmianę nagłówka. Zakładam też, że zrozumiałeś to, co napisałem poprzednio, że treść strony błędu musisz sam przygotować i wysłać razem z nagłówkiem.
bllleee
2.02.2011, 11:36:49
Cytat
Zakładam, że wiesz o tym, że wysłanie nawet pojedynczego bajtu normalnej treści uniemożliwia zmianę nagłówka.
To tłumaczy mi już wszystko. Wielkie dzięki za pomoc.
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.