Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Formularz- Wysyłanie automatyczny Mail potwierdzający
Forum PHP.pl > Forum > PHP
torq
Witam,

potrzebuję pomocy przy formularzu.

Ustawiłem sobie już wszystko ale za cholerę nie mogę dojść jak zrobić, żeby w momencie wysłania do mnie wiadomości był wysyłany mail do niego z "Podziękowaniem czy jakimś tekstem linkiem grafiką" do osoby która do mnie napisała zarazem było by to potwierdzenie wysłania maila.

Skrypt działa gotowy tylko trzeba dodać to opcję nad którą ślęczę już spory czas. Prosił bym o pomoc w rozwiązaniu tego problemu.

Z góry dziękuję.


  1. <!DOCTYPE html>
  2. <html dir="ltr" lang="pl-PL">
  3. <head>
  4. <meta charset="UTF-8" />
  5. <title>formularz</title>
  6. </head>
  7. <body>
  8.  
  9. <STYLE type="text/css">
  10. * {
  11.  
  12. padding: 0;
  13.  
  14. margin: 0;
  15.  
  16. }
  17.  
  18.  
  19. /* FORMS */
  20.  
  21.  
  22. input[type=submit], input[type=text], textarea {
  23. background-image: -moz-linear-gradient(top, rgba(255,255,255,0.2) 30%, rgba(251,251,251,0.2) 31%, rgba(0,0,0,0.1) 100%);
  24. background-image: -webkit-gradient(linear, left top, left bottom, color-stop(30%,rgba(255,255,255,0.2)), color-stop(31%,rgba(251,251,251,0.2)), color-stop(100%,rgba(0,0,0,0.1)));
  25. background-image: -webkit-linear-gradient(top, rgba(255,255,255,0.2) 30%,rgba(251,251,251,0.2) 31%,rgba(0,0,0,0.1) 100%);
  26. background-image: -o-linear-gradient(top, rgba(255,255,255,0.2) 30%,rgba(251,251,251,0.2) 31%,rgba(0,0,0,0.1) 100%);
  27. background-image: -ms-linear-gradient(top, rgba(255,255,255,0.2) 30%,rgba(251,251,251,0.2) 31%,rgba(0,0,0,0.1) 100%);
  28. background-image: linear-gradient(top, rgba(255,255,255,0.2) 30%,rgba(251,251,251,0.2) 31%,rgba(0,0,0,0.1) 100%);
  29. filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#33ffffff', endColorstr='#1a000000',GradientType=0 );
  30.  
  31. -webkit-border-radius: 6px;
  32. -moz-border-radius: 6px;
  33. border-radius: 6px;
  34. border: 1px solid;
  35. box-shadow: 0 1px 0 rgba(255,255,255,0.5) inset;
  36.  
  37. font-size: 12px;
  38. font-weight: bold;
  39. text-shadow: 0 1px 0 rgba(0,0,0,0.5);
  40. text-decoration: none;
  41.  
  42. position: relative;
  43. line-height: 16px;
  44. padding:0px 14px;
  45. margin-bottom:18px;
  46. }
  47.  
  48. /* SUBMIT */
  49. input[type=submit] {
  50. background-color: #FF8400;
  51. border-color: #F27D00;
  52. color:#FFF;
  53. height: 40px;
  54. width:210px;
  55. cursor:pointer;
  56. }
  57.  
  58. /* TEXT INPUT */
  59. input[type=text] {
  60. background-color: #0ea4e4;
  61. border-color: #0b81b4;
  62. color:#FFF;
  63. height: 40px;
  64. width:180px;
  65. }
  66.  
  67. #layouts {
  68.  
  69. margin: 0 auto;
  70.  
  71. width: 600px;
  72. background-color: #ffffff;
  73.  
  74. }
  75.  
  76. #box {
  77. width: 220px;
  78. margin: 0 auto;
  79. background-color: #ffffff;
  80. }
  81.  
  82. </STYLE>
  83.  
  84.  
  85. <div id="layouts"><!-- start layouta -->
  86. <br> <br> <br> <br>
  87. <div id="box">
  88. <?php
  89. if(empty($_POST['submit'])) {
  90. ?>
  91. <form action="" method="post">
  92. <input type="text" name="formName" value="Imię" onblur="if(value=='') value = 'Imię'" onfocus="if(value=='Imię') value = ''"/><br />
  93. <input type="text" name="formEmail" value="E-mail" onblur="if(value=='') value = 'E-mail'" onfocus="if(value=='E-mail') value = ''"/><br />
  94. <input type="text" name="formKod" value="Kod- jeżeli posiadasz" onblur="if(value=='') value = 'Kod- jeżeli posiadasz'" onfocus="if(value=='Kod- jeżeli posiadasz') value = ''"/><br />
  95.  
  96. <input type="submit" name="submit" value="Wyślij"/>
  97.  
  98. </form>
  99. <?php
  100. } else {
  101. //twoje dane
  102. $email = 'mail';
  103.  
  104. //dane z formularza
  105. $formName = $_POST['formName'];
  106. $formEmail = $_POST['formEmail'];
  107. $formKod = $_POST['formKod'];
  108.  
  109. if(!empty($formName) && !empty($formEmail) && !empty($formKod)) {
  110. //--- początek funkcji weryfikującej adres e-mail ---
  111. function checkMail($checkmail) {
  112. if(filter_var($checkmail, FILTER_VALIDATE_EMAIL)) {
  113. if(checkdnsrr(array_pop(explode("@",$checkmail)),"MX")){
  114. return true;
  115. }else{
  116. return false;
  117. }
  118. } else {
  119. return false;
  120. }
  121. }
  122. //--- koniec funkcji ---
  123.  
  124. if(checkMail($formEmail)) {
  125. //dodatkowe informacje: ip i host użytkownika
  126. $ip = $_SERVER['REMOTE_ADDR'];
  127. $host = gethostbyaddr($_SERVER['REMOTE_ADDR']);
  128. $protocol = strpos(strtolower($_SERVER['SERVER_PROTOCOL']),'https')
  129. === FALSE ? 'http' : 'https';
  130. $host = $_SERVER['HTTP_HOST'];
  131. $script = $_SERVER['SCRIPT_NAME'];
  132. $params = $_SERVER['QUERY_STRING'];
  133.  
  134. $currentUrl = $protocol . '://' . $host . $script . '?' . $params;
  135.  
  136. //tworzymy szkielet wiadomości
  137. //treść wiadomości
  138. $mailText = "$formName, </br> $formKod, $formEmail ($ip, $host)/nLink: $currentUrl";
  139.  
  140. //adres zwrotny
  141. $mailHeader = "From: $formName <$formEmail>";
  142.  
  143. //funkcja odpowiedzialna za wysłanie e-maila
  144. @mail($email, '[Zapytanie]', $mailText, $mailHeader) or die('Błąd: wiadomość nie została wysłana');
  145.  
  146. //komunikat o poprawnym wysłaniu wiadomości
  147. echo 'Wiadomość została wysłana';
  148. } else {
  149. echo 'Adres e-mail jest niepoprawny';
  150. }
  151. }
  152. else {
  153. //komunikat w przypadku nie powodzenia
  154. echo 'Wypełnij wszystkie pola formularza';
  155. }
  156. }
  157. ?>
  158. </div><!-- end box -->
  159. </div><!-- end layouta -->
  160.  
  161. </body>
  162. </html>
