Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> obsługa błędów
rafiksq
post
Post #1





Grupa: Zarejestrowani
Postów: 162
Pomógł: 0
Dołączył: 8.11.2006
Skąd: Gdynia

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


Jak zablokowac formularz przed wysłaniem, jeśli nie zostaly wypelnione wszystkie pola?
mam np.cos takiego:
  1. <form action='plik.php' mathod=POST>
  2. imie<input type=text name=imie>
  3. <input type=submit name=submit value=submit>
  4. </form>
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 6)
nevt
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 1 595
Pomógł: 282
Dołączył: 24.09.2007
Skąd: Reda, Pomorskie.

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


google + "JS walidacja formularzy" = tysiące gotowych rozwiązań... w dodatku po polsku...

powodzenia.


--------------------

-
Oh no, my young coder. You will find that it is you who are mistaken, about a great many things... -
Go to the top of the page
+Quote Post
rafiksq
post
Post #3





Grupa: Zarejestrowani
Postów: 162
Pomógł: 0
Dołączył: 8.11.2006
Skąd: Gdynia

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


A czy jest jakas wada takiego rozwiązania?

  1. <?php
  2. if($submit){
  3. if($plec=='0'){
  4. $false_plec="wybierz plec";
  5. $blad=1;
  6. }
  7.  
  8. if(!$blad){
  9.  header("Location: <a href=\"http://localhost/rec_management/dod_kan/form_02.php");&#092;" target=\"_blank\">http://localhost/rec_management/dod_kan/form_02.php");</a>
  10.  exit;
  11. } 
  12. }
  13. ?>
Go to the top of the page
+Quote Post
faster
post
Post #4





Grupa: Zarejestrowani
Postów: 49
Pomógł: 0
Dołączył: 9.09.2002
Skąd: Pszczyna

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


Pozostawianie walidacji wyłącznie po stronie JS jest niewłaściwe. Stosuje się raczej jako pierwszy krok walidacji formularza dlatego powinieneś przewidzieć obsługę błędów również po stronie serwera czyli skryptu PHP. Z Twojego drugiego posta wynika, że takie rozwiązanie probowałeś zapodać ale chyba nie do końca coś Ci tam wyszło.
Zrób tak, że każdy POST formularza jest kierowany do pliku/akcji/skryptu który sprawdza po stronie serwer poprawność danych. Jeżeli dane są poprawne przekierowuje do kolejnej akcji (proces idzie dalej) można to zrobić właśnie header("Location skrypt_idzie_dalej.php"); exit; a w przypadku walidacji błędnej kieruje do akcji (skryptu), która wyświetla ponownie formularz z informacjami o konieczności poprawienia danych.
Walidację formularza za pomocą JS możesz dodać jako bonus ale nie jako alternatywę.
Go to the top of the page
+Quote Post
rafiksq
post
Post #5





Grupa: Zarejestrowani
Postów: 162
Pomógł: 0
Dołączył: 8.11.2006
Skąd: Gdynia

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


tak właśnie zrobiłem i powyższy skrypt działa bez zarzuceń oczywiscie mam wiecej niz jedna zmienna smile.gif
Go to the top of the page
+Quote Post
nevt
post
Post #6





Grupa: Przyjaciele php.pl
Postów: 1 595
Pomógł: 282
Dołączył: 24.09.2007
Skąd: Reda, Pomorskie.

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


no to ja teraz nie rozumiem co ma piernik do wiatraka... pytanie brzmiało:
Cytat
Jak zablokowac formularz przed wysłaniem, jeśli nie zostaly wypelnione wszystkie pola?

czy wg was skrypt PHP to miejsce do blokowania jakiejkolwiek akcji odbywającej się po stronie przeglądarki ? życzę powodzenia....

Ten post edytował nevt 17.01.2008, 07:37:30


--------------------

-
Oh no, my young coder. You will find that it is you who are mistaken, about a great many things... -
Go to the top of the page
+Quote Post
rafiksq
post
Post #7





Grupa: Zarejestrowani
Postów: 162
Pomógł: 0
Dołączył: 8.11.2006
Skąd: Gdynia

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


Chodzilo mi o to ze mam formularz form1 ktory przetwarza dane w innym pliku <form action='form2.php'> a chcialem zrobic wczesniej walidacje. wiec zrobilem to tak ze dane przesylane sa do tego samego pliku <form action='form1'> i tu nastepuje sprawdzanie czy wszystkie pola sa wypenione jesli tak to za pomoca header przechodze do form2.
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 Aktualny czas: 19.08.2025 - 20:20