• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

PHP sprawdzenie wielu zmiennych czy istnieją i czy nie są puste

Object Storage Arubacloud
0 głosów
1,081 wizyt
pytanie zadane 18 lipca 2017 w PHP przez chmod96 Obywatel (1,380 p.)

Cześć, robię dość duży formularz w php i muszę sprawdzić czy każde pole w nim istnieje isset() i czy nie jest puste !empty() i nie chcę robić kilometrowego if'a i mam pytanie czy zna ktoś sposób aby to zapisać krócej, nie wiem dać nazwy zmiennych do tablicy array a potem pętlą while ? ale jakoś w inny sposób.

2 odpowiedzi

0 głosów
odpowiedź 18 lipca 2017 przez chmod96 Obywatel (1,380 p.)

Napisałem coś takiego, i póki co działa :D

        $post_values = array(
            'first_name', 
            'last_name', 
            'email', 
            'password', 
            'password_2', 
            'support_questions', 
            'answer'
        );

        for($i = 0; $i < count($post_values); $i++){
            if(isset($_POST[$post_values[$i]]) && !empty($_POST[$post_values[$i]])){
                echo "OK";
            }
        }

 

komentarz 18 lipca 2017 przez Arkadiusz Waluk Ekspert (287,950 p.)
Jak już tak to użyj foreach, jest przystosowany typowo do operacji na tablicach.

Poza tym polecam zainteresować się filter_input() lub filter_input_array(). Przed pobraniem wartości o podanej nazwie automatycznie sprawdzane jest czy istnieje, dodatkowo można dodać potrzebne filtry.
komentarz 18 lipca 2017 przez chmod96 Obywatel (1,380 p.)
Użyłem do tego $_POST[$post_values[$i]] = strip_tags($_POST[$post_values[$i]]);
komentarz 18 lipca 2017 przez Arkadiusz Waluk Ekspert (287,950 p.)
Ale co?

Jeśli chodzi o foreach to proponuję użycie tej pętli zamiast for. Bez sensu jest zliczać ilość elementów w tablicy, deklarować dodatkowe zmienne itd. skoro to jest gotowe w pętli foreach, wystarczy tylko użyć.

A filter_input/filter_input_array proponuję do pobrania danych zamiast ręcznego $_POST[...]. Nie trzeba wtedy sprawdzać isssetem, samo się sprawdza i w razie gdyby nie było nie rzuca żadnych błędów.
komentarz 18 lipca 2017 przez chmod96 Obywatel (1,380 p.)

Ok, foreach zaraz wrzucę a to 2 później ogarnę.

a to co napisałem wcześniej to chodziło mi o filtrowanie znaków.

–2 głosów
odpowiedź 18 lipca 2017 przez piotrsz109 Stary wyjadacz (13,730 p.)

W tablicy post możesz odwoływać się indexem (int) więc napisz pętle np:

for($i=0;$<$_POST.Length;$i++){
if(isset($_POST[i]) && !empty($_POST[i])){
echo $_POST[i];
}
}

 

komentarz 18 lipca 2017 przez Arkadiusz Waluk Ekspert (287,950 p.)
edycja 18 lipca 2017 przez Arkadiusz Waluk
$<$_POST.Length;

Co to? surprise

Edit: jeszcze co to?

$_POST[i]

Chyba języki Ci się ostro mylą.

komentarz 18 lipca 2017 przez chmod96 Obywatel (1,380 p.)
Hahaha, nawet tego nie sprawdzałem bo wiedziałem że coś jest nie OK

Podobne pytania

0 głosów
1 odpowiedź 757 wizyt
pytanie zadane 26 lutego 2017 w PHP przez Ozzy Nowicjusz (140 p.)
0 głosów
2 odpowiedzi 134 wizyt
pytanie zadane 26 stycznia 2020 w PHP przez franz Gaduła (4,940 p.)
0 głosów
0 odpowiedzi 275 wizyt
pytanie zadane 26 listopada 2021 w PHP przez Grzegorz Mikina Dyskutant (8,060 p.)

92,575 zapytań

141,424 odpowiedzi

319,649 komentarzy

61,961 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...