Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Cannot modify header information - headers already sent by
mizii
post 30.09.2020, 00:27:17
Post #1





Grupa: Zarejestrowani
Postów: 86
Pomógł: 1
Dołączył: 19.10.2015

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


Napotkalem na taki problem:

Cannot modify header information - headers already sent by (output started at /plik1.php:73) in /plik2.php on line 23

gdzie plik 1 w 73 linijce ma po prostu

  1. echo '<a href="index.php?id=wgrupie&idgrupy=8&miesiac='.$poprzednimiesiac.'&rok='.$rok2.'"><<</a> '.$miesiac.'-'.$rok.'<a href="index.php?id=wgrupie&idgrupy=8&miesiac='.$nastepnymiesiac.'&rok='.$rok3.'"> >></a>';


jest to przeskakiwanie w kalendarzu miesiac w przod miesiac w tyl, a linijka 23 w pliku2 to po prostu require_once pliku z funkcja do kalendarza.

dodam tylko ze problem wystepuje przy dodaniu wpisu na shoutboxie

  1. if ($ustawieniawgrupie['shoutbox'] == '1')
  2. {
  3. require_once "shoutbox_wgrupie_formularz.php";
  4. require_once "shoutbox_wgrupie.php";
  5. require_once "shoutbox_ogolny_odswiezanie.php";
  6. }


pierwszy plik to najprostszy formularz w htmlu,
plik drugi to dodanie wpisu do bazy i wyswietlenie po nacisnieciu guziku wyslij w formularzu,
plik trzeci to skrypt w js odswiezajacy div z shoutboxem.

jezeli wykomentuje plik1 zawierajacy link napisany wyzej, to problem nie wystepuje.


ktos pokieruje gdzie szukac rozwiazania?

Go to the top of the page
+Quote Post
Tomplus
post 30.09.2020, 05:16:55
Post #2





Grupa: Zarejestrowani
Postów: 1 834
Pomógł: 225
Dołączył: 20.03.2005
Skąd: Będzin

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


Taki błąd występuje gdy przesyłasz jakiś znak przed nagłówkiem strony.
Może to być tylko odstęp przed <?

a może to być to echo co podałeś powyżej. Musiałbyś podać więcej kodu, szczególnie z początku.

Go to the top of the page
+Quote Post
gino
post 30.09.2020, 06:44:40
Post #3





Grupa: Zarejestrowani
Postów: 319
Pomógł: 52
Dołączył: 18.02.2008

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


W tym błędzie chodzi o to, że funkcje wysyłające albo modyfikujące nagłówek http muszą być wywoływane przed wykonaniem jakichkolwiek danych wyjściowych.
Do takich funkcji modyfikujących należy m.in. header, setcookie, session_start.Taki błąd może być nieumyślny, czyli to co pisał tomplus, np. białe znak (np. spacja) przed <?php lub po ?>, komunikaty o błędach wynikłe z działania innego pliku itp., oraz zamierzone czyli np. użycie echo czy print. Sprawdź to a znajdziesz swój błąd.

gino
Go to the top of the page
+Quote Post
SmokAnalog
post 30.09.2020, 08:04:03
Post #4





Grupa: Zarejestrowani
Postów: 1 707
Pomógł: 266
Dołączył: 3.07.2012
Skąd: Poznań

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


Gino, nie musisz się podpisywać pod postem. oneeyedsmiley02.png
Go to the top of the page
+Quote Post
mizii
post 30.09.2020, 12:52:46
Post #5





Grupa: Zarejestrowani
Postów: 86
Pomógł: 1
Dołączył: 19.10.2015

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


problematyczny okazał sie nagłówek header.
Dziękuje wszystkim za nakierowanie smile.gif do zamknięcia smile.gif
Go to the top of the page
+Quote Post
Tomplus
post 30.09.2020, 15:13:30
Post #6





Grupa: Zarejestrowani
Postów: 1 834
Pomógł: 225
Dołączył: 20.03.2005
Skąd: Będzin

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


Ale mieliśmy rację tak?
Dałeś header gdzie w kodzie np.

Kod
echo "somethings";
if (condition) {
   header("Location: page");
}


