Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 72 Pomógł: 0 Dołączył: 17.02.2007 Ostrzeżenie: (0%)
|
Hejka,
jak zrobić walidacje formularza tak żeby po za komunikatem typu 'nie wypełniony np nick' zaznaczał pola nie wypełnione zmieniając czcionkę danego pola na czerwono. Wtedy wystarczył by jeden komunikat 'proszę uzupełnić pola zaznaczone na czerwono' W tej chwili mój formularz wygląda następująco:
|
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Moderatorzy Postów: 4 362 Pomógł: 714 Dołączył: 12.02.2009 Skąd: Jak się położę tak leżę :D |
Mortus jak widzę czuwa. I ma rację. $_POST to tablica superglobalna i wisi, więc jej wypełnienie musi być sprawdzane występowaniem któregoś z elementów zawartego w niej. Większość osób robi to sprawdzając istnienie submita o określonym name w nim. Ale count jest podstawowym dla mnie gdy mam formularz z kilkoma submitami. Bo przecież nie będę zgadywał który submit wcisnął user lub sprawdzał istnienie wszystkich. Za to zliczę ile mam wpisów w niej (IMG:style_emoticons/default/winksmiley.jpg) Potem switchem mogę modyfikować zachowanie zależnie od submit już, ale sprawdzenie czy właściwie $_POST ma choć jeden element w zupełności wystarczy. Sugestia o isset jest dobra, ale można także używać array_key_exists('name_pola', $_POST) i to rozwiązanie ja stosuję najczęściej, bo nie wywali nam się, podobnie jak isset, na wartości 0, co już mortus zasugerował. Swoja drogą wariacje na temat Dodaj/Edytuj to tylko pierdółka tak naprawdę. Dlaczego? Bo to się realizuje jednym polem hidden. Ustawienie tam 0 = nowy, jakakolwiek liczba = id do edycji. Oczywiście id sprawdzamy po stronie serwera. A musimy sprawdzić czy aby nie brak uprawnień do działań. Wystarczająco się naoglądałem skryptów, gdzie user ma prawo edycji tekstów kogoś innego, bo sobie można spreparować POST lub GET i system nie sprawdza uprawnień (IMG:style_emoticons/default/winksmiley.jpg) Ja takie "akcje" loguję by wiedzieć, który user cwaniakuje.
I ma rację mortus... Sposobów rozwiązania problemu jest więcej niż jedna. Ja osobiście skłaniam się do takiej: - tworzymy strukturę przechowującą domyślne wartości pól. - jeśli przechwyciliśmy GET sprawdzamy uprawnienia i zamiast domyślnych wrzucamy pobrane. - jeśli wyłapujemy POST to walidacja idzie, zapis itp - dopiero teraz wyświetlamy formularz z polami uzupełnionymi wartościami ze struktury wartości pól. Czemu tak? Bo to nam kapitalnie upraszcza wszystko, włącznie z komunikatami błędów o formie jaką chcesz zastosować. Wystarczy, że stworzymy drugą strukturę, która przechowuje błędy. Jeśli w czasie walidacji napotkamy błąd, to wrzucamy do niej ów błąd z nazwą pola jako kluczem. A teraz cudujemy... Jeśli owa struktura jest pusta to robi się insert lub update. Jeśli zawiera choć jeden wpis ( count ) to operacje na bazie nie następują, a pod danym polem następuje sprawdzenie czy tablica błędów zawiera wpis o nazwie pola. Tak? No to wyświetlamy ów komunikat (IMG:style_emoticons/default/smile.gif) |
|
|
|
rossco [PHP]Walidacja formularza 21.03.2010, 16:07:03
MateuszScirka Odpowiedni warunek if z empty +
[JAVASCRIPT] pob... 21.03.2010, 16:09:32 
Pawel_W Cytat(MateuszScirka @ 21.03.2010, 16:09... 21.03.2010, 16:17:43
rossco a możecie mi to wytłumaczyć na przykładzie jeśli b... 21.03.2010, 16:19:46
MateuszScirka Nom o to mi chodziło, można zrobić to na początku ... 21.03.2010, 16:24:49
rossco jak uważacie czy ja nie powinnam wywalić formularz... 21.03.2010, 16:36:55
MateuszScirka Możesz zostawić, możesz wywalić, osobiście skłania... 21.03.2010, 16:40:23
rossco jestem początkująca ale też mi się wydaje że powin... 21.03.2010, 16:53:50
MateuszScirka To nic że jest w ifie, będzie działało. Warunek zo... 21.03.2010, 16:59:09
mortus Niestety u Ciebie nie da się zrobić takiej walidac... 21.03.2010, 17:02:55
rossco Zrobiłam tak:
formularz przeniosłam do pliku form... 21.03.2010, 17:39:46
MateuszScirka Nie trzeba wszedzie sprawdzac tym issetem ;] Chodz... 21.03.2010, 17:42:13 
mortus Cytat(MateuszScirka @ 21.03.2010, 17:42... 21.03.2010, 18:29:21
rossco if(isset($_POST["stanowisko"])) {
... 21.03.2010, 17:51:31
MateuszScirka Mortus, nie mylę się. Isset ma sprawdzać tylko czy... 21.03.2010, 18:38:34 
mortus Cytat(MateuszScirka @ 21.03.2010, 18:38... 22.03.2010, 10:35:26
rossco Mortus ja się dopiero uczę i pewnie dlatego ten ko... 21.03.2010, 19:02:13 
mortus Cytat(thek @ 22.03.2010, 12:47:08 ) S... 22.03.2010, 13:34:44
rossco Chyba na początek nauki w php (podejście trzecie:)... 22.03.2010, 13:38:36
mortus Po prostu jeden nawias w linii 56 zamyka nie to co... 22.03.2010, 13:44:15
thek Błąd masz prozaiczny:
[PHP] pobierz, plaintext els... 22.03.2010, 13:56:08
mortus Dokładnie! Wszystko zależy od potrzeby, założe... 22.03.2010, 14:20:32
rossco SUPER Walidacja działa, ale przestało dodawać do ... 22.03.2010, 14:28:19
mortus W linii 22 wpisz $validation_error = false; P... 22.03.2010, 14:38:19
rossco Zastosowałam się do wskazówek ale nadal nie dodaję... 22.03.2010, 14:54:13
mortus Dodaj na samym początku skryptu[PHP] pobierz, plai... 22.03.2010, 15:04:48
rossco Cytat(mortus @ 22.03.2010, 15:04:48 )... 22.03.2010, 15:30:42
mortus Usuń tę linię 19, bo nie jest potrzebna (powinno w... 22.03.2010, 16:09:10
rossco Działa ) Mortus bardzo Ci dziękuję! Przeanali... 22.03.2010, 16:42:06 ![]() ![]() |
|
Aktualny czas: 24.12.2025 - 17:21 |