Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Problem z funkcja 'header()', problem z funkcja
Endrjub
post
Post #1





Grupa: Zarejestrowani
Postów: 27
Pomógł: 0
Dołączył: 25.01.2005

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


Witam.
Mam taki problem ze skryptem. Chyba nie dziala funkcja header() i wyrzuca mi nastepujacy blad:
Warning: Cannot modify header information - headers already sent by (output started at c:\program files\apache group\apache2\htdocs\endrju\www\sonda.php:11) in c:\program files\apache group\apache2\htdocs\endrju\www\sonda.php on line 25

Jak zmienie na include("wyniki.php") niby wszystko jest ok, ale zawartosc pliku 'wyniki.php; pojawiaja sie na tej samej stronie pod formularzem,a nie na nowej stronie. A chcialbym zeby zostaly wyswietlone tylko wyniki z ankiety juz bez formularza.

  1. <html>
  2. <head></head>
  3. <body>
  4. <form action=\"sonda.php\" method=\"POST\">
  5. Pytanie:<br>
  6. &nbsp;<input type=\"radio\" name=\"answer\" value=\"tak\">&nbsp;TAK<br>
  7. &nbsp;<input type=\"radio\" name=\"answer\" value=\"nie\">&nbsp;NIE<br> 
  8. &nbsp;<input type=\"radio\" name=\"answer\" value=\"nw\">&nbsp;NIE WIEM<br>
  9. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input type=\"submit\" name=\"send\" value=\"Glosuj\">
  10. </form>
  11. <?
  12. if(isset($_POST['send'])){
  13. if($_POST['send']=='Glosuj'){
  14. $file=fopen(&#092;"sonda.txt\",\"r+\");
  15. $wpis=fgets($file,80);
  16. $tab=explode(&#092;"#\",$wpis);
  17.  
  18. $tabl[&#092;"tak\"]=$tab[0];
  19. $tabl[&#092;"nie\"]=$tab[1];
  20. $tabl[&#092;"nw\"]=$tab[2];
  21. ++$tabl[$answer];
  22. fseek($file,0);
  23. fwrite($file,$tabl[&#092;"tak\"].\"#\".$tabl[\"nie\"].\"#\".$tabl[\"nw\"]);
  24.  
  25. Header(&#092;"Location: wyniki.php\");
  26.  
  27.  
  28. }
  29. }
  30.  
  31. ?>
  32.  
  33. </body>
  34. </html>


Za odpowiedz z gory wszystkim wielkie dzieki.
pozdrawiam
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 10)
tiraeth
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 1 789
Pomógł: 41
Dołączył: 30.10.2003
Skąd: Wrocław

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


Nie można wysłać nagłówków (HEADER) po zadeklarowaniu <html>
Go to the top of the page
+Quote Post
nospor
post
Post #3





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Sprawdz w pliku php.ini jaką masz wartość :output_buffering
ustaw: output_buffering = on


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Fipaj
post
Post #4





Grupa: Zarejestrowani
Postów: 691
Pomógł: 0
Dołączył: 19.01.2005
Skąd: Warszawa

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


  1. <?
  2. ?>
  3. <html>
  4. <head></head>
  5. <body>
  6. <form action=\"sonda.php\" method=\"POST\">
  7. Pytanie:<br>
  8. &nbsp;<input type=\"radio\" name=\"answer\" value=\"tak\">&nbsp;TAK<br>
  9. &nbsp;<input type=\"radio\" name=\"answer\" value=\"nie\">&nbsp;NIE<br> 
  10. &nbsp;<input type=\"radio\" name=\"answer\" value=\"nw\">&nbsp;NIE WIEM<br>
  11. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input type=\"submit\" name=\"send\" value=\"Glosuj\">
  12. </form>
  13. <?
  14.     if(isset($_POST['send'])){
  15.     if($_POST['send']=='Glosuj'){
  16.     $file=fopen(&#092;"sonda.txt\",\"r+\");
  17.     $wpis=fgets($file,80);
  18.     $tab=explode(&#092;"#\",$wpis);
  19.  
  20.     $tabl[&#092;"tak\"]=$tab[0];
  21.     $tabl[&#092;"nie\"]=$tab[1];
  22.     $tabl[&#092;"nw\"]=$tab[2];
  23.     ++$tabl[$answer];
  24.     fseek($file,0);
  25.     fwrite($file,$tabl[&#092;"tak\"].\"#\".$tabl[\"nie\"].\"#\".$tabl[\"nw\"]);
  26.  
  27.     Header(&#092;"Location: wyniki.php\");
  28.         
  29.     
  30.     }
  31.     }
  32. ob_en_flush();
  33. ?>
  34.  
  35. </body>
  36. </html>


I z buforowaniem zadziała na 100%;

Ten post edytował Fipaj 24.02.2005, 12:23:24


--------------------
Go to the top of the page
+Quote Post
Endrjub
post
Post #5





Grupa: Zarejestrowani
Postów: 27
Pomógł: 0
Dołączył: 25.01.2005

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


Ale to nie dziala mi:
  1. <?
  2.  
  3. echo&#092;"'<html>
  4. <head></head>
  5. <body>
  6. <form action=&#092;"sonda.php\" method=\"POST\">
  7. Pytanie:<br>
  8. &nbsp;<input type=&#092;"radio\" name=\"answer\" value=\"tak\">&nbsp;TAK<br>
  9. &nbsp;<input type=&#092;"radio\" name=\"answer\" value=\"nie\">&nbsp;NIE<br>
  10. &nbsp;<input type=&#092;"radio\" name=\"answer\" value=\"nw\">&nbsp;NIE WIEM<br>
  11. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input type=&#092;"submit\" name=\"send\" value=\"Glosuj\">
  12. </form>&#092;";
  13. if(isset($_POST['send'])){
  14. if($_POST['send']=='Glosuj'){
  15. $file=fopen(&#092;"sonda.txt\",\"r+\");
  16. $wpis=fgets($file,80);
  17. $tab=explode(&#092;"#\",$wpis);
  18.  
  19. $tabl[&#092;"tak\"]=$tab[0];
  20. $tabl[&#092;"nie\"]=$tab[1];
  21. $tabl[&#092;"nw\"]=$tab[2];
  22. ++$tabl[$answer];
  23. fseek($file,0);
  24. fwrite($file,$tabl[&#092;"tak\"].\"#\".$tabl[\"nie\"].\"#\".$tabl[\"nw\"]);
  25.  
  26. Header(&#092;"Location: wyniki.php\");
  27.  
  28.  
  29. }
  30. }
  31.  
  32. echo &#092;"</body>
  33. </html&#092;";
  34.  
  35. ?>


Ten post edytował Endrjub 24.02.2005, 12:19:20
Go to the top of the page
+Quote Post
Yarecki
post
Post #6





Grupa: Zarejestrowani
Postów: 166
Pomógł: 0
Dołączył: 1.04.2004
Skąd: Gdynia

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


Zamiast echo "' wstaw echo ', a na końcu zamiast </form>" </form>'

Fipaj podał Ci jak to poprawnie zrobić.

Ten post edytował Yarecki 24.02.2005, 12:23:32


--------------------
Nigdy nie kłóć się z głupim, ludzie mogą nie dostrzec różnicy.
Go to the top of the page
+Quote Post
Fipaj
post
Post #7





Grupa: Zarejestrowani
Postów: 691
Pomógł: 0
Dołączył: 19.01.2005
Skąd: Warszawa

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


Poprawiłem swój skrypt, który widzicie powyżej. Teraz musi działać


--------------------
Go to the top of the page
+Quote Post
Endrjub
post
Post #8





Grupa: Zarejestrowani
Postów: 27
Pomógł: 0
Dołączył: 25.01.2005

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


Dzieki, wszystko dziala, ale moze mi ktos wyjasnic dlaczego z echo "<html>..."; nie dzialalo, tylko z echo '...'; ?

W kazdym razie wszystko teraz dziala smile.gif
Go to the top of the page
+Quote Post
Fipaj
post
Post #9





Grupa: Zarejestrowani
Postów: 691
Pomógł: 0
Dołączył: 19.01.2005
Skąd: Warszawa

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


echo "<html>"; działało
ale nie działało echo "<html><body bgcolor="black">";
dobrze było by tak: echo '<html><body bgcolor="black">';

rozumiesz??


--------------------
Go to the top of the page
+Quote Post
Endrjub
post
Post #10





Grupa: Zarejestrowani
Postów: 27
Pomógł: 0
Dołączył: 25.01.2005

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


Fipaj:
faktycznie, zapomnialem, ale ze mnie gapa smile.gif
ale tak działała echo "<html><body bgcolor=\"black\">"; smile.gif

A ja chcialbym podrazyc temat. Jesli moze mi ktos odpowiedziec, to bylbym bardzo wdzieczny. Rozszerzylem skrypt o cookies, zeby "uodpornic go na odswiezania" ale cos nie dziala. Gdzies mam blad, ale nie wiem gdzie. Moze rzucicie okiem na to:

  1. <?
  2.  
  3.  
  4. setcookie(&#092;"visited\", \"1\", time()+3600); 
  5.  
  6. echo '<html>
  7. <head></head>
  8. <body>
  9. <form action=\"sonda.php\" method=\"POST\">
  10. Pytanie:<br>
  11. &nbsp;<input type=\"radio\" name=\"answer\" value=\"tak\">&nbsp;TAK<br>
  12. &nbsp;<input type=\"radio\" name=\"answer\" value=\"nie\">&nbsp;NIE<br>
  13. &nbsp;<input type=\"radio\" name=\"answer\" value=\"nw\">&nbsp;NIE WIEM<br>
  14. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input type=\"submit\" name=\"send\" value=\"Glosuj\">
  15. </form>';
  16.  
  17. if(isset( $_COOKIE['visited'])){
  18. if($_COOKIE['visited'] != &#092;"1\") { 
  19.  
  20. if(isset($_POST['send'])){
  21. if($_POST['send']=='Glosuj'){
  22.  
  23. $file=fopen(&#092;"sonda.txt\",\"r+\");
  24. $wpis=fgets($file,80);
  25. $tab=explode(&#092;"#\",$wpis);
  26.  
  27. $tabl[&#092;"tak\"]=$tab[0];
  28. $tabl[&#092;"nie\"]=$tab[1];
  29. $tabl[&#092;"nw\"]=$tab[2];
  30. ++$tabl[$answer];
  31. fseek($file,0);
  32. fwrite($file,$tabl[&#092;"tak\"].\"#\".$tabl[\"nie\"].\"#\".$tabl[\"nw\"]);
  33.  
  34. Header(&#092;"Location: wyniki.php\");
  35.  
  36.  
  37. }
  38. }
  39. else
  40. echo &#092;"Juz oddales swoj glos!\";
  41. }
  42. }
  43.  
  44. echo &#092;"</body>
  45. </html>&#092;";
  46.  
  47. ?>


Dlaczego to nie idzie...questionmark.gif

Dolaczam zawartosc pliku "wyniki.php" zeby mozna bylo zobaczyc efekt dzialania skryptu, a nie sie tylko domyslac: smile.gif
  1. <?
  2.  
  3. $file=fopen(&#092;"sonda.txt\",\"r\");
  4. $wpis=fgets($file,80);
  5. $tab=explode(&#092;"#\",$wpis);
  6.  
  7. $tabl[&#092;"tak\"]=$tab[0];
  8. $tabl[&#092;"nie\"]=$tab[1];
  9. $tabl[&#092;"nw\"]=$tab[2];
  10.  
  11. $suma= $tabl[&#092;"tak\"]+$tabl[\"nie\"]+$tabl[\"nw\"];
  12. @ $tak= floor(($tabl[&#092;"tak\"]/$suma)*100);
  13. @ $nie= floor(($tabl[&#092;"nie\"]/$suma)*100);
  14. @ $nie_wiem= floor(($tabl[&#092;"nw\"]/$suma)*100);
  15.  
  16.  
  17.  
  18. echo &#092;"<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">
  19. <tr><td>TAK</td></tr>n&#092;";
  20.  echo &#092;"<tr><td width=\"200\"><img src=\"linia.gif\" width=\"\". 2*$tak .\"\" height=\"10\"></td><td>\". $tak .\"% (<b>\". $tabl[\"tak\"] .\"</b>)</td></tr>n\";
  21.  
  22.  
  23.  
  24. echo &#092;"<tr><td>NIE</td></tr>n\";
  25. echo &#092;"<tr><td width=\"200\"><img src=\"linia.gif\" width=\"\". 2*$nie. \"\" height=\"10\"></td><td>\".$nie.\"%(<b>\".$tabl['nie'].\"</b>)</td></tr>n\";
  26.  
  27. echo &#092;"<tr><td>NIE WIEM</td></tr>n\";
  28. echo &#092;"<tr><td width=\"200\"><img src=\"linia.gif\" width=\"\". 2*$nie_wiem .\"\" height=\"10\"></td><td>\". $nie_wiem .\"% (<b>\". $tabl[\"nw\"] .\"</b>)</td></tr>n\";
  29.  
  30. echo &#092;"<tr><td>Oddanych glosow:\".$suma.\"</td></tr>n\";
  31.  
  32. ?>
  33. <html>
  34. <head></head>
  35. <body></body>
  36. </html>


Z gory bardzo dziekuje

Ten post edytował Endrjub 24.02.2005, 13:19:23
Go to the top of the page
+Quote Post
Fipaj
post
Post #11





Grupa: Zarejestrowani
Postów: 691
Pomógł: 0
Dołączył: 19.01.2005
Skąd: Warszawa

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


Nie wiem, błędu nie znalazłem, ale bardzo brudny kod. Ciężko coś odczytać, a tym bardziej znaleźć błąd


--------------------
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 Aktualny czas: 20.08.2025 - 08:06