Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Forumularz - dwa pola - min. jedno obowiązkowe
Forum PHP.pl > Forum > Przedszkole
falisty
Witam serdecznie!
PHP znam trochę, ale na pewno nie tak dobrze jak Wy!
Nie stworzyłem tego formularza sam, został on ściągnięty z sieci. Dodałem tylko do niego pole Tel.
W tym formularzu mam kilka zmiennych. Najważniejsze dla mnie mnie to $formEmail oraz $formTel. Zależy mi na tym, aby formularz wysyłał e-mail'a, wtedy i tylko wtedy, gdy przynajmniej jedno pole jest wypełnione. Podejrzewam, że będzie trzeba trochę więcej zmienić, niż tylko dodać if w odpowiednim miejscu, ponieważ w tym momencie formularz wyświetla "Proszę podać swój adres e-mail", gdy się go nie wpisze. Podanie telefonu też ma wystarczyć. Oczywiście obydwa pola wypełnione również wysyłają formularz.
Mam nadzieje, że mój problem opisałem w miarę jasno smile.gif

  1. <?php
  2. } else {
  3. //twoje dane
  4. $email = 'jan@wp.pl';
  5.  
  6. //dane z formularza
  7. $formName = $_POST['formName'];
  8. $formEmail = $_POST['formEmail'];
  9. $formText = $_POST['formText'];
  10. $formTel = $_POST['formTel'];
  11.  
  12. if(!empty($formName) && !empty($formTel) && !empty($formEmail) && !empty($formText)) {
  13. //--- początek funkcji weryfikującej adres e-mail ---
  14. function checkMail($checkmail) {
  15. if(filter_var($checkmail, FILTER_VALIDATE_EMAIL)) {
  16. if(checkdnsrr(array_pop(explode("@",$checkmail)),"MX")){
  17. return true;
  18. }else{
  19. return false;
  20. }
  21. } else {
  22. return false;
  23. }
  24. }
  25. //--- koniec funkcji ---
  26.  
  27. if(checkMail($formEmail)) {
  28. //dodatkowe informacje: ip i host użytkownika
  29. $ip = $_SERVER['REMOTE_ADDR'];
  30. $host = gethostbyaddr($_SERVER['REMOTE_ADDR']);
  31. $protocol = strpos(strtolower($_SERVER['SERVER_PROTOCOL']),'https')
  32. === FALSE ? 'http' : 'https';
  33. $host = $_SERVER['HTTP_HOST'];
  34. $script = $_SERVER['SCRIPT_NAME'];
  35. $params = $_SERVER['QUERY_STRING'];
  36.  
  37. $currentUrl = $protocol . '://' . $host . $script . '?' . $params;
  38.  
  39. //tworzymy szkielet wiadomości
  40. //treść wiadomości
  41. $mailText = "Treść wiadomości: \n$formText \n\nOd: $formName \n\ne-mail: $formEmail \n\ntelefon: $formTel \n\n($ip, $host)\nLink: $currentUrl";
  42.  
  43. //adres zwrotny
  44. $mailHeader = "From: $formName <$formEmail>";
  45.  
  46. //funkcja odpowiedzialna za wysłanie e-maila
  47. @mail($email, '[WWW][EPDM]', $mailText, $mailHeader) or die('Błąd: wiadomość nie została wysłana');
  48.  
  49. //komunikat o poprawnym wysłaniu wiadomości
  50. echo 'Wiadomość została wysłana, <a style="font-size:16px;" href="dzial_hydroizolacje_dachow_EPDM.html">POWRÓT</a> ';
  51. } else {
  52. echo 'Proszę podać swój adres e-mail, <a href="dzial_hydroizolacje_dachow_EPDM_kontakt.php">POWRÓT</a>';
  53. }
  54. }
  55. else {
  56. //komunikat w przypadku nie powodzenia
  57. echo 'Wypełnij wszystkie pola formularza';
  58. }
  59. }
  60. ?>
Turson
  1. jeżeli(istnieje telefon lub email){
  2. wyślij
  3. }
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.