Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Panel Kontaktowy
Sign
post 6.02.2016, 17:58:11
Post #1





Grupa: Zarejestrowani
Postów: 128
Pomógł: 0
Dołączył: 3.11.2014

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


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. ?>

Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
goartur
post 6.02.2016, 19:02:13
Post #2





Grupa: Zarejestrowani
Postów: 233
Pomógł: 27
Dołączył: 19.10.2014

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


ob_start(); na poczatku skryptu.

Ten post edytował goartur 6.02.2016, 19:03:46
Go to the top of the page
+Quote Post
Sign
post 7.02.2016, 17:02:29
Post #3





Grupa: Zarejestrowani
Postów: 128
Pomógł: 0
Dołączył: 3.11.2014

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


to nie to, dalej error
"Warning: Cannot modify header information - headers already sent by"
Go to the top of the page
+Quote Post
goartur
post 7.02.2016, 22:02:49
Post #4





Grupa: Zarejestrowani
Postów: 233
Pomógł: 27
Dołączył: 19.10.2014

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


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.

Ten post edytował goartur 7.02.2016, 22:05:29
Go to the top of the page
+Quote Post
nospor
post 7.02.2016, 22:33:54
Post #5





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




Headers already sent
Problem omawiany petryliard razy w internecie. Trzeba sie naprawde mocno starac by nie znalezc informacji o tym :/


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

"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

Closed 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: 14.08.2025 - 03:27