Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> headers already sent
smiady
post 25.12.2014, 21:04:46
Post #1





Grupa: Zarejestrowani
Postów: 137
Pomógł: 2
Dołączył: 2.07.2007
Skąd: Ostrzeszów

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


Witam.

Mam taki problem. W systemie często będę korzystać z try catch:
  1. try {
  2. throw new Exception('Testowy błąd', 0);
  3. } catch(Exception $e) {
  4. Klasa::metoda($e);
  5. }

Podana metoda zapisuje do bazy danych informacje o błędzie(jaka strona, która linijka, typ błędu itd).
Następnie chce, aby pokazała się strona błędu header('Location: error.php').
Generalnie jak mam try catch, który obejmuje całą zawartość kodu w pliku to jest ok, ale w przypadku
gdy przed try coś występuje np echo 'x'; no to jest problem, bo wyskoczy wiadomy przez większość błąd:
headers already sent ...
Jest na to jakieś rozwiązanie czy ograniczyć się tylko do komunikatu typu echo $e->getMessage questionmark.gif?

Znalazłem rozwiązanie, które działa w pliku php.ini output buffering zmienić na On - tylko pytanie jakie inne konsekwencje
ta zmiana będzie miała na mój system oprócz tej jednej pozytywnej ?

Ten post edytował smiady 25.12.2014, 21:17:51
Go to the top of the page
+Quote Post
sazian
post 25.12.2014, 21:25:50
Post #2





Grupa: Zarejestrowani
Postów: 1 045
Pomógł: 141
Dołączył: 19.09.2006
Skąd: B-tów

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


zainteresuj się "widokami" (v w modelu mvc) czyli systemami szablonów,
najpierw tworzysz wszystko co ma być wyświetlone, upychasz to w widoku, a dopiero w ostatnim kroku to wyświetlasz. Przy takim rozwiązaniu header zawsze będzie wywoływany przed wyświetleniem widoku
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: 18.07.2025 - 00:31