Ten post edytował Tomplus 30.09.2020, 15:13:56
Go to the top of the page
+Quote Post
mizii
post 12.10.2020, 02:46:55
Post #7





Grupa: Zarejestrowani
Postów: 86
Pomógł: 1
Dołączył: 19.10.2015

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


Cytat(Tomplus @ 30.09.2020, 16:13:30 ) *
Ale mieliśmy rację tak?
Dałeś header gdzie w kodzie np.

Kod
echo "somethings";
if (condition) {
   header("Location: page");
}


przepraszam ze odpisuje po takim czasie ale tak dokladnie tak smile.gif
jakies rady na przyszlosc jak sie wystrzegac takich bledow?
Czasami mi sie zdarzaja ze header wywala mi taki blad i nie specjalnie wtedy wiem jak sobie z nim poradzic...

wydaje mi sie ze w moim przypadku nie sa bledem czyste znaki tylko definiowanie blokow html przed naglowkiem header, chyba nie do konca rozumiem dzialanie tego mechanizmu tongue.gif
predzej czesto robilem formularz w jednym pliku dodanie do bazy oraz formularz.

  1. if(isset($_POST['send']))
  2. {
  3. //funkcja dodawania do bazy
  4. header /naglowek ktory sie krzaczy a ma za zadanie kasowanie zmiennej post aby nie duplikowaly sie inforamcje po odswiezeniu
  5. }
  6. else
  7. {
  8. formularz
  9. }


a jak rozbije to na dwa osobne pliki i w polu action dam przekierowanie do pliku z funkcji warunkowej a nastepnie na jego koncu zrobie header do pliku z formularzem to wszystko dziala i problem nie wystepuje

Ten post edytował mizii 12.10.2020, 03:08:33
Go to the top of the page
+Quote Post
viking
post 12.10.2020, 03:51:36
Post #8





Grupa: Zarejestrowani
Postów: 6 365
Pomógł: 1114
Dołączył: 30.08.2006

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


Poczytaj sobie najpierw podstawy https://prophp.pl/article/1/protokol_http


--------------------
Go to the top of the page
+Quote Post
dublinka
post 12.10.2020, 19:09:55
Post #9





Grupa: Zarejestrowani
Postów: 594
Pomógł: 66
Dołączył: 22.02.2008
Skąd: Dublin

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


Cytat(mizii @ 12.10.2020, 02:46:55 ) *
przepraszam ze odpisuje po takim czasie ale tak dokladnie tak smile.gif
jakies rady na przyszlosc jak sie wystrzegac takich bledow?
Czasami mi sie zdarzaja ze header wywala mi taki blad i nie specjalnie wtedy wiem jak sobie z nim poradzic...

wydaje mi sie ze w moim przypadku nie sa bledem czyste znaki tylko definiowanie blokow html przed naglowkiem header, chyba nie do konca rozumiem dzialanie tego mechanizmu tongue.gif
predzej czesto robilem formularz w jednym pliku dodanie do bazy oraz formularz.

  1. if(isset($_POST['send']))
  2. {
  3. //funkcja dodawania do bazy
  4. header /naglowek ktory sie krzaczy a ma za zadanie kasowanie zmiennej post aby nie duplikowaly sie inforamcje po odswiezeniu
  5. }
  6. else
  7. {
  8. formularz
  9. }


a jak rozbije to na dwa osobne pliki i w polu action dam przekierowanie do pliku z funkcji warunkowej a nastepnie na jego koncu zrobie header do pliku z formularzem to wszystko dziala i problem nie wystepuje


Nie wiem czy rozumiesz co robi header.
Po co wysylasz cos do przegladarki w Twoim przypadku echo a po tym dajesz header?
Header wysyla do wskazanego odcinka dokumentu lub innego pliku wiec po co cos wyswietlac. Jak juz chcesz cos pokazac i chcesz przekierowane to zrob to w js.
Czyli
Echo "costam";
Tutaj przekierowanie z opoznieniem w js.
Header stosuje sie w miejscacg gdzie cos sie wykona i ma nastapic przejscie ale bez zadnego wyswietlania wczesniej danych czy wyslania czegololwiek do przegladarki


--------------------
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.04.2024 - 14:19