Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Dodanie sprawdzania wypelnienia pól do formularza
Forum PHP.pl > Forum > Przedszkole
Poczatkujacy_Web
Witam,

mam forumularz, który wygląda tak:

  1. <FORM NAME="zalacznik" METHOD="post" ACTION="email.php" ENCTYPE="multipart/form-data">
  2. Imię: <input type="text" id="nick" name="imie" ><br><br>
  3. Nazwisko: <input type="text" name="nazwisko" id="nazw"><br><BR>
  4. <input type="hidden" name="MAX_FILE_SIZE" value="8000000" />
  5. Załącznik : (niewymagane) <br><INPUT type="file" name="plik1"><br><br>
  6. Adres e-mail:<input type="text" name="email" id="email" ><br><br>
  7. Telefon:<input type="text" name="tel" id="tel" ><br><br>
  8. Treść wiadomości:<textarea name="tresc" id="tresc" rows="3" cols="20" ></textarea><br><br>
  9. <input type="hidden" name="wyslij" value="1" />
  10. <br>
  11. <INPUT TYPE="SUBMIT" VALUE="Wyślij wiadomość">
  12. </FORM>


tutaj kod odpowiedzialny za wysylke tego e-maila

  1. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  2. <?php
  3.  
  4.  
  5. //sprawdzenie czy załącznik pochodzi z formularza
  6. if ($_POST["wyslij"]==1)
  7. $nazwisko = $_POST["nazwisko"];
  8.  
  9. $imie = $_POST["imie"];
  10.  
  11. $email = $_POST["email"];
  12.  
  13. $tel = $_POST["tel"];
  14.  
  15. $tresc= $_POST["tresc"];
  16. {
  17. srand((double)microtime()*1000000);
  18. $znacznik = md5(uniqid(rand()));
  19.  
  20. // dane o odbiorcy, nadawcy
  21. $odbiorca="ja@gmail.com";
  22. $tytul="Tytul";
  23. $nadawca = "$nazwisko $imie";
  24. $nadawca_mail="$email";
  25. $nadawca_tel="$tel";
  26.  
  27. // treść listu
  28. $tresclistu = "
  29. Nazwisko: $nazwisko
  30. Imię: $imie
  31. email: $email
  32. tel: $tel
  33. tresc: $tresc
  34.  
  35. ";
  36.  
  37.  
  38. // definicja nagłówków
  39. $naglowki = "From: $nadawca <$nadawca_mail>\n";
  40. $naglowki .= "MIME-Version: 1.0\n";
  41. $naglowki .= "Content-Type: multipart/mixed;\n";
  42. $naglowki .= "\tboundary=\"___$znacznik==\"";
  43.  
  44. // nagłówki listu
  45. $tresc="--___$znacznik==\n";
  46. $tresc .="Content-Type: text/plain; charset=\"UTF-8\"\n";
  47. $tresc .="Content-Transfer-Encoding: 8bit\n";
  48. $tresc .="\n$tresclistu\n";
  49.  
  50. // nagłówki i obsługa załącznika
  51. $plik_nazwa_tmp = $_FILES["plik1"]["tmp_name"];
  52. $plik_nazwa_oryginalna = $_FILES["plik1"]["name"];
  53. $plik_wielkosc = $_FILES["plik1"]["size"];
  54.  
  55. if (is_uploaded_file($plik_nazwa_tmp))
  56. {
  57. $tresc .="--___$znacznik==\n";
  58. $tresc .="Content-Type: image/gif\n";
  59. $tresc .="Content-Disposition: attachment;\n";
  60. $tresc .=" filename=\"$plik_nazwa_oryginalna\"\n";
  61. $tresc .="Content-Transfer-Encoding: base64\n\n";
  62. $f = fopen($plik_nazwa_tmp,"rb");
  63. $dane = fread($f,filesize($plik_nazwa_tmp));
  64. fclose($f);
  65. $tresc .= chunk_split(base64_encode($dane));
  66. $tresc .="--___$znacznik==--\n";
  67. }
  68.  
  69. // wysłanie listu
  70.  
  71.  
  72.  
  73. if (mail($odbiorca,$tytul,$tresc,$naglowki))
  74. {
  75. print "Dziękujemy! E-mail został wysłany poprawnie. <br><a href=\"#">Powrót do strony głównej</a> .";
  76. }
  77. else
  78. {
  79. print "E-mail NIE został wysłany poprawnie. <br>Prosimy o <a href=\"#">powrót</a> i wysłanie e-maila ponownie.";
  80. }
  81. }
  82. ?>