KR2615
  1. //funkcja odpowiedzialna za wysłanie e-maila
  2. @mail($email, '[Zapytanie]', $mailText, $mailHeader) or die('Błąd: wiadomość nie została wysłana');
  3. @mail($formEmail, '[Podziękowanie]', 'Tekst podziękowania') or die('Błąd: wiadomość nie została wysłana');

Jeśli chcesz umieścicć grafikę musisz zmodyfikować nagłówki emaila (header) na text/html i tam ją umieścić
torq
Cytat(KR2615 @ 12.02.2014, 08:12:06 ) *
  1. //funkcja odpowiedzialna za wysłanie e-maila
  2. @mail($email, '[Zapytanie]', $mailText, $mailHeader) or die('Błąd: wiadomość nie została wysłana');
  3. @mail($formEmail, '[Podziękowanie]', 'Tekst podziękowania') or die('Błąd: wiadomość nie została wysłana');

Jeśli chcesz umieścicć grafikę musisz zmodyfikować nagłówki emaila (header) na text/html i tam ją umieścić


Dziękuję wszystko działa jak należy oprócz polskich znaków masz na to jakąś radę ? albo jakiś dopisek do kodu ?
Czyli wystarczy że zmienię na text/html i tam później dam przykładowo "odpowiedz.html"?
L0k0
Cytat(torq @ 12.02.2014, 11:09:14 ) *
Dziękuję wszystko działa jak należy oprócz polskich znaków masz na to jakąś radę ? albo jakiś dopisek do kodu ?
Czyli wystarczy że zmienię na text/html i tam później dam przykładowo "odpowiedz.html"?


  1. $headers = 'MIME-Version: 1.0' . "\r\n";
  2. $headers .= 'Content-type: text/html; charset=utf-8' . "\r\n";
