Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Walidacja Formularza
Adrianeo
post
Post #1





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 24.12.2012

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


Witam,

Mam takie pytanie jako że zaczynam przygodę z php mam takie pytanie jak zrobić walidacje formularza po stronie php, tzn mam formularz w którym mamy do wpisania pole imię i mamy sprawdzić czy pole zostało "wykorzystane" tylko przez litery, zrobiłem już wstępna walidacje w jquery która sprawdza czy pola zostały w ogóle wypełnione, ale teraz chciałbym zrobić bardziej rozbudowane "sprawdzanie" za pomocą php.

Powiedzmy że mamy taki kawałek kodu

  1. <div><label for="name"> Imię: </label></div>
  2. <div><input type="text" id="name" name="name" value="<?php if (isset($_POST['name'])) echo $_POST['name']; ?>"/></div>
  3. <div class="ename error"></div>


czy takie coś jest ok?

  1. <?php
  2. if (preg_match ("[a-z A-Z]", $_POST['name']))
  3.  
  4. { echo "ok";}
  5.  
  6. else
  7.  
  8. { echo "moga wystapic tylko litery";}
  9. ?>


Go to the top of the page
+Quote Post
peja1990
post
Post #2





Grupa: Zarejestrowani
Postów: 150
Pomógł: 1
Dołączył: 4.12.2010

Ostrzeżenie: (10%)
X----


Na szybko funkcja:
  1. function validName($value) {
  2. $test = "/^[A-ZĄĘÓŁŚŻŹĆŃ]{1,6}[a-ząęółśżźćń]{1,30}$/";
  3. if(!preg_match($test, $value) || strlen($value) < 2) return echo "Niepoprawnie wypełnione pole !";
  4. return false;
  5. }


Ten post edytował peja1990 24.12.2012, 15:23:58
Go to the top of the page
+Quote Post
Adrianeo
post
Post #3





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 24.12.2012

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


Dzięki za pomoc z tym już sobie poradziłem . A teraz mam jeszcze inne pytanie czy można zrobić tak żeby sprawdzał dane (tzn. właśnie czy w pole imię są tylko litery czy w mailu jest @) po kliknięciu na przycisk wyślij? Od razu mówię że nie jest to żaden projekt na stronę tylko moje wymysły bo tak jak mówiłem wstępną walidację ( czy w ogóle są wypełnione pola) zrobiłem w jquery a teraz chciałbym żeby po stronie serwera sprawdzał czy są poprawnie pola wypełnione i pod każdym z pól wypisywał ok albo bad. Póki co zrobiłem tylko tyle że cały czas wyświetla mi się pod polem informacja że jest dobrze wypełnione dopiero gdy dane pole źle wypełnie i nacisnę wyślij to zmienia się napis na bad. a chciałbym uzyskać coś takiego że na początku pod każdym polem nie ma żadnego napisu dopiero po naciśnięciu buttona wyślij otrzymujemy zwrotną informację czy pole jest dobrze wypełnione czy źle.

Przepraszam z góry jeżeli napisałem nie jasno o co mi chodzi:)
Go to the top of the page
+Quote Post
peja1990
post
Post #4





Grupa: Zarejestrowani
Postów: 150
Pomógł: 1
Dołączył: 4.12.2010

Ostrzeżenie: (10%)
X----


Jedna podstawowa zasada: nie spotkałem się chyba jeszcze z czymś czego nie dałoby się zaprogramować tongue.gif
PHP to jeden wielki kombajn możliwości smile.gif

Cytat
A teraz mam jeszcze inne pytanie czy można zrobić tak żeby sprawdzał dane (tzn. właśnie czy w pole imię są tylko litery czy w mailu jest @) po kliknięciu na przycisk wyślij?

Masz na myśli 2 osobne pola (imię i e-Mail) czy jedno pole z możliwością wpisania imienia lub adresu e-Mail bo to różnica.


