![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 1 190 Pomógł: 27 Dołączył: 23.04.2005 Ostrzeżenie: (0%) ![]() ![]() |
Piszę tego posta w tym dziale, bo sam nie wiem w czym problem - na pewno nie w php. Korzystam z apache 2.0.58 i php 5.2.0.
Mam dosyć dużą aplikację, która została tak zaprojektowana, że wszystkie headery wysyłam na samym początku, zbudowana o wzorzec MVC. Jakiś czas temu potrzebowałem kalendarz w JS i znalazłem pod adresem: http://www.kubiczek.biz/uploaded/datetimepicker.zip Po dodaniu dwóch linijek aplikacj sypie błędami (...)headers already sent(...) Szczerze - nie wiem w czym problem.. Przy poniższym kodzie brak problemów
Przy poniższym kodzie występuję błąd jak w tytule posta Przy poniższym kodzie brak problemów Proszę o pomoc EDIT: Przeprowadziłem małe testy.. Wyniki są dla mnie zaskakujące - nie potrafię ich racjonalnie wytłumaczyć.. Brak błędu headers...
Błąd headers already sent...
Czy jest ograniczona ilość znaczników meta/itp, którą można zamieścić w sekcji head ? Ten post edytował nospor 4.12.2007, 10:26:05 -------------------- ”Godzina nauki w życiu nowoczesnego apostoła jest godziną modlitwy.”
(św. Josemaría Escrivá, Droga, 335) |
|
|
![]()
Post
#2
|
|
![]() Developer Grupa: Moderatorzy Postów: 3 045 Pomógł: 290 Dołączył: 20.01.2007 ![]() |
Błąd wyskakuje bo wysyłasz coś do przeglądarki (print, echo) lub tworzysz cookie, przed wysłaniem nagłówków. Najszybszym rozwiązaniem jest użycie ob_start" title="Zobacz w manualu PHP" target="_manual.
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 1 190 Pomógł: 27 Dołączył: 23.04.2005 Ostrzeżenie: (0%) ![]() ![]() |
Błąd wyskakuje bo wysyłasz coś do przeglądarki (print, echo) lub tworzysz cookie, przed wysłaniem nagłówków. Najszybszym rozwiązaniem jest użycie ob_start" title="Zobacz w manualu PHP" target="_manual. Proponuje przeczytać dokładnie to co napisałem a nie klepać gotowych rozwiązań przeczytanych w innych postach. -------------------- ”Godzina nauki w życiu nowoczesnego apostoła jest godziną modlitwy.”
(św. Josemaría Escrivá, Droga, 335) |
|
|
![]()
Post
#4
|
|
![]() Developer Grupa: Moderatorzy Postów: 3 045 Pomógł: 290 Dołączył: 20.01.2007 ![]() |
Z treści błędu jasno wynika że coś wcześniej zostało wysłane do przeglądarki i nie wydaje mi się żeby to co napisałeś powodowało błąd.
P. S. Nie dość że próbuje Ci pomóc to jeszcze mnie oskarżasz o "klepanie gotowych rozwiązań przeczytanych w innych postach". Równie dobrze mógłbym powiedzieć że bezmyślnie skopiowałeś skopiowałeś kalendarz i nie umiesz umieścić go na stronie. |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 1 190 Pomógł: 27 Dołączył: 23.04.2005 Ostrzeżenie: (0%) ![]() ![]() |
Z treści błędu jasno wynika że coś wcześniej zostało wysłane do przeglądarki i nie wydaje mi się żeby to co napisałeś powodowało błąd. P. S. Nie dość że próbuje Ci pomóc to jeszcze mnie oskarżasz o "klepanie gotowych rozwiązań przeczytanych w innych postach". Równie dobrze mógłbym powiedzieć że bezmyślnie skopiowałeś skopiowałeś kalendarz i nie umiesz umieścić go na stronie. Klepiesz gotowe rozwiązania. Mało tego myślę że nabijasz posty. Gdybyś przeczytał to co napisałem szczególnie bo pogrubionym napisie "EDIT:" to zauważyłbyś że z kalendarzem nie ma to nic wspólnego. Z testów wynika, że w <head> po umieszczeniu jednego wpisu więcej zaczyna pojawiać się błąd. Pozostały kod pozostał bez zmian. Więc wcześniej nic nie mogłem wysłać do przeglądarki, skoro raz działa a raz nie. Pomyśl logicznie. Doceniam to że starasz się pomóc ale staraj się także czytać dokładnie i analizować fakty a nie zakładać z góry, że skoro pojawia się taki błąd to jedynym rozwiązaniem jest ob_start. Bo tak się składa, że to nie jest rozwiązanie. Równie dobrze mógłbym wyłączyć wyświetlanie błędów w pliku konfiguracyjnym. Ale nie tędy droga. pzdr Ten post edytował Jarod 24.11.2007, 22:52:52 -------------------- ”Godzina nauki w życiu nowoczesnego apostoła jest godziną modlitwy.”
(św. Josemaría Escrivá, Droga, 335) |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 1 319 Pomógł: 118 Dołączył: 26.11.2003 Skąd: Lublin Ostrzeżenie: (0%) ![]() ![]() |
to musi byc wina wysylanych naglowkow przez PHP, nie wiem czego tak wjezdzasz na webdice
html Ci tego nie wyrzuci po wywaleniu tej linii zapewne bledu nie bedzie cos namieszales wylaczajac bledy, nie rozwiazesz problemu z naglowkami, nie beda przekazywane, tylko blad sie nie wyswietli z uzyciem ob_start()... nie bedzie bledu, no i naglowki pojda -------------------- scriptun.com. Startup z poradnikami do gier ttp.zone i ttpzone.pl
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 1 190 Pomógł: 27 Dołączył: 23.04.2005 Ostrzeżenie: (0%) ![]() ![]() |
to musi byc wina wysylanych naglowkow przez PHP, nie wiem czego tak wjezdzasz na webdice html Ci tego nie wyrzuci po wywaleniu tej linii zapewne bledu nie bedzie cos namieszales Po wywaleniu tej linijki błędy nadal są.. z uzyciem ob_start()... nie bedzie bledu, no i naglowki pojda Nie satysfakcjonuje mnie takie rozwiązanie. -------------------- ”Godzina nauki w życiu nowoczesnego apostoła jest godziną modlitwy.”
(św. Josemaría Escrivá, Droga, 335) |
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 1 319 Pomógł: 118 Dołączył: 26.11.2003 Skąd: Lublin Ostrzeżenie: (0%) ![]() ![]() |
nie pokazujesz nam chyba calego kodu, cos tam musi jeszcze siedziec
![]() -------------------- scriptun.com. Startup z poradnikami do gier ttp.zone i ttpzone.pl
|
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 1 190 Pomógł: 27 Dołączył: 23.04.2005 Ostrzeżenie: (0%) ![]() ![]() |
nie pokazujesz nam chyba calego kodu, cos tam musi jeszcze siedziec ![]() Cały kod? Masz czas na analizowanie ponad 300 plików z klasami? ![]() Zrobiłem kolejny test.. Sprawdźcie sami.. index.php
Komunikat "Warning: Cannot modify header information - headers already sent by...". Usuńcie jedną linijkę <link style...> i wszystko jest ok. Kto mi to wytłumaczy? Sprawdzałem najnowszą wersję php i apache (myślałem że to jakiś bug..) -------------------- ”Godzina nauki w życiu nowoczesnego apostoła jest godziną modlitwy.”
(św. Josemaría Escrivá, Droga, 335) |
|
|
![]()
Post
#10
|
|
![]() Developer Grupa: Moderatorzy Postów: 3 045 Pomógł: 290 Dołączył: 20.01.2007 ![]() |
Daj zipa z wszystkim tak żeby można było to łatwo uruchomić.
|
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 243 Pomógł: 32 Dołączył: 14.06.2007 Ostrzeżenie: (0%) ![]() ![]() |
W tym ostatnim przykładzie wywołujesz funkcję header() w sekcji <body>, gdy już kawał HTML'a został wysłany. Przenieś to na sam początek i profilaktycznie dodaj po nim jeszcze funkcję exit() - powinno pomóc. Ew. pobaw się z buforowaniem strony.
-------------------- |
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 1 190 Pomógł: 27 Dołączył: 23.04.2005 Ostrzeżenie: (0%) ![]() ![]() |
@webdicepl: Nie mogę - kod nie jest darmowy. Przetestuj na ostatnim kawałku kodu który podałem - bardzo prosty test.
@SirZooro: Funkcję header() specjalnie umieściłem w body.. Bo nie rozumiem dlaczego raz wywala błąd a raz nie.. Tak jakby to było uzależnione od ilości danych w sekcji <head>. Czy ktoś to potrafi wytłumaczyć. Pomińcie pierwsze przykłady. Przetestujcie ostatni, który podałem. -------------------- ”Godzina nauki w życiu nowoczesnego apostoła jest godziną modlitwy.”
(św. Josemaría Escrivá, Droga, 335) |
|
|
![]()
Post
#13
|
|
![]() Grupa: Zarejestrowani Postów: 23 Pomógł: 2 Dołączył: 26.04.2007 Ostrzeżenie: (0%) ![]() ![]() |
Myślę, że bez podania choćby kawałka kodu nikt Ci nie pomoże. To, co piszesz jest delikatnie mówiąc "absurdalne". W Twoim ostatnim przykładzie choćby nie wiem co się zamieściło przed wywołaniem header() to zawsze będzie błąd. Wystarczy, że będzie tam tylko spacja! I nie chodzi mi tu o kod HTML, który nie ma nic wspólnego z tym błędem, tylko o PHP;)
|
|
|
![]()
Post
#14
|
|
Grupa: Zarejestrowani Postów: 1 190 Pomógł: 27 Dołączył: 23.04.2005 Ostrzeżenie: (0%) ![]() ![]() |
![]() Przecież zamieściłem kod.. W swoim programie powiedzmy, że miałem błąd (już wiem gdzie) ale nie zauważyłem go, bo dopóki nie dodałem kolejnego wpisu w sekcji <head> nie wyświetlał się... Koledzy utwórzcie plik index.php o takiej zawartości.
i odpalcie go. Powinien pojawić się błąd "Headers already sent...". I bardzo dobrze - bo próbuję wysłać nagłówek po tym, jak wyświetliłem w przeglądarce tekst... A teraz z tego samego pliku, z sekcji <head> usuńcie wpis <link rel="stylesheet" href="Css/t54.css" type="text/css" /> i odpalcie w przeglądarce jeszcze raz plik index.php. Teraz zostaniecie przekierowani na stronę googla.. Dlaczego? Przecież dalej wysyłam nagłówek po wyświetleniu w przeglądarce tekstu "test"... Chciałbym, żeby ktoś mi wytłumaczył dziwne zachowanie php, opierając się na tym przykładzie... Nie proszę o nic innego tylko o skopiowanie powyższego kodu i wklejenie go do pliku index.php i przetestowaniu.. Nie wiem jeszcze jak to wytłumaczyć.. Mam nagrać filmik? -------------------- ”Godzina nauki w życiu nowoczesnego apostoła jest godziną modlitwy.”
(św. Josemaría Escrivá, Droga, 335) |
|
|
![]()
Post
#15
|
|
![]() Grupa: Moderatorzy Postów: 6 072 Pomógł: 861 Dołączył: 10.12.2003 Skąd: Dąbrowa Górnicza ![]() |
Hmmm mnie od razu przenosi na google, nic nie muszę usuwać. Nie powiem, ciekawe
![]() OT & Edit: Hmmm teraz zauważyłem, że przestało mi się wyświetlać "Cannot modify..." :| wszelkie display_errors mam włączone. Może gdy swego czasu aktualizowałem PHP do 5.2.4 to wtedy coś się namieszało? Ten post edytował phpion.com 25.11.2007, 21:26:58 |
|
|
![]()
Post
#16
|
|
Grupa: Zarejestrowani Postów: 1 190 Pomógł: 27 Dołączył: 23.04.2005 Ostrzeżenie: (0%) ![]() ![]() |
Mam włączone wyświetlanie wszystkich błędów + E_STRICT. Zmieniałem php na najnowszą wersję i apacha także. Zachowanie pozostaje takie samo. Dla niedowiarków do pobrania filmik (spakowany zipem).
Filmik Wirtualna gorzałka dla tego kto potrafi to wytłumaczyć ![]() -------------------- ”Godzina nauki w życiu nowoczesnego apostoła jest godziną modlitwy.”
(św. Josemaría Escrivá, Droga, 335) |
|
|
![]()
Post
#17
|
|
Grupa: Zarejestrowani Postów: 12 Pomógł: 0 Dołączył: 18.04.2007 Ostrzeżenie: (0%) ![]() ![]() |
![]() ![]() |
|
|
![]()
Post
#18
|
|
![]() Grupa: Zarejestrowani Postów: 1 319 Pomógł: 118 Dołączył: 26.11.2003 Skąd: Lublin Ostrzeżenie: (0%) ![]() ![]() |
ostatnio mialem podobny problem, robiac kodowanie UTF-8
kwestia tego ze nie ktore edytory zle wstawiaja znaki o tym kodowaniu, cos szukalem w googlach, nie wiem czy dobrze zrozumialem, ale to powoduje wyslanie jakiegos cookies do przegladarki proponuje zmienic edytor bylem w szoku, ze to pomoglo php expert editor swietnie sobie radzi z UTF-8 -------------------- scriptun.com. Startup z poradnikami do gier ttp.zone i ttpzone.pl
|
|
|
![]()
Post
#19
|
|
Grupa: Zarejestrowani Postów: 1 190 Pomógł: 27 Dołączył: 23.04.2005 Ostrzeżenie: (0%) ![]() ![]() |
Korzystam z eclipse no ale sprawdzę..
-------------------- ”Godzina nauki w życiu nowoczesnego apostoła jest godziną modlitwy.”
(św. Josemaría Escrivá, Droga, 335) |
|
|
![]()
Post
#20
|
|
Grupa: Zarejestrowani Postów: 28 Pomógł: 0 Dołączył: 23.11.2003 Ostrzeżenie: (0%) ![]() ![]() |
Usuń odstęp między
a i jest OK Nawet we wklejonym kodzie widać że masz spacje w tej pustej linijce |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 7.07.2025 - 04:45 |