Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]formularz kontakowy
Forum PHP.pl > Forum > Przedszkole
Kynval
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>
ylk
a co to jest:
  1. mail('<'.$email.'>')

questionmark.gif
wywal te '<>' to pójdzie
Kynval
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
kinder
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
Kynval
sprobuje
kalmaceta
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)
Kynval
nic nie przyszlo.
mat-bi
No to prosta sprawa - nie ma opcji mail() na serwie.
Turson
Masz to w ogóle na jakimś serwerze? Przez plik znadujący się u Ciebie na dysku nie wyślesz tego
Kynval
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?
wujekkk
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
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.