Ogólnie to nie bardzo rozumiem o co Ci chodzi...
Chcesz połączyć jQuery z PHP czy chcesz samo PHP ?
Z jednej części Twojego postu wynika, że chcesz tak jakby samo jQuery, z drugiej części, że jQuery + PHP a z ostatniej części wynika tak jakby chodziło Ci o samo PHP.
Go to the top of the page
+Quote Post
Adrianeo
post
Post #5





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 24.12.2012

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


Już wyjaśniam.

Mamy normalny formularz, z pewna ilością pól do wypełnienia( imie , nazwisko , mail jakies checkbox-y) każde pole jest "odrebne" póki co mam zrobione w jquery żeby sprawdzało czy zostało cokolwiek wpisane w pola(jeżeli nie będą wszystkiego pola wypełnione to nie prześle formularza) a teraz chce zrobić w php aby po naciśnięciu przycisku wyślij( zakładając że wszystkie pola są wypełnione) serwer sprawdził nam czy te pola są prawidłowo wypełnione (tzn. czy w imieniu nie ma np cyfr). Udało mi się zrobić to sprawdzania w php ale na takiej zasadzie ze zanim zaczniemy wpisywać cokolwiek do formularza mamy pod każdym polem napisane że źle zostało wypełnione(jeżeli dajmy na to pole imię wypełnie poprawnie i nacisnę wyślij to napis pod tym polem zmieni się na ok) a chciałbym żeby taka informacja(czy jest dobrze wypełnione czy źle) pojawiała się dopiero bo naciśnięciu przycisku wyślij.
Go to the top of the page
+Quote Post
peja1990
post
Post #6





Grupa: Zarejestrowani
Postów: 150
Pomógł: 1
Dołączył: 4.12.2010

Ostrzeżenie: (10%)
X----


So it's fucking simple but I explain it for you tomorrow or latter becouse I'me drunk now. ;D
Go to the top of the page
+Quote Post
vifus
post
Post #7





Grupa: Zarejestrowani
Postów: 109
Pomógł: 13
Dołączył: 7.04.2012

Ostrzeżenie: (10%)
X----


A więc robisz tak: ( to tylko przykład )

  1. <?php
  2. if ($_POST['submit']) {
  3. if ($_POST['imie'] || $_POST['nazwisko']) {
  4. echo 'ok';
  5. } else {
  6. echo 'źle';
  7. }
  8. }
  9. ?>
  10.  
  11.  
  12. <form method="POST" action="">
  13. <input type="text" name="imie" value=""/>
  14. <input type="text" name="nazwisko" value=""/>
  15. <input type="submit" name="submit" value="prześlij"/>
  16. </form>
  17.  


--------------------
Zlecenia PHP / MYSQL / JAVASCRIPT / C++ / CSS / HTML na PW
Go to the top of the page
+Quote Post
Adrianeo
post
Post #8





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 24.12.2012

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


A mam jeszcze pytanie jak zrobić coś w tym stylu. Jeśli dane są poprawne, to je wyświetlamy, a w przeciwnym razie wyświetlamy formularz z zapamiętanymi danymi użytkownika (poza hasłami) i szczegółowymi informacjami o błędach(które pole i jaki błąd)?
Go to the top of the page
+Quote Post
aras785
post
Post #9





Grupa: Zarejestrowani
Postów: 859
Pomógł: 177
Dołączył: 29.10.2009

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


Odp 2: Tworzysz tablice errors i tam wszystko wrzucasz smile.gif
Odp 1: Jeśli tablica errors bedzie pusta po sprawdzeniu to wyświetlasz co tam chcesz, a formularz wyświetlasz jeśli nie jest pusta tablica errors. I wtedy do value w formularzu dajesz np.

  1. <input type="text" name="imie" value="<?php echo((isset($_POST['imie']))?$_POST['imie']:'');?>"/>
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: 21.08.2025 - 11:49