Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]formularz kontakowy
Kynval
post 21.03.2011, 11:34:01
Post #1





Grupa: Zarejestrowani
Postów: 23
Pomógł: 0
Dołączył: 24.09.2009

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


witam.
mam problem...

owy formularz nie wysyła mi maili.
wyskakuje blad:

"Wiadomość nie została wysłana"


  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  5. <link rel="stylesheet" href="css/style.css" type="text/css"
  6. media="screen" />
  7. </head>
  8. <body>
  9.  
  10. <h2>Formularz kontaktowy</h2>
  11.  
  12. <?php
  13.  
  14. $twojemail = 'mojadres@interia.pl'; // twĂłj adres e-mail
  15.  
  16. if ($_POST['wyslane']) {
  17.  
  18. // filtrowanie treści wprowadzonych przez użytkownika
  19. $imie = htmlspecialchars(stripslashes(strip_tags(trim($_POST["imie"]))), ENT_QUOTES);
  20. $nazwisko = htmlspecialchars(stripslashes(strip_tags(trim($_POST["nazwisko"]))), ENT_QUOTES);
  21. $email = htmlspecialchars(stripslashes(strip_tags(trim($_POST["email"]))), ENT_QUOTES);
  22. $temat = htmlspecialchars(stripslashes(strip_tags(trim($_POST["temat"]))), ENT_QUOTES);
  23. $tresc = htmlspecialchars(stripslashes(strip_tags(trim($_POST["tresc"]))), ENT_QUOTES);
  24. $kopia = $_POST["kopia"];
  25.  
  26. // system sprawdza czy wszystkie pola zostały wypełnione
  27. if (!$imie) {
  28. $blad++;
  29. echo '<p class="blad">Proszę wpisać swoje Imię.</p>';
  30. }
  31. if (!$nazwisko) {
  32. $blad++;
  33. echo '<p class="blad">Proszę wpisać swoje Nazwisko.</p>';
  34. }
  35. if (!eregi("^[0-9a-z_.-]+@([0-9a-z-]+\.)+[a-z]{2,4}$", $email)) {
  36. $blad++;
  37. echo '<p class="blad">Proszę wprowadzić poprawnie adres email.</p>';
  38. }
  39. if (!$temat) {
  40. $blad++;
  41. echo '<p class="blad">Proszę wpisać temat wiadomości.</p>';
  42. }
  43. if (!$tresc) {
  44. $blad++;
  45. echo '<p class="blad">Proszę wpisać treść wiadomości.</p>';
  46. }
  47.  
  48. // jeżeli nie ma błędu, to wiadomość e-mail zostaje wysłana
  49. if ($blad == 0) {
  50.  
  51. // niezbędne nagłówki do wyświetlania wiadomości HTML
  52. $naglowki = "MIME-Version: 1.0" . "\r\n";
  53. $naglowki .= "Content-type:text/html;charset=utf-8" . "\r\n";
  54.  
  55. // opcjonalne nagłówki
  56. $naglowki .= 'From: <'.$email.'>' . "\r\n";
  57. $naglowki .= 'Cc: <'.$twojemail.'>' . "\r\n";
  58.  
  59. // tytuł wiadomości
  60. $tytul = 'Formularz kontaktowy';
  61.  
  62. // całkowita treść wiadomości
  63. $tresc = nl2br($tresc);
  64. $wiadomosc = <<< KONIEC
  65.   <html>
  66.  
  67.   <p><strong>ImiÄ™:</strong> $imie</p>
  68.   <p><strong>Nazwisko:</strong> $nazwisko</p>
  69.   <p><strong>Temat:</strong> $temat</p>
  70.   <p><strong>Treść wiadomoĹ›ci:</strong><br />$tresc</p>
  71.   </html>
  72. KONIEC;
  73. // wysyłanie wiadomości e-mail
  74. $wynik = mail('<'.$email.'>', $tytul, $wiadomosc, $naglowki);
  75.  
  76. // wysyłane kopi wiadomości
  77. if ($kopia) {
  78. $naglowki2 = "MIME-Version: 1.0" . "\r\n";
  79. $naglowki2 .= "Content-type:text/html;charset=utf-8" . "\r\n";
  80. $naglowki2 .= 'From: <'.$twojemail.'>' . "\r\n";
  81. $tytul2 = 'Kopia - Formularz kontaktowy';
  82.  
  83. $wynik = mail($email, $tytul2, $wiadomosc, $naglowki2);
  84. }
  85.  
  86. // komunikat potwierdzający wysłanie wiadomości bądź nie
  87. if ($wynik) {
  88. echo '<p class="powodzenie">Wiadomość została wysłana</p>';
  89. } else {
  90. echo '<p class="blad">Wiadomość nie została wysłana</p>';
  91. }
  92. }
  93.  
  94. }
  95.  
  96. // tworzenie formularza HTML
  97. echo <<< KONIEC
  98.   <form class="form" action="index.php" method="post">
  99.   <input type="hidden" name="wyslane" value="TRUE" />
  100.  
  101. <p>
  102. <div class="label"><label for="imie">ImiÄ™</label></div>
  103. <input type="text" name="imie" />
  104. </p>
  105. <p>
  106. <div class="label"><label for="nazwisko">Nazwisko</label></div>
  107. <input type="text" name="nazwisko" />
  108. </p>
  109. <p>
  110. <div class="label"><label for="email">E-mail</label></div>
  111. <input type="text" name="email" />
  112. </p>
  113. <p>
  114. <div class="label"><label for="temat">Temat</label></div>
  115. <input type="text" name="temat" />
  116. </p>
  117.   <p>
  118. <div class="label"><label for="tresc">Wiadomość</label></div>
  119. <textarea id="tresc" name="tresc"></textarea>
  120. </p>
  121.   <p>
  122. <input type="checkbox" name="kopia" value="1" /> Prześlij mi kopię wiadomości
  123. </p>
  124. KONIEC;
  125. echo <<< KONIEC
  126.   <p class="submit"><input type="submit" value="WyĹ›lij wiadomość" /></p>
  127.   </form>
  128. KONIEC;
  129.  
  130. ?>
  131. <br /><br />
  132. </body>
  133. </html>
