✅ Nowości, motywy, wtyczki WEB i WordPress. Tutaj dzielimy się wskazówkami i najlepszymi rozwiązaniami dla stron internetowych.

Powinieneś używać funkcji filtrowania PHP, część 2

12

W poprzednim poście mówiłem o tym, dlaczego używanie funkcji filtrowania PHP jest bardziej przydatne niż nie.

Krótko mówiąc, pomaga to zapewnić poziom walidacji wbudowany w język, dzięki czemu nie musimy niczego przepisywać. Oczywiście są pewne zastrzeżenia.

Na przykład, jeśli musisz sprawdzić poprawność wartości, która nie zawiera znaków niełacińskich, będziesz musiał przejść sam i zaimplementować walidację za pomocą wyrażenia regularnego.

Ale jeśli używasz adresów e-mail, adresów URL, numerów, adresów IP i wielu innych rzeczy, możesz użyć czegoś, co już istnieje.

W każdym razie wszystko powyższe dotyczy filtrowania zmiennych. A co z danymi wejściowymi? To znaczy te, które pochodzą z $_POSTlub $_GET. Możliwe jest użycie podobnej strategii z inną funkcją i innym zestawem filtrów.

Ale jeśli rozumiesz podstawy przedstawione w ostatnim poście, ten post nie będzie się bardzo różnił.

Funkcje filtrowania PHP, część 2: Wejścia

Filtrowanie wejść odbywa się za pomocą filter_inputfunkcji. Definicja tej konkretnej funkcji to:

Pobiera określoną zmienną zewnętrzną według nazwy i opcjonalnie ją filtruje

Podręcznik PHP

I, jak wspomniałem ostatnio, brzmi to trochę dziwnie, dopóki nie zrozumiesz, czym są filtry. Na szczęście omówiliśmy to w poprzednim poście. I chociaż ten post skupi się konkretnie na POST(i bardzo krótko GET).

Istnieją jednak inne filtry. Należą do nich:

  • INPUT_COOKIE
  • INPUT_SERVER
  • INPUT_ENV

W każdym razie, ponieważ dwie najczęstsze operacje, które widzę w WordPressie, to POSTi GET, wydaje się ważne, aby uwzględnić te dwie tutaj.

Powinieneś używać funkcji filtrowania PHP, część 2

Korzystanie z tych funkcji jest banalnie proste. Załóżmy, że masz wartość pochodzącą z czegoś, co użytkownik podał w formularzu i przesyła ją do serwera za pomocą POSTżądania z kluczem, takim jak firstname.

Kod do weryfikacji może wyglądać mniej więcej tak:

  • filter_input(INPUT_POST, 'firstname');

Co jest dość łatwe do zrozumienia, ponieważ po prostu pobiera klucz, filtruje go, a następnie zwraca wartość. A ponieważ zwraca wartość, możemy ustawić klauzulę Guard przed przejściem do dalszej pracy:

1if (false === filter_input(INPUT_POST, 'firstname')) { 2  return; 3}

Jeśli wszystko się sprawdzi, możemy przejść dalej, robiąc wszystko, co musimy zrobić z informacjami o użytkowniku. Być może z jakiegoś powodu musimy powiązać go z aktualnym postem:

1if (false === filter_input(INPUT_POST, 'firstname')) { 2  return; 3} 4  5$firstname = filter_input(INPUT_POST, 'firstname'); 6update_post_meta(get_the_ID(), 'acme-firstname', $firstname); 7  8// Other code you may use...

Co więcej, możesz jeszcze bardziej zabezpieczyć informacje, korzystając z różnych istniejących filtrów. Są one przekazywane do filter_inputfunkcji jako trzeci parametr.

A co z GET?

Zaletą tej funkcji jest to, że ogólnie rzecz biorąc, obowiązują te same zasady, co w przypadku, z POSTwyjątkiem tego, że zamiast używać INPUT_POST, użyjesz INPUT_GET.

Następnie możesz pracować nad swoim kodem, jakkolwiek najlepiej odpowiada potrzebom twojego projektu.

Bezpieczeństwo, Nonces itp.

Pamiętaj, to nie jest coś, co można wykorzystać zamiast zabezpieczenia. Służy to wyłącznie zabezpieczeniu danych, zanim cokolwiek z nimi zrobisz.

Nie zastępuj weryfikacji wartości jednorazowych tylko dlatego, że weryfikujesz dane w inny sposób.

Zmienne i wejścia

Pamiętaj, chociaż te funkcje są bardzo podobnymi zmiennymi, a dane wejściowe są różne. Innymi słowy, nie próbuj używać filter_varpodczas pracy z danymi wejściowymi pochodzącymi od użytkownika lub przeglądarki. Używaj go za każdym razem, gdy pracujesz ze zmiennymi. I podobnie użyj ht e

Źródło nagrywania: tommcfarlin.com

Ta strona korzysta z plików cookie, aby poprawić Twoje wrażenia. Zakładamy, że nie masz nic przeciwko, ale możesz zrezygnować, jeśli chcesz. Akceptuję Więcej szczegółów