Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Problem z formularzem kontaktowym
Forum PHP.pl > Forum > PHP
bwiecek
Mam stronkę w html i znalazłem na necie fajny formularz w php wkleiłem wszystko wygląda ok. Gdy na moim mailu sprawdzam wiadomości to w mailu z phpscript mam wszystko oprucz treści wiadomości ponizej wyswietlam sktypt:
  1. <?php
  2. ////Należy podać adres e-mail na który majš trafiać wiadomosci wyslane przy pomocy formularza:
  3. $admin_email='Tutaj podaj swój adres e-mail';
  4. ///Należy podać wartoc koloru:
  5. $kolor="#000000";
  6.  
  7.  
  8. $kontakt=$_GET['kontakt'];
  9. if($kontakt==0)
  10. {
  11. echo"<center><font color=$kolor>
  12. <FORM action=".$_SERVER['PHP_SELF']."?kontakt=1 method=post>
  13. <br><br>
  14. <center><b>Twój adres email:<br></b> <INPUT type=text name=email_user><br><br>
  15. <b>Temat wiadomości:</b>
  16. <br>
  17. <INPUT type=text name=email_temat>
  18. <br><br><b>Treść wiadomości:</b><br>
  19. <TEXTAREA name=email_tresc COLS=30 ROWS=10></TEXTAREA><BR><BR>
  20. <b>Podpis:</b><br> <INPUT type=text name=email_nick><br><br>
  21. <input type=checkbox name=send_to_me value=1 />Wyślij kopię na swój adres<br><br><br><br>
  22. <INPUT type=submit value=Wyślij>
  23.  
  24. </FORM></font>";
  25. }
  26.  
  27.  
  28. if($kontakt==1)
  29. {
  30. ///Funkcja sprawdzajšca poprawnosc adresu email:
  31. function ValidEmail($email_user) {
  32. if (!eregi("^[_.0-9a-z-]+@([0-9a-z][0-9a-z-]+.)+[a-z]{2,4}$" , $email_user)) {
  33. return false;
  34. }
  35. return true;
  36. }
  37. ///Koniec funkcji
  38.  
  39.  
  40. $email_user=$_POST['email_user'];
  41. $email_temat=$_POST['email_temat'];
  42. $email_tresc=$_POST['email_tresc'];
  43. $email_nick=$_POST['email_nick'];
  44. $send_to_me=$_POST['send_to_me'];
  45. $email_data=date("Y-m-d H:i:s");
  46. $user_IP = $_SERVER["REMOTE_ADDR"];
  47. $email_tresc=ereg_replace("\r", '', $email_tresc);
  48. $email_tresc=ereg_replace("\n\n", '</p><p>', $email_tresc);
  49. $email_tresc=ereg_replace("\n", '<br />', $email_tresc);
  50.  
  51.  
  52. $message ="<html>";
  53. $message .="<head>";
  54. $message .="<META HTTP-EQUIV=\"Content-type\" CONTENT=\"text/html; charset=iso-8859-2\">";
  55. $message .="</head>";
  56. $message .="<b>Wiadomość wysłana za pośrednictwem formularza strony</b><br><br><B>Wiadomość wysłano z IP:</b> $user_IP<br><B>Nadawca:</B> $email_nick < $email_user ><br><B>Temat:</b> $email_temat<br><B>Wysłano:</B> $email_data<br><br><b>Treść wiadomości:</b><br><hr><br><br>";
  57. $message .=$email_tresc;
  58. $message .="</body>";
  59. $message .="</html>";
  60. $email_subject="<META HTTP-EQUIV=\"Content-type\" CONTENT=\"text/html; charset=iso-8859-2\">";
  61. $email_subject .=$email_temat;
  62. $headers .= "From: $email_nick<$email_user>\r\nReply-To: $email_user\r\nContent-type: text/html; charset=iso-8859-2";
  63.  
  64. if (ValidEmail($email_user))
  65. {
  66. ///Wyslanie wiadomosci do administratora:
  67. if(mail($admin_email,$email_temat,$message,$headers))
  68. {
  69. echo"<br><center><h2>Wiadomość wysłano!</h2>";
  70. }
  71. else
  72. {
  73. echo"<br><center><h2>Wystšpił błšd! Wiadomości nie wysłano!</h2>";
  74. };
  75.  
  76.  
  77.  
  78. //////Wyslanie wiadomosci do uzytkownika, gdy zaznaczyl opcje wyslania kopii
  79. if($send_to_me==1)
  80. {
  81.  
  82. mail($email_user,$email_temat,$message,$headers);
  83.  
  84. }
  85. }
  86. else
  87. {
  88. echo"<br><center><h2>Niepoprawny adres email!</h2>";
  89. };
  90.  
  91. }
  92.  
  93.  
  94.  
  95.  
  96. ?>