Go to the top of the page
+Quote Post
ylk
post 21.03.2011, 12:11:42
Post #2





Grupa: Zarejestrowani
Postów: 194
Pomógł: 26
Dołączył: 9.01.2011
Skąd: /dev/null

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


a co to jest:
  1. mail('<'.$email.'>')

questionmark.gif
wywal te '<>' to pójdzie
Go to the top of the page
+Quote Post
Kynval
post 21.03.2011, 13:05:42
Post #3





Grupa: Zarejestrowani
Postów: 23
Pomógł: 0
Dołączył: 24.09.2009

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


teraz mam tak:

  1. $wynik = mail($email, $tytul, $wiadomosc, $naglowki);
  2.  


i nadal nie dziala

probowalem usunac tylko '< >' wtedy wygladało to tak:


  1. mail('.$email.')


i również nie działało

Ten post edytował Kynval 21.03.2011, 13:08:59
Go to the top of the page
+Quote Post
kinder
post 21.03.2011, 16:10:57
Post #4





Grupa: Zarejestrowani
Postów: 39
Pomógł: 2
Dołączył: 15.03.2010

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


Przeglądając twój kod wydaje mi się że musisz przed wszelkimi operacjami na zmiennej $blad typu
$blad++ nadac wartosc czyli :
  1. $blad = 0;


Może nie wysyła ci maila bo nie ma wartości $blad = 0
Go to the top of the page
+Quote Post
Kynval
post 21.03.2011, 17:02:14
Post #5





Grupa: Zarejestrowani
Postów: 23
Pomógł: 0
Dołączył: 24.09.2009

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


sprobuje
Go to the top of the page
+Quote Post
kalmaceta
post 21.03.2011, 20:12:30
Post #6





Grupa: Zarejestrowani
Postów: 183
Pomógł: 24
Dołączył: 4.12.2010

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


stwórz plik o takiej zawartości - podmień na swój adres email:
  1. <?php
  2. mail('twoj@email.pl', 'testowy mail', 'bezsensowana tresc');
  3. ?>

jeśli otrzymasz maila masz błąd w kodzie, jeśli nie poszukaj PHPMailera.

Co do zmiennej $blad - nie może być jej wina bo dostajesz błąd że nie wysłało, czyli przeszło warunek if ($blad == 0)

Ten post edytował kalmaceta 21.03.2011, 20:13:12


--------------------
kAlmAcetA
Go to the top of the page
+Quote Post
Kynval
post 23.03.2011, 17:13:22
Post #7





Grupa: Zarejestrowani
Postów: 23
Pomógł: 0
Dołączył: 24.09.2009

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


nic nie przyszlo.
Go to the top of the page
+Quote Post
mat-bi
post 23.03.2011, 17:22:16
Post #8





Grupa: Zarejestrowani
Postów: 690
Pomógł: 92
Dołączył: 6.02.2011

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


No to prosta sprawa - nie ma opcji mail() na serwie.
Go to the top of the page
+Quote Post
Turson
post 23.03.2011, 17:33:49
Post #9





Grupa: Zarejestrowani
Postów: 4 291
Pomógł: 829
Dołączył: 14.02.2009
Skąd: łódź

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


Masz to w ogóle na jakimś serwerze? Przez plik znadujący się u Ciebie na dysku nie wyślesz tego
Go to the top of the page
+Quote Post
Kynval
post 28.03.2011, 19:19:47
Post #10





Grupa: Zarejestrowani
Postów: 23
Pomógł: 0
Dołączył: 24.09.2009

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


