Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Wysyłanie danych z formularza maila
Forum PHP.pl > Forum > Przedszkole
bogo143
Witam
Mam dany formularz:
  1. <form action="wynik.php" method="post" target="_new" >
  2. Samochód</br>
  3. <select name="samochod">
  4. <option value="Opel Astra III">Opel Astra III</option>
  5. <option value="Ford Focus">Ford Focus</option>
  6. <option value="Renault Kangoo">Renault Kangoo</option>
  7. <option value="Renault Laguna">Renault Laguna</option>
  8. <option value="Skoda Octavia">Skoda Octavia</option>
  9. </select></br>
  10. Data rozpoczęcia wynajmu </br>
  11. <input name="data_rozpoczecia" type="text" id="data_rozpoczecia" value="np. 2012-12-02" /></br>
  12. Godzina rozpoczęcia wynajmu </br>
  13. <input name="godzina_rozpoczecia" type="text" id="godzina_rozpoczecia" value="np. 10:57" /></br>
  14. Data zakończenia wynajmu </br>
  15. <input name="data_zakonczenia" type="text" id="data_zakonczenia" value="np. 2012-12-02" /></br>
  16. Godzina zakończenia wynajmu </br>
  17. <input name="godzina_zakonczenia" type="text" id="godzina_zakonczenia" value="np. 11:57" /></br>
  18. Miejsce wynajmu</br>
  19. <select name="wynajem">
  20. <option value="Kraków - dworzec główny">Kraków - dworzec główny</option>
  21. <option value="Wrocław - dworzec główny">Wrocław - dworzec główny</option>
  22. <option value="Paryż - dworzec główny">Paryż - dworzec główny</option>
  23. <option value="Barcelona - dworzec główny">Barcelona - dworzec główny</option>
  24. <option value="Lizbona - dworzec główny">Lizbona - dworzec główny</option>
  25. </select></br>
  26. Miejsce zwrotu</br>
  27. <select name="zwrot">
  28. <option value="Kraków - dworzec główny">Kraków - dworzec główny</option>
  29. <option value="Wrocław - dworzec główny">Wrocław - dworzec główny</option>
  30. <option value="Paryż - dworzec główny">Paryż - dworzec główny</option>
  31. <option value="Barcelona - dworzec główny">Barcelona - dworzec główny</option>
  32. <option value="Lizbona - dworzec główny">Lizbona - dworzec główny</option>
  33. </select></br>
  34. Płatność</br>
  35. <select name="platnosc">
  36. <option value="Gotówka">Gotówka</option>
  37. <option value="Przelew bankowy">Przelew bankowy</option>
  38. </select></br>
  39. Imię i nazwisko </br>
  40. <input name="imie_nazwisko" type="text" id="imie_nazwisko" value="np. Jan Kowalski" /></br>
  41. E-mail </br>
  42. <input name="mail" type="text" id="mail" value="np. jan.kowalski@kowalski.pl" /></br>
  43. Telefon </br>
  44. <input name="telefon" type="text" id="telefon" value="np. 111 111 111" /></br>
  45. Adres pełny</br>
  46. <textarea name="adres_pelny" cols="27" rows="10" id="adres_pelny"></textarea></br>
  47. Dodatkowe opcje</br>
  48.  
  49. <select name="opcje[]" multiple>
  50. <option value="Nawigacja satelitarna GPS" >Nawigacja satelitarna GPS</option>
  51. <option value="Fotelik dla małego dziecka">Fotelik dla małego dziecka</option>
  52. <option value="Fotelik dla starszego dziecka">Fotelik dla starszego dziecka</option>
  53. <option value="Bagażnik dachowy">Bagażnik dachowy</option>
  54. <br /><br />
  55.  
  56. Uwagi</br>
  57. <textarea name="uwagi" cols="27" rows="10" id="uwagi"></textarea></br>
  58. <input type="submit" value="Zarezerwuj" />
  59. <input name="Wyzeruj" type="reset" value="Wyzeruj" />
  60. </form>


