Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php] walidacja formularza- cała tablica POST
lnn
post 25.12.2009, 23:55:54
Post #1





Grupa: Zarejestrowani
Postów: 361
Pomógł: 11
Dołączył: 17.12.2008
Skąd: LU

Ostrzeżenie: (0%)
-----


witam

otoz kombinuje juz troche czasu, i nie chce sprawdzac 10 zmiennych $_POST poprzez wypisywanie kazdej, zapewne istnieje jakis sposob zeby to uproscic i sprawdzic cala tablice post czy zawiera wartosci? tongue.gif

drugie pytanie to jak zrobic zeby formularz sie nie wyslal po wcisnieciu buttona submit tylko jesli wystapia bledy np walidacyjne to zeby w action:
  1. <form action="strona.php">
nie było nic tongue.gif == nie nastapilo przeladowanie na kolejna strone?

z gory dzieki za odpowiedzi smile.gif
Go to the top of the page
+Quote Post
cim
post 26.12.2009, 00:02:01
Post #2





Grupa: Zarejestrowani
Postów: 208
Pomógł: 28
Dołączył: 9.08.2004
Skąd: Stargard

Ostrzeżenie: (0%)
-----


Witam,

ad. 1. jeżeli chcesz tylko sprawdzić czy są wartości w $_POST i jakie to polecam:
  1. print_r($_POST);


ad. 2. w tagu <form> możesz podać atrybut 'onsubmit' i nazwę funkcji w JavaScript, która zostanie wywołana po wciśnięciu przycisku 'Wyślij' lub innego zdefiniowanego jako 'submit' dla tego formularza'. Zdefiniowana funkcja zostanie wtedy wywołana, sprawdzi poprawność i jeżeli wszystko będzie ok to wyśle formularz.

Pozdrawiam


--------------------
errare humanum est
Go to the top of the page
+Quote Post
wookieb
post 26.12.2009, 00:06:08
Post #3





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




Cytat(lnn @ 25.12.2009, 23:55:54 ) *
otoz kombinuje juz troche czasu, i nie chce sprawdzac 10 zmiennych $_POST poprzez wypisywanie kazdej, zapewne istnieje jakis sposob zeby to uproscic i sprawdzic cala tablice post czy zawiera wartosci? tongue.gif

array_map i odwolanie do funkcji walidujacej

Cytat
drugie pytanie to jak zrobic zeby formularz sie nie wyslal po wcisnieciu buttona submit tylko jesli wystapia bledy np walidacyjne to zeby w action:


java script:
[JAVASCRIPT] pobierz, plaintext
  1.  
  2. <script type="text/javascript">
  3. function validuj()
  4. {
  5. // tutaj sobie walidujesz formularz
  6. return false; // jezeli nei ok
  7. return true; // jezeli ok
  8. }
  9. </script>
  10. <form onsubmit="return validuj();">
[JAVASCRIPT] pobierz, plaintext


--------------------
Go to the top of the page
+Quote Post
lnn
post 26.12.2009, 00:07:20
Post #4





Grupa: Zarejestrowani
Postów: 361
Pomógł: 11
Dołączył: 17.12.2008
Skąd: LU

Ostrzeżenie: (0%)
-----


Cytat(cim @ 26.12.2009, 00:02:01 ) *
Witam,

ad. 1. jeżeli chcesz tylko sprawdzić czy są wartości w $_POST i jakie to polecam:


ad. 2. w tagu <form> możesz podać atrybut 'onsubmit' i nazwę funkcji w JavaScript, która zostanie wywołana po wciśnięciu przycisku 'Wyślij' lub innego zdefiniowanego jako 'submit' dla tego formularza'. Zdefiniowana funkcja zostanie wtedy wywołana, sprawdzi poprawność i jeżeli wszystko będzie ok to wyśle formularz.

Pozdrawiam

troche błędnie mnie zrozumiano, print_r nie zwraca 0 jesli jest pusta, ja nie chce ich wyswietlac tylko walidowac czy sa puste,
co do 2 to nie bede walidował w JS tylko chce w PHP i chce zrobic tak, że jeśli pole jest puste to zeby wyskakiwała ponizej pola podpowiedz jak powinna wygladac prawidłowo wprowadzona wartosc...

