Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Gdzie błąd w formularzu kontaktowym php?
Forum PHP.pl > Forum > Przedszkole
sider89
Potrzebuje prosty skrypt który pozwoli wysłać maila na poziomie przeglądarki, bez korzystania z programu pocztowego. Napisałem skrypt, który niby na stronie działa poprawnie (pokazuje się informacja, że wiadomość wysłana), jednak email nie dochodzi do odbiorcy. Korzystam z serwera webd.pl, gdy sprawdzam ustawienia php pojawia się wiadomość:
sendmail_from - no value. Zastanawiam się czy jest to wina serwera czy błąd w skrypcie. Oto moje wypociny:


  1. <!-- formularz start -->
  2. <?php
  3. if(empty($_POST['submit'])){
  4. ?>
  5. <table>
  6. <form action="?" method="post">
  7. <tr><td>Imię i Nazwisko:</td>
  8. <td><input type="text" name="imienazwisko" style="width:290px;"/></td>
  9. </tr><tr>
  10. <td>Telefon:</td>
  11. <td><input type="text" name="telefon" style="width:290px;"/></td>
  12. </tr><tr>
  13. <td>E-Mail:</td>
  14. <td><input type="text" name="email" style="width:290px;"/></td>
  15. </tr><tr>
  16. <td>Treść wiadomości:</td>
  17. <td><textarea name="trescwiadomosci" style="height:150px;width:290px;"></textarea></td>
  18. </tr><tr>
  19. <td>&nbsp;</td>
  20. <td><input type="submit" name="submit" value="Wyślij wiadomość"/><input type="reset" value="Wyczyść pola"></td>
  21. </td>
  22. </form></tr>
  23. </table>
  24.  
  25. <?php
  26. }elseif(!empty($_POST['imienazwisko']) && !empty($_POST['telefon']) && !empty($_POST['email']) && !empty($_POST['trescwiadomosci'])){
  27. /* Funkcja sprawdzająca poprawność E-Maila */
  28. function SprawdzEmail($email) {
  29. if (!eregi("^[_.0-9a-z-]+@([0-9a-z][0-9a-z-]+.)+[a-z]{2,4}$" , $email)){
  30. return false;
  31. }
  32. return true;
  33. }
  34. if(SprawdzEmail($_POST['email'])){
  35. /* Tworzymy szkielet wysyłanej wiadomości */
  36. $adresemail="sider89@tlen.pl"; //tutaj podaje swój email
  37. $ip=$_SERVER['REMOTE_ADDR'];
  38. $host=gethostbyaddr($_SERVER['REMOTE_ADDR']);
  39. $wiadomosc="Od: $_POST[imienazwisko] ($_POST[email])\nIP: $ip, HOST: $host\n\n$_POST[trescwiadomosci]";
  40. $nadawca="From: $_POST[email]";
  41. @mail($adresemail, $telefon, "Formularz kontaktowy", "$wiadomosc", "$nadawca") or die('Formularz nie został wysłany');
  42. echo "Dziękujemy, formularz został wysłany.";
  43. }else{ echo "Wprowadzony adres E-Mail jest niepoprawny"; }
  44. }else{ echo "Wypełnij wszystkie pola formularza"; }
  45. ?>
  46.  
  47. <!-- formularz stop -->
mls
  1. $wiadomosc="Od: " . $_POST['imienazwisko'] . " (" . $_POST['email'] . ")\nIP: " . $ip . ", HOST: " . $host . "\n\n" . $_POST['trescwiadomosci'];
  2. $nadawca="From: " . $_POST[email];
  3. @mail($adresemail, $telefon, "Formularz kontaktowy", $wiadomosc, $nadawca, "-f" . $adresemail) or die('Formularz nie został wysłany');
sider89
Po zamianie tego kodu skrypt całkowicie się wysypuje. Kontaktowałem sie z administratorem serwera i odpisał, że usługa mail jest aktywne, czyli jest tutaj jakiś błąd w kodzie. Proszę o pomoc
phpion
Cytat(sider89 @ 21.02.2010, 12:56:22 ) *
sendmail_from - no value.

Ustaw sobie nagłowek From. Przykład znajdziesz tutaj ("Przykład #2 ysłanie e-maila z dodatkowymi nagłówkami.").
sider89
Mam ustawione From, tylko w postaci zmiennej 'email'. To musi być coś innego...
qrzysztof
A co w tej funkcji mail robi telefon?

Nie za dużo tych parametrów? Tak jakby 2 tematy były.

Usuwasz albo $telefon, albo "formularz kontaktowy" i śmiga.
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.