torq
  1. $host = $_SERVER['HTTP_HOST'];
  2. $script = $_SERVER['SCRIPT_NAME'];
  3. $params = $_SERVER['QUERY_STRING'];
  4.  
  5. $headers = 'MIME-Version: 1.0' . "\r\n";
  6. $headers .= 'Content-type: text/html; charset=utf-8' . "\r\n";


Wstawiłem dokładnie to w to miejsce ale skrypt nie idzie? zrobiłem może coś źle ?
nospor
Wypadaloby te naglowki dodac do maila.... Loko ci tylko podal przyklad, a nie kod na bezmyslne kopiowanie.
torq
Cytat(nospor @ 12.02.2014, 14:37:08 ) *
Wypadaloby te naglowki dodac do maila.... Loko ci tylko podal przyklad, a nie kod na bezmyslne kopiowanie.



Nie jest to moja dziedzina niestety i nie chce nikogo urazić tym, że się nie znam.

Po prostu potrzebuje to zrobić i naprawdę siedzę już jakiś czas nad tym i staram się rozwiązywać problemy.

Wiem, że trzeba to wkleić do funkcji mail bo to jest parametr.

Czy był by mi ktoś wstanie to pokazać, bardzo bym prosił.
nospor
W swoim kodzie generujesz juz naglowki w zmiennej
$mailHeader = "From: $formName <$formEmail>";
ktora dodajesz do mail.
Naglowki ktore podal Loko, masz dodac do tej zmiennej
torq
Cytat(nospor @ 12.02.2014, 14:43:40 ) *
W swoim kodzie generujesz juz naglowki w zmiennej
$mailHeader = "From: $formName <$formEmail>";
ktora dodajesz do mail.
Naglowki ktore podal Loko, masz dodac do tej zmiennej



Dodałem to na zasadzie:

  1. $mailHeader = "From: $formName <$formEmail> $headers" ;


Wcześniej podając w funkcji:

  1. $headers = 'MIME-Version: 1.0' . "\r\n";
  2. $headers .= 'Content-type: text/html; charset=utf-8' . "\r\n";


Dalej jest to samo a kiedy dodaje same :'Content-type: text/html; charset=utf-8' . "\r\n"; wykrusza mi skrypt.

nospor
  1. $mailHeader = "From: $formName <$formEmail>\r\n";
  2. $mailHeader .= 'MIME-Version: 1.0' . "\r\n";
  3. $mailHeader .= 'Content-type: text/html; charset=utf-8' . "\r\n";
torq
Cytat(nospor @ 12.02.2014, 15:19:52 ) *
  1. $mailHeader = "From: $formName <$formEmail>\r\n";
  2. $mailHeader .= 'MIME-Version: 1.0' . "\r\n";
  3. $mailHeader .= 'Content-type: text/html; charset=utf-8' . "\r\n";



Tą opcję też przechodziłem dodanie tylko mail ale to też nie zdziała :/
dale są krzaczki tylko teraz wiem, że próby były dobre.
L0k0
Cytat(torq @ 12.02.2014, 15:27:41 ) *
Tą opcję też przechodziłem dodanie tylko mail ale to też nie zdziała :/
dale są krzaczki tylko teraz wiem, że próby były dobre.


No to teraz kombinuj z kodowaniem. Jeśli utf8 wywala krzaki to znaczy, że w tym kodowaniu nie są generowane polskie znaki u Ciebie (tak mi się wydaje).
Teraz po prostu próbuj ISO-8859-2, windows-1250 itd. Któreś muszą pasować, nie ma bata.

Co w ogóle masz w meta w index'ie?

Pozdro
Turson
Mail w utf8, dokument w utf8, format pliku utf8 bez bom i nie ma bata, żeby polskie znaki nie przeszły.
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.