Ten post edytował lnn 26.12.2009, 00:07:53
Go to the top of the page
+Quote Post
darko
post 26.12.2009, 00:09:41
Post #5





Grupa: Zarejestrowani
Postów: 2 885
Pomógł: 463
Dołączył: 3.10.2009
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


1. Zakładając że funkcje walidujące istnieją i zwracają true jeśli wartość przeszła walidację, w przeciwnym razie false, to może coś takiego:
  1. foreach($_POST as $k => $v) {
  2. if(preg_match("/email/", $k) != 0) $email = validateEmail($v);
  3. if(preg_match("/pesel/", $k) != 0) $pesel = validatePesel($v);
  4. // itd.
  5. }
  6. // następnie
  7. if($email && $pesel && ...) {
  8. // ok
  9. } else {
  10. // error
  11. }


2.
  1. <form action="..." id="test" name="test" ... onsubmit="return validate();" ... >
  2. (...)
  3. <script type="text/javascript">
  4. /*
  5. tu walidujesz pola wyciągane po id formularza za pomocą document.getElementById('test').NAZWA_POLA_FORMULARZA.value
  6. lub poprzez odwałanie document.NAZWA_FORMULARZA.NAZWA_POLA_FORMULARZA.value
  7. czyli w powyższym przykładzie document.test.NAZWA_POLA_FORMULARZA.value
  8. jeśli wszystko ok:
  9. return true
  10. jeśli nie:
  11. return false
  12. formularz nie zostanie wysłany
  13. dalej możesz wyłapać sobie, które pola nie przeszły walidacji i zmienić ich styl np. dodać czerwony border + info co jest nie tak
  14. Dodatkowo możesz też zmienić action poprzez odwołanie document.getElementById('test').action = "NOWA_AKCJA.php";
  15. */


Ten post edytował darko 26.12.2009, 00:16:02


--------------------
Nie pomagam na pw, tylko forum.
Go to the top of the page
+Quote Post
Adis92
post 26.12.2009, 00:12:51
Post #6





Grupa: Zarejestrowani
Postów: 146
Pomógł: 12
Dołączył: 9.01.2009
Skąd: Płock

Ostrzeżenie: (0%)
-----


Co do wysyłania przez js to pamiętajmy że nie każdy musi mieć włączoną obsługę js w przeglądarce.
Go to the top of the page
+Quote Post
darko
post 26.12.2009, 00:13:40
Post #7





Grupa: Zarejestrowani
Postów: 2 885
Pomógł: 463
Dołączył: 3.10.2009
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


Dlatego też walidujemy dane po stronie php.


--------------------
Nie pomagam na pw, tylko forum.
Go to the top of the page
+Quote Post
cim
post 26.12.2009, 00:15:24
Post #8





Grupa: Zarejestrowani
Postów: 208
Pomógł: 28
Dołączył: 9.08.2004
Skąd: Stargard

Ostrzeżenie: (0%)
-----


Witam,

z pierwszym się zgodzę, bo myślałem, że chcesz tylko "wzrokowo" sprawdzić co Ci z formularza przychodzi bo jest z nim jakiś problem.
Cytat(lnn @ 25.12.2009, 23:55:54 ) *
drugie pytanie to jak zrobic zeby formularz sie nie wyslal po wcisnieciu buttona submit tylko jesli wystapia bledy np walidacyjne to zeby w action nie było nic tongue.gif nie nastapilo przeladowanie na kolejna strone?


Cytat(lnn)
co do 2 to nie bede walidował w JS tylko chce w PHP i chce zrobic tak, że jeśli pole jest puste to zeby wyskakiwała ponizej pola podpowiedz jak powinna wygladac prawidłowo wprowadzona wartosc...


Natomiast nie bardzo rozumiem drugie - chcesz walidować w PHP przed wysłaniem danych na serwer?

Pozdrawiam


--------------------
errare humanum est
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 10.05.2025 - 07:28