Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Wzbogacenie formularza o funkcję eregi
Forum PHP.pl > Forum > Przedszkole
elan
Witajcie, Chciałbym żeby poniższy formularz, który często wykorzystuję był wzbogacony o funkcje sprawdzające poprawność e-maila. Wiem, że do tego trzeba użyć funkcji eregi, problem w tym, że nie wiem gdzie mogę ją wcisnąć w poniższym kodzie i jak zrobić żeby komunikat o błędzie dot. poprawnosci e-maila pojawial sie nad inputem emaila.

  1. <?php
  2. // sprawdzamy, czy zmienna $submit jest pusta
  3. if (empty($_POST['submit'])) {
  4. // wyświetlamy formularz
  5. echo "<table border=\"0\"><form method=\"post\">
  6. <tr>
  7. <td><p id='formtext'>Imię i nazwisko:</p><input type=\"text\" name=\"imie\" style=\"width: 216px\"></td>
  8. </tr>
  9. <tr>
  10. <td><p id='formtext'>Telefon:</p><input type=\"text\" name=\"telefon\" style=\"width: 216px\"></td>
  11. </tr>
  12. <tr>
  13. <td><p id='formtext'>E-mail:</p><input type=\"text\" name=\"email\" style=\"width: 216px\"></td>
  14. </tr>
  15. <tr>
  16. <td><p id='formtext'>Treść wiadomości:</p><textarea name=\"tresc\" style=\"width: 216px; height: 100px\"></textarea></td>
  17. </tr>
  18. <tr>
  19. <td><input type=\"submit\" name=\"submit\" value=\"Wyślij\"></td></form>
  20. </tr>
  21. </table>";
  22. }
  23. // sprawdzamy, czy zmienne przesłane z formularza nie są puste
  24. elseif (!empty($_POST['imie']) && !empty($_POST['email']) && !empty($_POST['telefon']) && !empty($_POST['tresc'])) {
  25. // jeżeli powyższy warunek jest spełniony tworzona jest wiadomość
  26. // zmienna $message zawiera treść wiadomości
  27. $message = "Wysłał: $_POST[imie]\nE-mail: $_POST[email]\nTelefon: $_POST[telefon]";
  28. // zmienna $header zawiera przede wszystkim adres zwrotny
  29. $from = "$_POST[email] <$_POST[email]>";
  30. $header = "From: $from\nReply-to: $from\nMIME-Version: 1.0\nContent-type: text/html; charset=UTF-8";
  31. // funkcja mail() za pomocą której wiadomość zostanie wysłana
  32. @mail("biuro@rudmet.pl","Zgłoszenie","$message","$header")
  33. or die('Nie udało się wysłać wiadomości');
  34. // wyświetlenie komunikatu w przypadku powodzenia
  35. echo "<div align=\"center\"><p id='komunikat'>Wiadomość została wysłana poprawnie.</p></div>";
  36. }
  37. // lub w przypadku nie wypełnienia formularza do końca
  38. else echo "<p id='komunikat'>Proszę wypełnić wszystkie pola formularza.</p>";
  39.  
  40. ?>
Fifi209
No dobra, ale gdzie jest problem?

I nie eregi tylko preg_match
elan
Czy te preg match powinienem uzyc jako kolejny elseif? ?
kubek15
ja jak sprawdzam poprawnośc mejla to daje
IF($mejl = poprawny) {
ok
} else {
podaj poprawny mejl
}
Fifi209
Po prostu dopisać do tego:

  1. elseif (!empty($_POST['imie']) && !empty($_POST['email']) && !empty($_POST['telefon']) && !empty($_POST['tresc'])) {


a najprościej z filter_var
MateuszS
  1. function sprawdz_email($email) {
  2. $email = strtolower($email);
  3. return ereg("^[a-z0-9_\\.-]+@([a-z0-9_-]+\\.)+[a-z]{2,}$", $email);
  4. }


  1.  
  2. elseif (!empty($_POST['imie']) && !empty($_POST['email']) && sprawdz_email($_POST['email'])==true && !empty($_POST['telefon']) && !empty($_POST['tresc'])) {

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.