oczywiscie, ze mam... na sprawdzonym.
ale zaraz jeszcze zobacze na innym

Kod
- Obsługa zewnętrznych dostawców poczty oraz funkcji mail().


a jednak... problem z hosterem.
dziekuje bardzo za pomoc smile.gif

a moge jeszcze jedno pytanko? smile.gif


kiedy wprowadzi sie blad, to wyskakuje komunikat, ze naprzyklad nie ma wpisanego nazwiska, to usuwa mi wszystkie pozostale rubryki. jak to wyłączyc? smile.gif

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

jeszcze 1 sprawa...
nie wysyła maili do odbiorcy na interia.pl -> ale na gmail.com idzie.

Jak ustawie, aby wyslac kopie na interia.pl to idzie bez problemu. ohmy.gif

w innym temacie bylo:

Cytat(nospor @ 23.03.2011, 19:13:17 ) *
w skrócie:
echo '<input type="text" name="email" value="'.$_POST['email'].'" />';

No chyba, że formularz wysyła do innego skryptu to musisz się bawić w sesje


jest w tym samym pliczku...


czyli moj kodzik php mialby wygladac tak:


  1. echo <<< KONIEC
  2.   <form class="form" action="index.php" method="post">
  3.   <input type="hidden" name="wyslane" value="TRUE" />
  4.  
  5. <p>
  6. <div class="label"><label for="imie">ImiÄ™</label></div>
  7. <input type="text" name="imie" value="'.$_POST['email'].'" />
  8. </p>
  9. <p>
  10. <div class="label"><label for="nazwisko">Nazwisko</label></div>
  11. <input type="text" name="nazwisko" value="'.$_POST['email'].'" />
  12. </p>
  13. <p>
  14. <div class="label"><label for="email">E-mail</label></div>
  15. <input type="text" name="email" value="'.$_POST['email'].'" />
  16. </p>
  17. <p>
  18. <div class="label"><label for="temat">Temat</label></div>
  19. <input type="text" name="temat" value="'.$_POST['email'].'" />
  20. </p>
  21.   <p>
  22. <div class="label"><label for="tresc">Wiadomość</label></div>
  23. <textarea id="tresc" name="tresc" value="'.$_POST['email'].'" ></textarea>
  24. </p>
  25.   <p>
  26. <input type="checkbox" name="kopia" value="1" /> Prześlij mi kopię wiadomości
  27. </p>
  28. KONIEC;
  29. echo <<< KONIEC


tak nie dziala. moze ktos pomoc?

Ten post edytował Kynval 23.03.2011, 18:53:29
Go to the top of the page
+Quote Post
wujekkk
post 30.03.2011, 14:29:30
Post #11





Grupa: Zarejestrowani
Postów: 18
Pomógł: 0
Dołączył: 2.03.2010

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


Cytat
a moge jeszcze jedno pytanko? smile.gif


kiedy wprowadzi sie blad, to wyskakuje komunikat, ze naprzyklad nie ma wpisanego nazwiska, to usuwa mi wszystkie pozostale rubryki. jak to wyłączyc? smile.gif



Ja rozwiązałem to tak u mnie i działa:

  1. function sprawdz(name)
  2. {
  3. if((name.imie.value == "") || (name.email.value == "") || (name.tresc.value == "") || (name.ID.value == ""))
  4. {
  5. if ((name.imie.value == "")) {
  6. alert("Proszę podać swoje imię");
  7. name.imie.focus();
  8. return false;
  9. }
  10. if (name.email.value == "") {
  11. alert("Proszę podać swój email");
  12. name.email.focus();
  13. return false;
  14. }
  15. if (name.tresc.value == "") {
  16. alert("Proszę wpisać treść");
  17. name.tresc.focus();
  18. return false;
  19. }
  20. if (name.ID.value == "") {
  21. alert("Proszę wpisać kod z obrazka");
  22. name.ID.focus();
  23. return false;
  24. }
  25. }
  26. if ((name.imie.value != "")&&(name.email.value != "")&&(name.tresc.value != "")&&(name.ID.value != ""))
  27. {
  28. return true ;
  29. }
  30. else
  31. {
  32. return false;
  33. }
  34. }
  35.  

Następnie w formularzu dodajesz onSubmit="return sprawdz(this);"


  1. <FORM action="raz.php" Method="POST" onSubmit="return sprawdz(this);">
  2. Twoje imię: <INPUT NAME="imie"><br>
  3. Twój email: <INPUT NAME="email"><br>
  4. Treść:<textarea rows="4" cols="17" NAME="tresc">
  5.  
  6. <img src="obraz.php">
  7. Kod z obrazka: <INPUT NAME="ID" size=5><br>
  8. <INPUT TYPE="submit" VALUE="Wyślij">
  9. </form>



Spróbuj tym sposobem smile.gif

Pozdrawiam


--------------------
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 Wersja Lo-Fi Aktualny czas: 14.08.2025 - 05:02