Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Sprawdzenie wszystkich danych z form
poncjusz
post
Post #1





Grupa: Zarejestrowani
Postów: 32
Pomógł: 0
Dołączył: 20.01.2004

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


Czesc, problem:

Przesylam z formularza pewne wartosci poprzez POST
mam funkcje ktora sprawdza czy aby wszystkie pola maja swoja wartosc:

  1. <?php
  2.  
  3. function wypelniony ($zmienne_formularza)
  4. {
  5. foreach ($zmienne_formularza as $klucz => $wartosc)
  6. {
  7. if (!isset($klucz) || ($wartosc == ''))
  8. return false;
  9. }
  10. return true;
  11. }
  12.  
  13. ?>


Wywołuje funkcje tak:
  1. <?php
  2.  
  3. if (!wypelniony($_POST))
  4. {
  5. //sprawdzam czy wszystkie pola sa wypelnione
  6. $error_msg= &#092;"Nie wypełniono wszystkich pól formularza.\";
  7. error ($error_msg);
  8. }
  9.  
  10. ?>


I za kazdym razem, mimo ze wszystkie pola formularza sa wypełnione wyskakuje mi ze Nie wypełnione wszystkich pól formularza, nie wiem czemu.
pozdrawiam
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
mike
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

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


  1. <?php
  2.  
  3. function wypelniony ($zmienne_formularza)
  4. {
  5. foreach ($zmienne_formularza as $klucz => $wartosc)
  6. {
  7. if ( ! isset( $zmienne_formularza[ $klucz ] ) || empty( $wartosc ) )
  8. return false;
  9. }
  10. return true;
  11. }
  12.  
  13. ?>
Go to the top of the page
+Quote Post
nospor
post
Post #3





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




robiebie isset na $klucz jest zbędne, gdyż foreach leci tylko po elemetnach tablicy które są więc isset zawsze zwraca true. @mike_mech zaproponował empty. Też nie do końca ok bo gdy pole ma wartośc 0 to też będzie empty, czyli będzie źle. Masz może w formularzu pola ukryte, które są puste i może stąd to.
Poza tym posta nie musisz przekazywac do funkcji, gdyż jest on w niej widoczny
Wyświelt se wszystkie wartości i zobacz co masz puste
  1. <?php
  2.  
  3. function wypelniony ()
  4. {
  5. foreach ($_POST as $klucz => $wartosc)
  6. {
  7. if ($wartosc == '' && $wartosc !=='0')
  8. {
  9. echo $klucz.' '.$wartosc;
  10. return false;
  11. }
  12. }
  13. return true;
  14. }
  15.  
  16.  
  17. ?>


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

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
mike
post
Post #4





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

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


Cytat(nospor @ 2005-07-23 11:34:41)
@mike_mech zaproponował empty. Też nie do końca ok bo gdy pole ma wartośc 0 to też będzie empty, czyli będzie źle.

No fakt, zapomniałem o tym szczególe.
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 - 06:49