Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] walidacja pól
krystian1991x
post
Post #1





Grupa: Zarejestrowani
Postów: 114
Pomógł: 0
Dołączył: 7.08.2010

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


Witam mam pytanie jak inaczej czyli prościej zrobić walidacje która sprawdza czy pola formularza zostały wszystkie wypełnione ja zrobiłem coś takiego ale niezbyt mi to odpowiada

  1.  
  2. if($_POST['login'] == ""|| $_POST['login2'] == "" || $_POST['login3'] == "" || $_POST['login4'] == "") {
  3.  
  4.  
  5.  
  6.  
  7. }else {
  8.  
  9. }
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Fifi209
post
Post #2





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

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


Bardziej chodziło mi o coś takiego:

  1. $klucze = array('login', 'password', 'last_name', 'pw');
  2.  
  3. foreach ($_POST as $key => $value) {
  4. if (in_array($key, $klucze)) {
  5. if (empty($value)) {
  6. die('Wypełnij wszystkie pola!');
  7. }
  8. }
  9. }


Zamiast wyrażeń w wielu przypadkach możesz użyć: ctype_ lub filter_var

Ale trzymając się pierwszej koncepcji możesz zrobić np.
  1. $keys = array('login' => '#^[\w\d]{5,20}$#', 'password' => '#^[\w\d]{5,20}$#');
  2.  
  3. foreach ($_POST as $key => $value) {
  4. if (array_key_exists($key, $keys)) {
  5. if (!preg_match($keys[$key], $value)) {
  6. die('Coś poszło nie tak');
  7. }
  8. }
  9. }


Albo dodatkowo rozbudować o błędy:
  1. $keys = array('login' => array('reg' => '#^[\w\d]{5,20}$#', 'err' => 'Login zawiera niedozwolone znaki!'), 'password' => array('reg' => '#^[\w\d]{5,20}$#', 'err' => 'Hasło zawiera niedozwolone znaki'));
  2.  
  3. foreach ($_POST as $key => $value) {
  4. if (array_key_exists($key, $keys)) {
  5. if (!preg_match($keys[$key]['reg'], $value)) {
  6. die($keys[$key]['err']);
  7. }
  8. }
  9. }


Wszystko pisane z palca, nie testowałem.

Ten post edytował fifi209 18.09.2010, 15:49:41
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 3.10.2025 - 17:19