Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Błąd 404 dla braku danych w bazie
Forum PHP.pl > Forum > PHP
bllleee
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
Zyx
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
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?
Zyx
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
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.
Invision Power Board © 2001-2025 Invision Power Services, Inc.