Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] Nie kasowanie danych w formularzu
Sublove
post
Post #1





Grupa: Zarejestrowani
Postów: 45
Pomógł: 0
Dołączył: 23.01.2009

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


Mam dwa problemy

1)

Mam fomularz, dużo w nim pól i ograniczeń.
Kiedy której pole zostanie źle wypełnione to pojawia się komunikat który ustaliłem i ok, ale
wszystkie dane wówczas (po wysłaniu formularza) znikają.
Jak zrobić, żeby po kliknięciu Submit wyświetlał się komunikat że trzeba poprawić któreś pole ale żeby
formularz się nie kasował?

2)

Jak sprawdzić rodzaj wpisanych danych do formularza?
Chcę żeby można było weń wpisać tylko liczby
Go to the top of the page
+Quote Post
jareeny
post
Post #2





Grupa: Zarejestrowani
Postów: 226
Pomógł: 23
Dołączył: 2.10.2007
Skąd: Słupsk

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


1) Do walidacji danych użyj javascriptu
2) Nie mam pojęcia czy w JS jest odpowiednik phpowej funkcji is_int...


--------------------
banan wszyscy.
Go to the top of the page
+Quote Post
piaseq
post
Post #3





Grupa: Zarejestrowani
Postów: 161
Pomógł: 25
Dołączył: 6.09.2008
Skąd: Warszawa

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


Cytat(jareeny @ 25.01.2009, 20:04:15 ) *
1) Do walidacji danych użyj javascriptu

Walidacja javascript jest jak najbardziej ok, ale raczej nie powinna być jedyną formą walidacji, zbyt łatwo jest ją wyłączyć. Dlatego oprócz javascript formularz powinien być sprawdzany również po stronie serwera. Jeśli chodzi o przechowywanie wartości pól po wysłaniu formularza możesz użyć np. sesji lub po prostu uzupełnić pola wartościami z $_POST, jeżeli formularz został niepoprawnie wypełniony.

Jeżeli chodzi o sprawdzanie czy wprowadzona wartość jest liczbą po stronie serwera można użyć is_int, lub intval. W javascript jest to zdaje się parseInt.
Go to the top of the page
+Quote Post
redelek
post
Post #4





Grupa: Zarejestrowani
Postów: 658
Pomógł: 37
Dołączył: 4.06.2005
Skąd: Wawa

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


Cytat(Sublove @ 25.01.2009, 19:58:32 ) *
Mam dwa problemy

1)

Mam fomularz, dużo w nim pól i ograniczeń.
Kiedy której pole zostanie źle wypełnione to pojawia się komunikat który ustaliłem i ok, ale
wszystkie dane wówczas (po wysłaniu formularza) znikają.
Jak zrobić, żeby po kliknięciu Submit wyświetlał się komunikat że trzeba poprawić któreś pole ale żeby
formularz się nie kasował?

2)

Jak sprawdzić rodzaj wpisanych danych do formularza?
Chcę żeby można było weń wpisać tylko liczby


Ad 1.
Masz dwa wyjścia, jeśli znasz ajax. Jeśli nie to zapisuj dane do sesji i po sprawie

Ad2.
Ja niestety nie znam JS poza tym przy każdych włamaniach jest pokazywany , że kod JS usuwają i odpalają bez tego.
Bardziej Ajax lub PHP. Zobacz jak wykozystane jest ereg" title="Zobacz w manualu PHP" target="_manual, preg_match" title="Zobacz w manualu PHP" target="_manual.

http://php.koderzy.pl/porady23/W_jaki_spos...dacj%C4%85?.php

Pozdrawiam
Redelek


--------------------
Pozdrawiam
Piotrek R
Go to the top of the page
+Quote Post
jareeny
post
Post #5





Grupa: Zarejestrowani
Postów: 226
Pomógł: 23
Dołączył: 2.10.2007
Skąd: Słupsk

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


Cytat
Walidacja javascript jest jak najbardziej ok, ale raczej nie powinna być jedyną formą walidacji, zbyt łatwo jest ją wyłączyć. Dlatego oprócz javascript formularz powinien być sprawdzany również po stronie serwera.


Naturalnie, że nie powinna być jedyną walidacją, lecz może być taką hm... nakładką (?), na tą po stronie serwera, która nie pozwalałaby na wykonanie kodu. No a jeżeli ktoś ma wyłączoną obsługe javascript, no to wtedy już ma pecha, i formularz mu się kasuje smile.gif

Ten post edytował jareeny 25.01.2009, 20:19:01


--------------------
banan wszyscy.
Go to the top of the page
+Quote Post
erix
post
Post #6





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Cytat
Jak zrobić, żeby po kliknięciu Submit wyświetlał się komunikat że trzeba poprawić któreś pole ale żeby
formularz się nie kasował?

Niech skrypt wyświetlający formularz i go parsujący będzie pod tym samym URL-em; wtedy dane będziesz mógł wczytać z tablicy $_POST

Cytat
Nie mam pojęcia czy w JS jest odpowiednik phpowej funkcji is_int...

isNaN


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

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
Pilsener
post
Post #7





Grupa: Zarejestrowani
Postów: 1 590
Pomógł: 185
Dołączył: 19.04.2006
Skąd: Gdańsk

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


Możesz też użyć metody, którą ja w takich przypadkach polecam - zapamiętanie wpisanych do formularza wartości przy pomocy cookies - przydaje się podczas pracy z formularzami wieloetapowymi, z zapamiętywaniem kryteriów wyświetlania/wyszukiwania, stanu koszyka etc. - odciążasz bazę. A najprostsza metoda to:

  1. <?php
  2. //odbiór i walidacja danych
  3. if(!empty($_POST)){
  4.   $dane = $_POST['dane'];
  5.   $do_formularza = ' value="'.$dane.'"';
  6.   $error = walidacja($dane);
  7. }
  8. //gdy są error lub nie wysłano formularza to go wyświetlasz
  9. if(!empty($error) || empty($_POST)){
  10.   $tresc_wyjscie .= '<input type="text" name="dane"'.$do_formularza.'/>';
  11. }
  12. ?>


Walidację najlepiej przeprowadzać w PHP - piszesz w tym celu cały szereg funkcji walidujących, np.
  1. <?php
  2. $efekt_walidacji = czy_poprawna_liczba($liczba);
  3. ?>
- funkcja taka powinna zwracać tablicę, która powinna zawierać:
1. TRUE lub FALSE w zależności od tego, jak poszła walidacja
2. Walidowaną zmienną przystosowaną do dodania do bazy etc.
3. Walidowaną zmienną przystosowaną do użycia w formularzu (czyli value="zmienna")
4. Komunikat błędu (jeśli wystąpił)
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: 22.08.2025 - 01:37