darko
To strasznie fajnie, ale oprÓcz tego, co napisałeś - niewiele wynika. Ogólnie znajdowanie i "wklejanie" skryptów z netu najczęściej tak właśnie się kończy. Nie wiesz, co, gdzie, jak ,dlaczego itd. Polecam lekturę i zgłębienie następujących tematów (do wyszukania):
- filter_var
- preg_replace
- dlaczego warto używać wszędzie kodowania utf-8?
- wysyłania wiadomości e-mail via smtp
- dlaczego nie korzystamy z funkcji mail() oraz dlaczego nie polecamy sprawdzać, co zwraca?

ps.
co Ci przyjdzie z tego, że skrypt w Twoim mniemaniu działa, jeśli go nie rozumiesz i nie jesteś w stanie nanieść niewielkich poprawek, chociaż przyznam, że wrzuciłbym to do kosza.
bartek124
Kod jest masakryczny...

W skrypcie masz zmienną $email_tresc, a w funkcji mail() używasz $message, oto błąd.
bwiecek
Ja w ogóle nie znam php ale potrzebuje formulaza czy poprawił by mi ktos albo napisal lepszy?questionmark.gif
lord2105
Kurs PHP
bwiecek
Ale ja nie chce uczyc sie php potrzebuje tylko formularz
lord2105
Google
bwiecek
no wlasnie ten byl z google wyzej ktos napisal ze z google zazwyczaj beda do smieci. moze szybko ktos kto zna sie na php by go przerobil zeby dzialal
lord2105
Cytat
Kod jest masakryczny...

W skrypcie masz zmienną $email_tresc, a w funkcji mail() używasz $message, oto błąd.


i tu kolega sie myli...

  1. $message .=$email_tresc;


Pod ta linijka:

  1. if (ValidEmail($email_user))
  2. {


daj:

  1. var_dump($_POST);


i zobazc co pokaze sie na ekranie podczas wysylania emaila...

bwiecek
Cytat(lord2105 @ 12.12.2010, 15:11:12 ) *
i tu kolega sie myli...

  1. $message .=$email_tresc;


Pod ta linijka:

  1. if (ValidEmail($email_user))
  2. {


daj:

  1. var_dump($_POST);


i zobazc co pokaze sie na ekranie podczas wysylania emaila...


wyskakuje mi cos takiego
array(5) { ["email_user"]=> string(13) "bwiecek@wp.pl" ["email_temat"]=> string(10) "final test" ["email_tresc"]=> string(10) "final test" ["email_nick"]=> string(2) "ft" ["send_to_me"]=> string(1) "1" }
Wiadomość wysłano!

co zrobic?questionmark.gif?
CuteOne
Mail wysyłasz ze swojego PC czy z serwera?

ps. w header chyba brakuje MIME-Version: 1.0 ?

podmień to:
  1. $headers .= "From: $email_nick<$email_user>\r\nReply-To: $email_user\r\nContent-type: text/html; charset=iso-8859-2";

na to:
  1. $headers .= "From: $email_nick<$email_user>\r\n";
  2. $headers .= "Reply-To: $email_user\r\n";
  3. $headers .= "MIME-Version: 1.0\n";
  4. $headers .= "Content-type: text/html; charset=iso-8859-2\r\n";

jeżeli coś się spieprzy:
  1. $headers .= "From: $email_nick<$email_user>\r\n";
  2. $headers .= "Reply-To: $email_user\r\n";
  3. $headers .= "MIME-Version: 1.0\r\n";
  4. $headers .= "Content-type: text/html; charset=iso-8859-2\r\n";
bwiecek
Wyszedł z serwera. "ps. w header chyba brakuje MIME-Version: 1.0 ?" - nie znam sie
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.