Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Sprawdzenie wszystkich danych z form
Forum PHP.pl > Forum > Przedszkole
poncjusz
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
mike
  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. ?>
nospor
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. ?>
mike
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.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.