![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 1 190 Pomógł: 27 Dołączył: 23.04.2005 Ostrzeżenie: (0%) ![]() ![]() |
Funkcję ob_start() można wykorzystać na 2 sposoby:
1. do buforowania pobranych stron 2. (najczęściej) do ominięcia komunikatu "(...)headers already sent by (...)" Ostatnio spotkałem się z opinią, że wykorzystywanie ob_start() do drugiego przypadku jest jak stosowanie globali.. Dlatego też chciałbym poznać Wasze zdanie na ten temat. Czy uważacie, że to "błąd programistyczny"? Przecież nie raz chcemy przekierować stronę za pomocą header('Location: ' . 'http://somehost/somesite/'); ale to zależy od pewnych warunków i nie da się wcześniej uniknąć nie wysyłnia danych do przęglądakri.. (?) |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Przyjaciele php.pl Postów: 7 494 Pomógł: 302 Dołączył: 31.03.2004 Ostrzeżenie: (0%) ![]() ![]() |
To nadal jest błąd.
Najpierw programista powinien się zdecydować co chce wygenerować/pokazać a potem to pokazać. Widok powinien być oddzielony od logiki strony. |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 1 190 Pomógł: 27 Dołączył: 23.04.2005 Ostrzeżenie: (0%) ![]() ![]() |
Widok powinien być oddzielony od logiki strony. Ok jak stosujesz MVC. Ale jak piszesz skrypt mieszając wszystko.. Kiedyś nikt nie słyszał o MVC. Najpierw programista powinien się zdecydować co chce wygenerować/pokazać a potem to pokazać. Ale w klasycznym stylu, gdzie plik index.php zawiera nagłówek, menu i stopkę a środek strony generowany jest przez instrukcje switch (czyli includowane są odpowiednie pliku na podstawie np wartości $_GET NIE DA SIĘ zaplanować nagłówka. Trzeba by generować całą strone, albo ładować wszystko do jednej zmiennej a później wyświetlać.. Pozwoliłem sobie dopisać. Poniżej link do posta, w którym kolega próbuje przekierować użytkownika na inna stronę po wysłaniu maila. Temat: php wysylanie formularza na dwa adresy email Ciężko coś takiego osiągnąć bez ob_start(). Chyba, że w głównym pliku w sekcji head zamieścimy warunki, które będą sprawdzały określony parametr $_GET i na podstawie tego ustawiały odpowiednie meta. Przy dużych aplikacjach łatwo o pomyłkę i mało elastyczne.. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 9.10.2025 - 17:21 |