Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Pola wymagane w formularzu kontaktowym
Forum PHP.pl > Forum > Przedszkole
jacenty777
Witam,

prosiłbym o pomoc jak w temacie.
Chciałbym, aby skrypt PHP sprawdzał, czy pola wymagane są wypełnione (imię, nazwisko, email, kod pocztowy).
Jeżeli nie, aby wyświetliła się informacja o konieczności wypełnienia pól np. "Nie wypełniłeś wszystkich pól wymaganych" i powrót do formularza.
Fajnie by było, aby nie znikały treści już wcześniej wprowadzone.

Nie jestem programistą lecz grafikiem, jednak stanąłem przed takim wyzwaniem, więc o ile z css sobie radzę, to już PHP dla mnie czarna magia.

poniżej kod dla contactengine.php

  1. <?php
  2.  
  3. $EmailFrom = "aaa@aaa.pl";
  4. $EmailTo = "aaa@aaa.pl";
  5. $Subject = "Informacja z formularza kontaktowego";
  6. $Name = Trim(stripslashes($_POST['Imie']));
  7. $Surname = Trim(stripslashes($_POST['Nazwisko']));
  8. $Address = Trim(stripslashes($_POST['Adres']));
  9. $City = Trim(stripslashes($_POST['Miasto']));
  10. $Code = Trim(stripslashes($_POST['Kod']));
  11. $Tel = Trim(stripslashes($_POST['Telefon']));
  12. $Email = Trim(stripslashes($_POST['E-mail']));
  13. $Message = Trim(stripslashes($_POST['Message']));
  14.  
  15. // validation
  16. $validationOK=true;
  17. if (!$validationOK) {
  18. print "<meta http-equiv=\"refresh\" content=\"0;URL=error.html\">";
  19. }
  20.  
  21. // prepare email body text
  22. $Body = "";
  23. $Body .= "Imię: ";
  24. $Body .= $Name;
  25. $Body .= "\n";
  26. $Body .= "Nazwisko: ";
  27. $Body .= $Surname;
  28. $Body .= "\n";
  29. $Body .= "Adres: ";
  30. $Body .= $Address;
  31. $Body .= "\n";
  32. $Body .= "Miasto: ";
  33. $Body .= $City;
  34. $Body .= "\n";
  35. $Body .= "Kod pocztowy: ";
  36. $Body .= $Code;
  37. $Body .= "\n";
  38. $Body .= "Adres e-mail: ";
  39. $Body .= $Email;
  40. $Body .= "\n";
  41. $Body .= "Telefon: ";
  42. $Body .= $Tel;
  43. $Body .= "\n";
  44. $Body .= "Wiadomość: ";
  45. $Body .= $Message;
  46. $Body .= "\n";
  47.  
  48. // send email
  49. $success = mail($EmailTo, $Subject, $Body, "From: <$EmailFrom>");
  50.  
  51. // redirect to success page
  52. if ($success){
  53. print "<meta http-equiv=\"refresh\" content=\"0;URL=ok.html\">";
  54. }
  55. else{
  56. print "<meta http-equiv=\"refresh\" content=\"0;URL=error.html\">";
  57. }
  58. ?>
  59.  
  60.  


oraz plik html:

  1. <form method="POST" action="contactengine.php">
  2. <h3>Dane kontaktowe:</h3>
  3. <label class="field-first">Imię *<input type="text" name="Imie" value="" class="kolor_ramki"/></label>
  4. <label class="field-last">Nazwisko *<input type="text" name="Nazwisko" value="" class="kolor_ramki"/></label>
  5. <label class="field-address">Adres<input type="text" name="Adres" value="" class="kolor_ramki"/></label>
  6. <label class="field-city">Miasto<input type="text" name="Miasto" value="" class="kolor_ramki"/></label>
  7. <label class="field-zip">Kod pocztowy *<input type="text" name="Kod" value="" class="kolor_ramki"/></label><br style="clear: left;" />
  8. <label class="field-email">Email *<input type="text" name="E-mail" value="" class="kolor_ramki"/></label>
  9. <label class="field-phone">Telefon<input type="text" name="Telefon" value="" class="kolor_ramki"/></label>
  10.  
  11. <h3>Zapytanie:</h3>
  12. <label class="field-describe"><textarea name="Message" cols="40" rows="5"></textarea></label>
  13. <h6>* pola wymagane</h6>
  14. <fieldset2>
  15. <input type="submit" name="submit" value="WYŚLIJ" class="kolor_ramki"/>
  16. <input type="hidden" name="submitted" value="TRUE" />
  17. </fieldset2>
  18. </form>


Z góry dziękuję za okazaną pomoc i pozdrawiam.
amii
  1. if !(!empty($Name) || !empty($Surname) || !empty($Email) || !empty($Code)) { //wpisz zmienne które nie mają być puste
  2. echo 'prosimy wypelnic wyszystkie wymagane pola';
  3. //jakies dalsze instrukcje obslugujace sytuacje
  4. }
jacenty777
zmieniłem nazwę na Email (zamiast wcześniej E-mail, gdyż php pokazywał błąd).
ale dalej nie działa, wstawiłem przed:

  1. // validation
  2. if !(!empty($Imie) || !empty($Nazwisko) || !empty($Kod) || !empty($Email)) { //wpisz zmienne które nie mają być puste
  3. echo 'prosimy wypelnic wyszystkie wymagane pola';
  4. //jakies dalsze instrukcje obslugujace sytuacje
  5. }
  6. $validationOK=true;
  7. if (!$validationOK) {
  8. print "<meta http-equiv=\"refresh\" content=\"0;URL=zapytaj_error.html\">";
  9. }


i wysyła maila bez sprawdzania. czy to aby nie kłóci się z

  1. $validationOK=true;
  2. if (!$validationOK) {
  3. print "<meta http-equiv=\"refresh\" content=\"0;URL=zapytaj_error.html\">";
  4. }


i dalszą częścią
mamy tutaj dwa warunki, czy one się na wzajem nie wykluczają?

PS. dziękuję za szybką odpowiedź.
amii
Z tego co widzę to przypisujesz zmiennej $validationOK przypisujesz wartość TRUE, póxniej nastepuje sprawdzanie w instrukcji if i jesli zmienna ma wartość FALSE to zostanie wykonany ten blok:


  1. if (!$validationOK) {
  2. print "<meta http-equiv=\"refresh\" content=\"0;URL=zapytaj_error.html\">";
  3. }


Przenieś to na początek skryptu:

$validationOK=true;

następnie w instrukcji poniżej dodaj przypisanie wartości FALSE, wtedy bloki instrukcji IF powinny się poprawnie wykonywać usunąłem też znak negacji bo tam było podwójne zaprzeczenie.


if (!empty($Imie) || !empty($Nazwisko) || !empty($Kod) || !empty($Email)) { //wpisz zmienne które nie mają być puste
$validationOK=false;
echo 'prosimy wypelnic wyszystkie wymagane pola';
//jakies dalsze instrukcje obslugujace sytuacje
}
jacenty777
niestety, jeszcze z tym walczę, a czy przypadkiem nie powinno być dla przycisku wysyłającego:

onClick="check()"


  1. <input type="submit" name="submit" value="WYŚLIJ" onClick="check()" class="kolor_ramki"/>


i dopiero później odpowiednia instrukcja w pliku PHP.
Jeśli tak to jaka?



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.