Jak dorobić sprawdzanie czy wszystkie pola zostały wypełnione oraz czy został dołączony załącznik?

Jeśli wszystko ok to e-mail ma iść a jeśli nie ma np załącznika to ma wyskoczyć komunikat że proszę dołączyć plik.

Z góry dziękuje za każdą pomoc!
Turson
trim
empty
Poczatkujacy_Web
Próbowałem to rozwiązać w ten sposób ale nie działa...

  1. // wysłanie listu
  2.  
  3. if( (!empty($odbiorca)) || (!empty($tytul)) || (!empty($tresc)) || (!empty($naglowki)) || (!empty($plik_nazwa_tmp)) )
  4. {
  5. print "E-mail NIE został wysłany poprawnie. <br>Prosimy o <a href=\"#\">powrót</a> i wysłanie e-maila ponownie.";
  6.  
  7. }
  8.  
  9. else
  10. {
  11. print "Dziękujemy! E-mail został wysłany poprawnie. <br><a href=\"#\">Powrót do strony głównej</a> .";
  12. }


co robię źle?
Turson
Masz sprawdzac $imie $mail $tresc itd...
Poczatkujacy_Web
Cytat(Turson @ 4.09.2014, 12:53:05 ) *
Masz sprawdzac $imie $mail $tresc itd...


Możesz mi jakoś na przykładzie pokazać jak to powinno wyglądac?
Turson
Skoro chcesz walidować formularz to sprawdz te dane
  1. $imie = $_POST["imie"];
  2.  
  3. $email = $_POST["email"];
  4.  
  5. $tel = $_POST["tel"];
  6.  
  7. $tresc= $_POST["tresc"];
Poczatkujacy_Web
Cytat(Turson @ 4.09.2014, 13:56:41 ) *
Skoro chcesz walidować formularz to sprawdz te dane
  1. $imie = $_POST["imie"];
  2.  
  3. $email = $_POST["email"];
  4.  
  5. $tel = $_POST["tel"];
  6.  
  7. $tresc= $_POST["tresc"];



Jak robie tak to mam syntax error

  1. if( (!empty($imie)) || (!empty($email)) || (!empty($tel)) || (!empty($tresc)) || (!empty($plik_nazwa_tmp)) )
  2. {
  3. print "E-mail NIE został wysłany poprawnie. <br>Prosimy o <a href=\"#\">powrót</a> i wysłanie e-maila ponownie.";
  4.  
  5. }
  6.  
  7. else (mail($odbiorca,$tytul,$tresc,$naglowki))
  8. {
  9. print "Dziękujemy! E-mail został wysłany poprawnie. <br><a href=\"#">Powrót do strony głównej</a> .";
  10. }


co robie zle?
Turson
Linia 9
brakuje backslash po #
Poczatkujacy_Web
Cytat(Turson @ 4.09.2014, 16:02:24 ) *
Linia 9
brakuje backslash po #



ok, bledu nie ma ale wiadomosc nie jest wysylana

  1. if( (!empty($imie)) || (!empty($email)) || (!empty($tel)) || (!empty($tresc)) || (!empty($plik_nazwa_tmp)) )
  2. {
  3. print "E-mail NIE został wysłany poprawnie. <br>Prosimy o <a href=\"#\">powrót</a> i wysłanie e-maila ponownie.";
  4.  
  5. }
  6.  
  7. elseif (mail($odbiorca,$tytul,$tresc,$naglowki))
  8. {
  9. print "Dziękujemy! E-mail został wysłany poprawnie. <br><a href=\"#\">Powrót do strony głównej</a> .";
  10. }
Turson
Jakiś komunikat? Wysyłasz wiadomość z serwera lokalnego czy zewnętrznego?
Poczatkujacy_Web
komunikat "E-mail NIE został wysłany poprawnie. <br>Prosimy o <a href=\"#\">powrót</a> i wysłanie e-maila ponownie.", wiadomosc idzie z serwera zewnetrznego
Turson
  1. if( (empty($imie)) || (empty($email)) || (empty($tel)) || (empty($tresc)) || (empty($plik_nazwa_tmp)) )
Poczatkujacy_Web
nie wiem czy nie chcecie pomóc czy nie chce wam się zagłębiać w kod... w każdym razie poradziłem sobie. przeniosłem stronę na wp a tam już są gotowe rozwiązania.
nospor
Ale tu sie nie ma w co zaglębiać... jeden durny warunek i po sprawie, ktory notabene juz dostales. Ale skoro TObie sie nie chce, to pomysl, czemu nam ma się chciec?
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.