| --Marian-- |
Post
#1
|
|
Goście |
Witam,
mam problem z walidacją formularza. Stworzyłem formularz który dodaje mi wydarzenia do bazy. Problem w tym, ze nawet jak nic nie wpiszę do formularza, to mi wysyła go i wyswietla komunikat że dodało wydarzenie do bazy, czego oczywisscie fizycznie nie wykonało. Jeśli podam wszystkie pola, to wydarzenie normalnie jest dodawane do bazy, chciałbym też mieć możliwość wypełnienia nie wszystkich pól formularzai żeby dodawane zostało wydarzenie do bazy z mniejszą iloscią danych. Przesyłam kody: [formularz]
[Obrabianie formularza]
|
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 516 Pomógł: 63 Dołączył: 27.08.2012 Ostrzeżenie: (0%)
|
tak jak napisał kolega wyżej.
To ty ustalasz co ma zawierać pole i które z nich ma być obowiązkowe do wypełnienia. Walidacja to mechanizm składająca się z 3 głównych kroków - pobranie danych - sprawdzenie danych - wysyłka danych - czy jak to innaczej ująć ;p lecąc od początku walidacje zawsze zaczynaj od warunku. Najlepszym z nich jest sprawdzenie czy został wciśnięty submit. Najprostrze i najlepsze rozwiązanie. Dopiero w tym warunku pobierasz dane i robisz reszte rzeczy. Każde pole sprawdzaj pod względem dozwolonych znaków. Email ma być emailem, tel ma być tel a imie czy nazwisko ma nie być puste, nie krótsze niż 3 naki i nie dłuższe od 20 + zawierać tylko litery. Do tego przydadzą Ci się wyrażenia regularne. Dopiero jak wszystko jest ok, przechodzisz do zapisu do bazy danych i kończysz walidacje. wskazówka: przed zapissem do bazy danych musisz postawić warunek w którym sprawdzisz czy wszystkie dane z formularza są poprawne. Wszystkie informacje o nieprawidłowym wypełnieniu formularza zapisuj do jednej zmiennej, łatwiej Ci będzie wyświetlić błędy i stworzyć odpowiedni warunek. np: stworz zmienną np $error = ''; i teraz każdy błąd dodawaj w ten sposób : $error.= 'tresc bledu<br>'; jeśli chcesz wyświetlić wszystkie błędy dajesz poprostu echo $error; Też kiedyś byłem początkujący i pamietam, ze to bardzo mi pomogło, bo pisałem mase niepotrzebnych warunków i zmiennych ; ) i przed dodaniem do bazy dajesz warunek if(empty($error)) { //kod zapisu do bazy } edit: mały prezent ode mnie. Sprawdzenie maila ;p pewnie i tak byś szukał po googlach if(preg_match('/^[a-zA-Z0-9.\-_]+\@[a-zA-Z0-9.\-_]+\.[a-z]{2,4}$/D', $email) == false) { $error.='Błędny adres email'; } Ten post edytował gitbejbe 19.06.2013, 18:11:11 |
|
|
|
-Marian- [MySQL][PHP] Problem z walidacją formularza 18.06.2013, 17:51:05
b4rt3kk W którym miejscu pojawia się problem? 18.06.2013, 22:02:05
gitbejbe [HTML] pobierz, plaintext <input type="sub... 19.06.2013, 06:15:57
-Marian- Właśnie problem, polega na tym, że nie mogę zlokal... 19.06.2013, 12:21:05
gitbejbe przecież napisałem Tobie....
Twój problem to [PHP... 19.06.2013, 13:39:48
-Marian- Fakt, masz rację, trochę źle sprecyzowałem swój pr... 19.06.2013, 14:25:27
b4rt3kk Możesz sprawdzać poprawność danych jeśli określone... 19.06.2013, 14:39:27 ![]() ![]() |
|
Aktualny czas: 30.12.2025 - 14:45 |