Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] Cannot modify header information - headers already sent
Maker5
post
Post #1





Grupa: Zarejestrowani
Postów: 139
Pomógł: 0
Dołączył: 2.04.2008

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


Warning: Cannot modify header information - headers already sent by (output started at /zapytanie/configuration.php:14) in /zapytanie/formprocess.php on line 63

wczesniej nie bylo tego problemu a wczoraj pojawil się taki blad blad i juz naprawde nie wiem co zrobic aby jakos temu zaradzic
co proponujecie ?

link do formularza

http://alveus1.home.pl/zapytanie/index.php


i druga sprawa:
jak ktoś nie wpisze np imienia to pojawiają się dziwne znaki zamiast komunikatu:

  1. Podałeś nieprawidłowe imię. <br />Kliknij <a title="wstecz" href="java script:history.go(-1)">wstecz</a> i popraw ten błąd.';
  2.  
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
thek
post
Post #2





Grupa: Moderatorzy
Postów: 4 362
Pomógł: 714
Dołączył: 12.02.2009
Skąd: Jak się położę tak leżę :D




Na dreamie też masz na bank ten byk, ale jest on pewnie "wyciszony". Twoim błędem jest wysłanie kodu HTML przed funkcją ob_start()! Najpierw kod wysyłasz, potem sprawdzasz warunki i ewentualnie przekierowujesz. A tak nie wolno robić. Przed przekierowaniem nie może być nic wysłane do usera. Ty tę zasadę złamałeś. Jeśli chcesz coś wypisać przed przekierowaniem to musisz to wrzucić do bufora i dopiero gdy konieczne - wysłać do przeglądarki. Przykład kodu z przeróbką, który na bank by zadziałał.
  1. <?php
  2. $bufor = '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  3. <html>
  4. <head>
  5. <title></title>
  6. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  7. <link href="./style.css" rel="stylesheet" type="text/css" />
  8. </head>
  9. <body>';
  10. if(isset($_GET['accept']))
  11. {
  12. header( 'Location:wynik.html' );
  13. }
  14. elseif(isset($_GET['error']))
  15. {
  16. $bufor .= urldecode($_GET['error']);
  17. }
  18. $bufor .= '<script type="text/javascript" src="./formscript.js"></script>
  19. <form name="form" action="formprocess.php" method="POST">
  20. <table width="489" border="0" cellpadding="2">
  21. <tr>
  22. <td width="117" class="td_formularz">Imię:</td>
  23. <td width="120"><input type="text" name="name" value="" size="20" /></td>
  24. <td width="98"><span class="td_formularz">Nazwisko:</span></td>
  25. <td width="128"><input type="text" name="surname" value="" size="20" /></td>
  26. </tr>
  27. <tr>
  28. <td class="td_formularz">Firma:</td>
  29. <td><input type="text" name="street" value="" size="20" /></td>
  30. <td><span class="td_formularz">Nr telefonu<br>
  31. </span></td>
  32. <td><input type="text" name="phone_number" value="" size="20" /></td>
  33. </tr>
  34. <tr>
  35. <td class="td_formularz">Email:</td>
  36. <td><input type="text" name="mail" value="" size="20" /></td>
  37. <td>tylko cyfry</td>
  38. <td>np. 555000444</td>
  39. </tr>
  40. </table>
  41. <table width="489" border="0" cellpadding="2">
  42. <tr>
  43. <td width="82" class="td_formularz">Treść:</td>
  44. <td width="393"><textarea name="sugestion" cols="40" rows="7" wrap="virtual"></textarea></td>
  45. </tr>
  46. <tr>
  47. <td class="td_formularz"> </td>
  48. <td><span class="td_formularz">
  49. <input type="submit" value="Wyślij zapytanie" name="send" />
  50. </span></td>
  51. </tr>
  52. </table>
  53. </form>
  54. </form>
  55. <p> </p>
  56. </body></html>';
  57. echo $bufor;
Widzisz co zrobiłem z buforem? Nic nie poszło do przeglądarki wcześniej. Mogłem użyć funkcji ob_*, ale chciałem byś widział zasadę tego co należy robić, a raczej czego nie należy, używając header. Wszystko sobie na boku sklejam i wyświetlam dopiero gdy trzeba, a nie gdzie popadnie. To są złe nawyki i trzeba się ich pozbywać.
Go to the top of the page
+Quote Post

Posty w temacie


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: 10.10.2025 - 17:04