Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] Warning: Cannot modify header information itd.
elektronic
post
Post #1





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 3.09.2007
Skąd: Tarnów

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


Witam.

Robie ankietę w php, wszystko idzie dobrze ale ni z tąd ni z owąd zaczęło mi wyskakiwać na stronie coś takiego :

Warning: Cannot modify header information - headers already sent by (output started at /disk3/users/elektronic/public_html/test2.php:8) in /disk3/users/elektronic/public_html/test2.php on line 46
linia 46:
Kod
setcookie('entry1', "$entry1", time()+3110400);


nie działa ob_start(); , które niby powinno pomagać. Dziwne jest to że przepisywałem kod 3 razy analizując go bardzo dokładnie. Był moment kiedy wszystko działało poprawnie... aż tu nagle warning.

Z góry dzięki.
Go to the top of the page
+Quote Post
kicaj
post
Post #2





Grupa: Zarejestrowani
Postów: 1 640
Pomógł: 28
Dołączył: 13.02.2003
Skąd: Międzyrzecz/Poznań

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


  1. <?php
  2. if( ob_get_flush() )
  3. {
  4. }
  5. ?>


Bylo wielokrotnie...
Go to the top of the page
+Quote Post
elektronic
post
Post #3





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 3.09.2007
Skąd: Tarnów

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


Niestety nie działa...
Go to the top of the page
+Quote Post
Hazel
post
Post #4





Grupa: Zarejestrowani
Postów: 492
Pomógł: 33
Dołączył: 16.08.2007
Skąd: Wrocław

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


Jeśli przepisywałeś kod 3 razy, to jak bardzo byś nie uważał - zawsze możesz gdzies się pomylić.
Możesz dać cały kod?

Ten post edytował Hazel 3.09.2007, 19:33:34
Go to the top of the page
+Quote Post
k@mil
post
Post #5





Grupa: Zarejestrowani
Postów: 40
Pomógł: 0
Dołączył: 19.08.2007
Skąd: Glinnik

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


ustawienie ciastka (SetCookie) musi byc wyslane przed jakimikolwiek informacjami wysylanymi do przegladarki (czyli przed <head>)
wiec daj kod to pomozemy ci dobrze to usytuowac
Go to the top of the page
+Quote Post
elektronic
post
Post #6





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 3.09.2007
Skąd: Tarnów

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


hmm... kod jako taki jest raczej dobry, problem chyba wystąpił jak dodałem te wszystkie meta, head itd. Potem się okaże że są głupie błędy :

Kod
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Ankieta</title>
<LINK REL="stylesheet" HREF="images/css.css" TYPE="text/css">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1250">
<meta http-equiv="Content-Language" content="pl">
<style type="text/css">

</style>
</head>
<body>
<table>
<?


if(!($send)) {

if(!($next)) {
  
      print'<form method=post>';
        print'<tr><td>';
        print'<p>Czy posiadasz w domu internet?<br><br>';
        print'<input type="radio" name="pole1" value="1">Tak<br>';
        print'<input type="radio" name="pole1" value="2">Nie</p>';
        print'</td></tr>';
    
        print'<tr><td>';
        print'<input type="submit" name="next" value="dalej">';
        print'</td></tr>';
        print'</form>';

  } else { //  jeśli naciśnięto "dalej"
  
   $entry1++;
   setcookie('entry1', "$entry1", time()+3110400);

  
   if($entry1==1) {
     if($pole1==1) {
/******************************************/          
/* TU ZACZYNA SIĘ WŁAŚCIWA TREŚĆ ANKIETY  */
/******************************************/

    } else {
     print'<tr><td><p>';
     print "jakiś tekst";
     print'</p></td></tr>';
    }    
} else {
    print'</p></td></tr>';
    print"Eh... Wchodzisz tu już $entry1 raz...<br>";
    print'</p></td></tr>';
    print'<tr><td><p>';
    print "Już rozwiązywałeś ankietę";
    print'</p></td></tr>';
    }  
}
  


} else {

// tu jakieś instrukcje

}

?>
</table>
</body>
</html>


Ten post edytował elektronic 3.09.2007, 20:50:59
Go to the top of the page
+Quote Post
Hazel
post
Post #7





Grupa: Zarejestrowani
Postów: 492
Pomógł: 33
Dołączył: 16.08.2007
Skąd: Wrocław

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


no to jest praktycznie czysty HTML, sprawdzasz jedynie istnienie dwóch zmiennych, o ktorych nie mam pojęcia, czym są...
Prosiłem Cię o cały kod (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)
Go to the top of the page
+Quote Post
elektronic
post
Post #8





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 3.09.2007
Skąd: Tarnów

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


Sory, coś mi się popierniczyło, już jest pełny kod (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
Go to the top of the page
+Quote Post
strife
post
Post #9





Grupa: Przyjaciele php.pl
Postów: 2 605
Pomógł: 96
Dołączył: 22.10.2004
Skąd: UK

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


No i ? Przecież odpowiedź już dostałeś, jeśli Ci mało to wejdź na http://phpedia.pl/wiki.php?title=Cannot_ad...rs_already_sent

Przenoszę na Przedszkole.
Go to the top of the page
+Quote Post
phpion
post
Post #10





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




Cytat(k@mil @ 3.09.2007, 20:39:26 ) *
ustawienie ciastka (SetCookie) musi byc wyslane przed jakimikolwiek informacjami wysylanymi do przegladarki (czyli przed <head>)



Cytat(elektronic @ 3.09.2007, 21:11:47 ) *
hmm... kod jako taki jest raczej dobry, problem chyba wystąpił jak dodałem te wszystkie meta, head itd. Potem się okaże że są głupie błędy :

Kod
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
...
<?
...
   setcookie('entry1', "$entry1", time()+3110400);
...
?>
....

Potrafisz już sam stwierdzić co jest nie tak?

Ten post edytował phpion.com 3.09.2007, 21:07:33
Go to the top of the page
+Quote Post
elektronic
post
Post #11





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 3.09.2007
Skąd: Tarnów

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


Dobra, już działa... tylko zastanawiam się dlaczego jeżeli umieszcze zwykły print "tekst"; przed if(!(send)) { , warning itd. się pokazuje...Dzięki wielkie... edit: Jeszcze jedno pytanie. Jeżeli przykładowo mam index.php w którym jest ten html razem ze stylami itd. a między znacznikami body jest tylko :
Kod
<?include("ankieta.php");?>
i to nie działa, a dokładniej - pojawia się to samo ostrzeżenie, to co zrobić żeby działało. Nawet po to żebym mógł opracować css do całego dokumentu (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) Mam nadzieje że wyraziłem się jasno (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)

Czy ktoś może mi pomóc ? Jest mi to naprawdę potrzebne. Co zrobić abym mógł przed kodem użyć html'a... Próbuję :
Kod
<?
ob_start();  
// cały kod
ob_end_flush();
?>

ale to nie działa, próbowałem kilku innych sposobów, i również nic nie idzie. Czytałem że można jeszcze zmienić to w pliku konfiguracyjnym lecz jak ? W PHP Core w linii output_buffering pisze no_value... Nie wiem gdzie należy zmienić to na on...

Ten post edytował elektronic 4.09.2007, 20:16:01
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 13:07