Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Panel Kontaktowy
Forum PHP.pl > Forum > Przedszkole
Sign
Witam, stworyzlem panel kontaktowy php

i wiadomość wysyła, ale na samym dole strony wywała error

"
Warning: Cannot modify header information - headers already sent by (output started at /home/signweb/public_html/nieznajdziesztego/index.php:18) in /home/signweb/public_html/index.php on line 252"

  1. //Sprawdzam czy są błędy i wysyłam wiadomość
  2. if (empty($error))
  3. {
  4. $list = "Przysłał - $imie ($mail) <br/> Treść wiadomości - $wiadomosc";
  5.  
  6. if (mail($odbiorca, $temat, $list, $header))
  7. {
  8. $error .= "Twoja wiadomość została wysłana";
  9. setcookie("send", time()+60, time()+60);
  10. }
  11. else
  12. { $error .= "Wystąpił błąd podczas wysyłania wiadomości, spróbuj później.";}
  13. }
  14. }


i ta 252 linijka wychodzi, że to "ELSE"


dodam, że nie wyskakuje wiadomość "twoja wiadomosc została wysłana"

Dzieki



Cały Kod PHP


  1. <?php
  2. //filtruje dane użytkownika
  3. $imie = htmlspecialchars(trim($_POST['imie']));
  4. $temat = htmlspecialchars(trim($_POST['temat']));
  5. $mail = htmlspecialchars(trim($_POST['mail']));
  6. $wiadomosc = htmlspecialchars(trim($_POST['wiadomosc']));
  7. $send = $_POST['send'];
  8. //mail na który będa wysyłane wiadomości
  9. $odbiorca = "signweb@o2.pl";
  10. //nagłówki
  11. $header = "Content-type: text/html; charset=utf-8\r\nFrom: $mail";
  12.  
  13. //Sprawdzam czy istnieje ciastko, jeżeli tak wyświetlam komunikat
  14. if (isset($_COOKIE['send'])) $error ='Odczekaj '.($_COOKIE['send']-time()).' sekund przed wysłaniem kolejnej wiadomości';
  15.  
  16. if ($send && !isset($_COOKIE['send']))
  17. {
  18. //Sprawdzam nick
  19. if (empty($imie))
  20. { $error = "Nie wypełniłeś pola <strong>Imie!</strong><br/>"; }
  21. elseif (strlen($imie) > 20)
  22. { $error .="Za długi nick - max. 20 znaków <br/>";}
  23.  
  24. //Sprawdzam mail
  25. if (empty($mail))
  26. { $error .= "Nie wypełniłeś pola <strong>E-mail !</strong><br/>"; }
  27. elseif (strlen($mail) > 30)
  28. { $error .="Za długi e-mail - max. 30 znaków <br/>";}
  29. elseif (preg_match('/^[a-zA-ZąćęłńóśźżĄĆĘŁŃÓŚŹŻ0-9\-\_\.]+\@[a-zA-ZąćęłńóśźżĄĆĘŁŃÓŚŹŻ0-9\-\_\.]+\.[a-z]{2,4}$/',$mail) == false)
  30. { $error .= "Niepoprawny adres E-mail! <br/>"; }
  31.  
  32. //Sprawdzam temat
  33. if (empty($temat))
  34. { $error .= "Nie wypełniłeś pola <strong>Temat !</strong><br/>"; }
  35. elseif (strlen($temat) > 120)
  36. { $error .="Za długi temat - max. 120 znaków <br/>";}
  37.  
  38. //Sprawdzam wiadomosc
  39. if (empty($wiadomosc))
  40. { $error .= "Nie wypełniłeś pola <strong>Wiadomość !</strong><br/>"; }
  41. elseif (strlen($wiadomosc) > 400)
  42. { $error .="Za długa wiadomość - max. 400 znaków <br/>";}
  43.  
  44. //Sprawdzam czy są błędy i wysyłam wiadomość
  45. if (empty($error))
  46. {
  47. $list = "Przysłał - $imie ($mail) <br/> Treść wiadomości - $wiadomosc";
  48.  
  49. if (mail($odbiorca, $temat, $list, $header))
  50. {
  51. $error .= "Twoja wiadomość została wysłana";
  52. setcookie("send", time()+60, time()+60);
  53. }
  54. else
  55. { $error .= "Wystąpił błąd podczas wysyłania wiadomości, spróbuj później.";}
  56. }
  57. }
  58. ?>

goartur
ob_start(); na poczatku skryptu.
Sign
to nie to, dalej error
"Warning: Cannot modify header information - headers already sent by"
goartur
Tak to to, widocznie cos zle robisz. Header mozesz wyslac tylko jeden a ob wlacza bufery i usuwa ten problem.
Poza tym header('location: ' ) znajduje sie w innej czesci skryptu ktorego uzywasz, mam nadzieje ze ob start umiesciles na poczatku calego skryptu,

poza tym to jest przedszkole mogl bys sie wysilic i zobaczyc na internecie co to za blad jest tyle tematow o tym ze w tym czasie rozwiazal bys ten problem 10 razy.
nospor
Headers already sent
Problem omawiany petryliard razy w internecie. Trzeba sie naprawde mocno starac by nie znalezc informacji o tym :/
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.