Po wypełnieniu formularza wyświetla się wynik na stronie wynik.php i chciałbym żeby ten wynik był wysyłany na maila podanego przez klienta i na maila właściciela. Mam już pewną koncepcje w kodzie ale nie działa.


  1. <script type="text/javascript">
  2. function drukuj() {
  3. window.print();
  4. }
  5. </script>
  6. <?php
  7.  
  8. $samochod = $_POST['samochod'];
  9. $data_rozpoczecia = $_POST['data_rozpoczecia'];
  10. $godzina_rozpoczecia = $_POST['godzina_rozpoczecia'];
  11. $data_zakonczenia = $_POST['data_zakonczenia'];
  12. $godzina_zakonczenia = $_POST['godzina_zakonczenia'];
  13. $wynajem = $_POST['wynajem'];
  14. $zwrot = $_POST['zwrot'];
  15. $platnosc = $_POST['platnosc'];
  16. $imie_nazwisko = $_POST['imie_nazwisko'];
  17. $mail = $_POST['mail'];
  18. $telefon = $_POST['telefon'];
  19. $adres_pelny = $_POST['adres_pelny'];
  20. $opcje = $_POST['opcje'];
  21. $uwagi = $_POST['uwagi'];
  22.  
  23.  
  24. // funkcja obliczajaca roznice dat
  25. function roznica_data($data_rozpoczecia, $data_zakonczenia, $jednostka_czasu="zł")
  26. {
  27. $tablica = array(=>86400);
  28. return round(((strtotime($data_zakonczenia) - strtotime($data_rozpoczecia)) / $tablica[$jednostka_czasu])*100)." ".$jednostka_czasu;
  29. }
  30. echo "Samochód: ".$samochod."<br>";
  31. echo "Data rozpoczęcia wynajmu: ".$data_rozpoczecia."<br>";
  32. echo "Godzina rozpoczęcia wynajmu: ".$godzina_rozpoczecia."<br>";
  33. echo "Data zakończenia wynajmu: ".$data_zakonczenia."<br>";
  34. echo "Godzina zakończenia wynajmu: ".$godzina_zakonczenia."<br>";
  35. echo "Miejsce wynajmu: ".$wynajem."<br>";
  36. echo "Miejssce zwrotu: ".$zwrot."<br>";
  37. echo "Płatność: ".$platnosc."<br>";
  38. echo "Imie i nazwisko: ".$imie_nazwisko."<br>";
  39. echo "E-mail: ".$mail."<br>";
  40. echo "Telefon: ".$telefon."<br>";
  41. echo "Adres pełny: ".$adres_pelny."<br>";
  42. echo "Uwagi: ".$uwagi."<br>";
  43. echo "Dodatkowe opcje: <br>";
  44. echo($opcje[0])."<br>";
  45. echo($opcje[1])."<br>";
  46. echo($opcje[2])."<br>";
  47. echo($opcje[3])."<br>";
  48. echo "Łączna kwota do zapłaty wynosi: ";
  49. echo roznica_data("$data_rozpoczecia", "$data_zakonczenia")."<br />";
  50. ?>
  51. <?php
  52. //--- WYSŁANIE DANYCH Z FORMULARZA NA MAILA ---
  53. if(empty($_POST['submit'])) {
  54. ?>
  55. <input type="submit" name="submit" value="Wyślij formularz"/>
  56. <?php
  57. } else {
  58.  
  59. //twoje dane
  60. $email = 'XXXX@gmail.com';
  61.  
  62. //dane z formularza
  63. $imie_nazwisko = $_POST['formName'];
  64. $mail = $_POST['formEmail'];
  65. $formText = $_POST['formText'];
  66.  
  67. if(!empty($formName) && !empty($formEmail) && !empty($formText)) {
  68.  
  69. //--- początek funkcji weryfikującej adres e-mail ---
  70. function checkMail($checkmail) {
  71. if(filter_var($checkmail, FILTER_VALIDATE_EMAIL)) {
  72. if(checkdnsrr(array_pop(explode("@",$checkmail)),"MX")){
  73. return true;
  74. }else{
  75. return false;
  76. }
  77. } else {
  78. return false;
  79. }
  80. }
  81. //--- koniec funkcji ---
  82. if(checkMail($formEmail)) {
  83. //dodatkowe informacje: ip i host użytkownika
  84. $ip = $_SERVER['REMOTE_ADDR'];
  85. $host = gethostbyaddr($_SERVER['REMOTE_ADDR']);
  86.  
  87. //tworzymy szkielet wiadomości
  88. //treść wiadomości
  89. $mailText = "Samochód:\n$samochod\n
  90. Data rozpoczęcia wynajmu:\n$data_rozpoczecia\n
  91. Godzina rozpoczęcia wynajmu:\n$godzina_rozpoczecia\n
  92. Data zakończenia wynajmu:\n$data_zakonczenia\n
  93. Godzina zakończenia wynajmu:\n$godzina_zakonczenia\n
  94. Miejsce wynajmu:\n$wynajem\n
  95. Miejssce zwrotu:\n$zwrot\n
  96. Płatność:\n$platnosc\n
  97. Imie i nazwisko:\n$imie_nazwisko\n
  98. E-mail:\n$mail\n
  99. Telefon:\n$telefon\n
  100. Adres pełny:\n$adres_pelny\n
  101. Uwagi:\n$uwagi\n
  102. Dodatkowe opcje:\n
  103. ($opcje[0])\n
  104. ($opcje[1])\n
  105. ($opcje[2])\n
  106. ($opcje[3])\n
  107. Łączna kwota do zapłaty wynosi:\n
  108. roznica_data("$data_rozpoczecia", "$data_zakonczenia")
  109.  
  110. Od: $imie_nazwisko, $mail ";
  111.  
  112.  
  113.  
  114.  
  115. //adres zwrotny
  116. $mailHeader = "From: $imie_nazwisko <$formEmail>";
  117.  
  118. //funkcja odpowiedzialna za wysłanie e-maila
  119. @mail($email, 'Formularz kontaktowy', $mailText, $mailHeader) or die('Błąd: wiadomość nie została wysłana');
  120.  
  121. //komunikat o poprawnym wysłaniu wiadomości
  122. echo 'Wiadomość została wysłana';
  123. } else {
  124. echo 'Adres e-mail jest niepoprawny';
  125. }
  126.  
  127. } else {
  128. //komunikat w przypadku nie powodzenia
  129. echo 'Wypełnij wszystkie pola formularza';
  130. }
  131.  
  132. //--- koniec formularza ---
  133. }
  134. ?>
  135. <br />
  136. <a href="#" onclick="drukuj();">Kliknij w ten link, aby wydrukować zamówienie</a>.
