Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Sensowna walidacja formularza
dareckiphp
post 7.07.2004, 10:38:14
Post #1





Grupa: Zarejestrowani
Postów: 107
Pomógł: 0
Dołączył: 10.07.2003

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


Witam, prośba o pomoc.
Nie wiem jak można zrobić wyświetlanie informacji o niepoprawnym wypełnieniu pół formularza, ale w taki sposób, że dane wpisane do formularza nie kasowały się po wyświetleniu ostrzeżenia.
Walidacje danych robię na zasadzie:
  1. <? 
  2. if (isset($HTTP_POST_VARS['Submit'])) {... 
  3.  if (cos nie spelnione) { 
  4.  print &#092;"uwaga!!!! źle wypełniłeś pole\"; 
  5.  }
  6. ...
  7. }?>

... lub w jaki sposób zrobić aby po wyświetleniu oddzielnej strony z komunikatami, można było się cofnąć do formularza, ale w którym widoczne byłyby dane wprowadzone przez klienta, a nie żeby 200 zdań musiał wprowadzać jeszcze raz jak się pomylił w kodzie pocztowym.

Będę wdzięczny za odpowiedź.
Dzięki

Ten post edytował dareckiphp 7.07.2004, 10:42:32


--------------------
Warsztat: WinXP | Apache 2.0.49 | MySQL 4.0.20 | PHP 4
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 10)
kszychu
post 7.07.2004, 10:42:48
Post #2





Grupa: Przyjaciele php.pl
Postów: 2 712
Pomógł: 23
Dołączył: 27.10.2003
Skąd: z kontowni

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


Zrób walidację formularza w javascripcie, przed wysłaniem formularza.


--------------------
"Coś się kończy, coś się zaczyna." Andrzej Sapkowski
Go to the top of the page
+Quote Post
dareckiphp
post 7.07.2004, 10:46:52
Post #3





Grupa: Zarejestrowani
Postów: 107
Pomógł: 0
Dołączył: 10.07.2003

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


Problem w tym, że nie znam na tyle javascriptów żeby się w nich bawić. Poza tym zrobiłem już wszystkie sprawdzania w php i żal mi wywalać. Czy naprawdę nie mozna zrobić walidacji na poziomie php?


--------------------
Warsztat: WinXP | Apache 2.0.49 | MySQL 4.0.20 | PHP 4
Go to the top of the page
+Quote Post
kszychu
post 7.07.2004, 10:53:57
Post #4





Grupa: Przyjaciele php.pl
Postów: 2 712
Pomógł: 23
Dołączył: 27.10.2003
Skąd: z kontowni

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


JA bym to zrobił (ja to bym użył js'a, ale jak nie to inaczej) tak:
1. wysyłasz formularz
2. odbierasz formularz i jego pola (zmienne), zapisujesz do sesji
3. walidacja ok ? robisz "co potrza"
walidacja nie ok (ale gramatyka ;-)) wywołujesz z powrotem formularz z jakimś parametrem, który "powie mu", że wartości dla pól ma szukać w sesji i przypisze te wartości do pól.

Można jeszcze dodać zaznaczanie tych pól, które były niepoprawne i inne wodotryski.


--------------------
"Coś się kończy, coś się zaczyna." Andrzej Sapkowski
Go to the top of the page
+Quote Post
dareckiphp
post 7.07.2004, 10:59:16
Post #5





Grupa: Zarejestrowani
Postów: 107
Pomógł: 0
Dołączył: 10.07.2003

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


Taki też pomysł zaświtał mi jako jedyny do głowy, ale aż włosy sobie rwę że nie mogę po prostu zastosować jakiejkolwiek funkcji, żeby nie ciągnąć nigdzie ze sobą wartości z pół.


--------------------
Warsztat: WinXP | Apache 2.0.49 | MySQL 4.0.20 | PHP 4
Go to the top of the page
+Quote Post
mistrzu
post 7.07.2004, 11:12:33
Post #6





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 30.08.2003

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


  1. <input type=\"text\" name=\"pole\" value=\"<?php echo $_POST['pole']; ?>\">


Ten post edytował mistrzu 7.07.2004, 11:13:02


--------------------
Warsztat: Apache 2.0.48 | MySQL 4.1.1 | PHP 5.0.0RC1 | Crimson Editor
Go to the top of the page
+Quote Post
kszychu
post 7.07.2004, 11:17:22
Post #7





Grupa: Przyjaciele php.pl
Postów: 2 712
Pomógł: 23
Dołączył: 27.10.2003
Skąd: z kontowni

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


Cytat(mistrzu @ 2004-07-07 11:12:33)
  1. <input type=\"text\" name=\"pole\" value=\"<?php echo $_POST['pole']; ?>\">

Co ty, chcesz wysyłać dane postem DO FORMULARZA?questionmark.gif?
laugh.gif


--------------------
"Coś się kończy, coś się zaczyna." Andrzej Sapkowski
Go to the top of the page
+Quote Post
Yarecki
post 7.07.2004, 11:29:18
Post #8





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

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


Cytat(kszychu @ 2004-07-07 12:17:22)
Co ty, chcesz wysyłać dane postem DO FORMULARZA?questionmark.gif?
laugh.gif

Czemu nie ?
Są jakieś przeciwskazania natury praktycznej czy tylko ideologiczne :-) ?


--------------------
Nigdy nie kłóć się z głupim, ludzie mogą nie dostrzec różnicy.
Go to the top of the page
+Quote Post
kszychu
post 7.07.2004, 11:59:22
Post #9





Grupa: Przyjaciele php.pl
Postów: 2 712
Pomógł: 23
Dołączył: 27.10.2003
Skąd: z kontowni

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


Jakoś nie leży mi to w kontekście... Ale zakończmy ten OT.


--------------------
"Coś się kończy, coś się zaczyna." Andrzej Sapkowski
Go to the top of the page
+Quote Post
DeyV
post 7.07.2004, 14:08:56
Post #10





Grupa: Zarząd
Postów: 2 277
Pomógł: 6
Dołączył: 27.12.2002
Skąd: Wołów/Wrocław




Ja robię to tak

1. generowanie i wyświetlanie formularza
2. sprawdzanie zawartości submitowanego formularza
3. jeśli dane są poprawne - wykonujemy jakąś funkcję do ich obsługi
4. jeśli nie są poprawne - wyświetlamy ponownie formularz, wraz z komunikatami błędów dla każdego pola, oraz dla całego formularza. Pola są oczywiście 'wypełnione'


Wszystko to odbywa się na jednym pliku typu index.php (oczywiście includującym odpowiednie mechanizmy)

Więcej na temat tej filozofii i jej implementacji smile.gif : http://pof.sourceforge.net/


--------------------
"Niezależnie od tego, jakie masz osiągnięcia, ktoś Ci pomaga..."
Go to the top of the page
+Quote Post
kicaj
post 7.07.2004, 14:19:27
Post #11





Grupa: Zarejestrowani
Postów: 1 640
Pomógł: 28
Dołączył: 13.02.2003
Skąd: Międzyrzecz/Poznań

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


Robie podobnie...

@krzychu:
1. mistrzu wysyla wyniki do formularza, tak jak mowi DeyV w pkt. 4.
2. A jesli chcialbym odpalic swoj formularz, ale wyniki przesylam do twojej strony "wynikowej", to js da sie ominac, ja robie zawsze walidacje dzieki php.

Ten post edytował kicaj_ 7.07.2004, 14:19:57


--------------------
PHP Developer

"Nadmiar wiedzy jest równie szkodliwy jak jej brak" Émile Zola
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: 14.08.2025 - 12:01