Cytat(Crozin @ 23.12.2008, 08:10:38 )

@szagi: jeżeli ktoś świadomie najpierw wyświetla jakiś tekst, a potem dopiero wysyła nagłówki (tu ciasteczka) świadczy to tylko o jego poziomie.

Żeby nie było niejasności. Bardzo niskim poziomie

Pierwsze wersje PHP wysyłały do przeglądarki wszystko co było poza znacznikami
<?php ... ?>. Dosłownie wszystko.
To rodziło problemy, kiedy ktoś wstawił sobie enter po znaczniku zamykającym kod PHP a później (w kolejnym bloku lub innym pliku) chciał przesłać nagłówki.
Z tego powodu twórcy PHP postanowili dopisać bajer żeby
jedna pusta linia po tagu zamykającym była ignorowana. I tak też jest teraz. Zmiana była podyktowana wspomnianymi problemami oraz tym, że wg. wielu różnych standardów kodowania pojawia się zalecenie, żeby każdy plik kończyć pustą linią dlatego wiele edytorów doklejało tą linię.
No ale to jest kwestia jednej linii. A wyobraźmy sobie, że niechcący w projekcie liczącym setkę plików mamy po którymś znaczniku kończącym plik z kodem PHP dwie linie. Dostajemy gotowe
Cannot add header information - headers already sent.
Dlatego właśnie kończenie bloku za pomocą
?> nic nie daje a jego pominięcie daje czasem bardzo dużo, więc często zalecane jest pomijanie
?>. Z pominięciem tagów kończących jest napisany na przykład Zend Framework oraz symfony.