timon27
Jeden z błędów, nie wiem czy jest więcej:
linijka 108, trzeba wyłączyć całą funkcję z deklaracji zmiennej.

Przede wszystkim powiedz jak napisałeś ten skrypt?
Wydaje mi się że kopiujesz duże fragmenty cudzego kodu zamiast budować srypt od najprostszych części.
Bo nie wierzę że napisałeś taki ładny formularz z phpem odbierającym, a teraz na forum wrzucasz skrypt z głupim błedem zagdnieżdżenia cudzysłowia, które każdy początkujący phpowiec spotyka co chwila.
bogo143
Szczerze ? Jedyne co użyłem z czyjegoś kodu to ten fragment:
  1. //--- początek funkcji weryfikującej adres e-mail ---
  2. function checkMail($checkmail) {
  3. if(filter_var($checkmail, FILTER_VALIDATE_EMAIL)) {
  4. if(checkdnsrr(array_pop(explode("@",$checkmail)),"MX")){
  5. return true;
  6. }else{
  7. return false;
  8. }
  9. } else {
  10. return false;
  11. }
  12. }
  13. //--- koniec funkcji ---
  14. if(checkMail($formEmail)) {
  15. //dodatkowe informacje: ip i host użytkownika
  16. $ip = $_SERVER['REMOTE_ADDR'];
  17. $host = gethostbyaddr($_SERVER['REMOTE_ADDR']);

I przyznaje że reszte to szukam rozwiązań, ale większość pisze samodzielnie, ale niestety dalej nie wiem jak poprawić ten kod i tym bardziej nie działa przycisk wyślij.
timon27
Działa mni dobrze po poprawie linijki 108 oraz po usunięciu:
target=_new
Więc to prawdopodobnie to.
bogo143
Usunałęm "target=_new" oraz linijkę 108 żeby sprawdzić, ale niestey dalej nie działa ten kod. Mam prośbę do timon27, jeżeli możesz to podeślij mi kod po Twojej edycji, bo może wprowadziłeś jeszcze jakieś dodatkowe zmiany,
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.