✅ WEB і WordPress новини, теми, плагіни. Тут ми ділимося порадами і кращими рішеннями для сайтів.

Ви повинні використовувати функції фільтрації PHP, частина 2

7

У попередній публікації я говорив про те, чому використання функцій фільтрації PHP є більш корисним, ніж ні.

Коротше кажучи, це допомагає забезпечити рівень перевірки, вбудований у мову, щоб нам не довелося щось переписувати. Природно, є застереження.

Наприклад, якщо вам потрібно перевірити значення, яке складається з нелатинських символів, тоді вам доведеться зробити це самостійно та реалізувати перевірку за допомогою, можливо, регулярного виразу.

Але якщо ви використовуєте адреси електронної пошти, URL-адреси, номери, IP-адреси та багато інших речей, тоді ви маєте можливість використовувати те, що вже існує.

У будь-якому разі все вищесказане стосується фільтрації змінних. А як щодо вхідних даних? Тобто ті, що походять від $_POSTабо $_GET. Можна використовувати подібну стратегію з іншою функцією та іншим набором фільтрів.

Але якщо ви розумієте основи, представлені в минулому дописі, то цей пост не буде сильно відрізнятися.

Функції фільтрації PHP, Частина 2: Вхідні дані

Фільтрування вхідних даних виконується filter_inputфункцією. Визначення цієї конкретної функції:

Отримує конкретну зовнішню змінну за назвою та додатково фільтрує її

Посібник PHP

І, як згадувалося минулого разу, це звучить трохи дивно, доки ви не зрозумієте, що таке фільтри. На щастя, ми розглянули це в попередній публікації. І хоча ця публікація буде присвячена конкретно POST(і дуже коротко GET).

Хоча є й інші фільтри. І до них належать:

  • INPUT_COOKIE
  • INPUT_SERVER
  • INPUT_ENV

У будь-якому випадку, оскільки дві найпоширеніші операції, які я зазвичай бачу в WordPress, включають POSTі GET, то здається важливим включити ці дві сюди.

Ви повинні використовувати функції фільтрації PHP, частина 2

Користуватися цими функціями дуже просто. Припустімо, що у вас є значення, яке надходить із того, що користувач надав у формі, і він надсилає його на сервер за допомогою POSTзапиту з таким ключем, як firstname.

Код для перевірки може виглядати приблизно так:

  • filter_input(INPUT_POST, 'firstname');

Це досить легко зрозуміти, оскільки він просто бере ключ, фільтрує його, а потім повертає значення. А оскільки він повертає значення, то ми можемо налаштувати захисну пропозицію, перш ніж продовжувати роботу:

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

Якщо все перевірено, ми можемо рухатися далі, роблячи все, що нам потрібно, з інформацією користувача. Можливо, з будь-якої причини нам потрібно пов’язати його з поточною публікацією:

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...

Крім того, ви можете ще більше захистити інформацію за допомогою різноманітних існуючих фільтрів . Вони передаються як третій параметр filter_inputфункції.

А про що GET?

Приємна річ у цій функції полягає в тому, що, загалом кажучи, діють ті самі правила, що й для, за POSTвинятком того, що замість використання INPUT_POSTви будете використовувати INPUT_GET.

Потім ви можете працювати зі своїм кодом так, як він найкраще відповідає потребам вашого проекту.

Безпека, Nonces тощо.

Пам’ятайте, що це не те, що можна використовувати замість безпеки. Це виключно з метою захисту даних перед тим, як з ними щось робити.

Не замінюйте перевірку значень nonce тільки тому, що ви перевіряєте дані по-іншому.

Змінні та входи

Пам’ятайте, хоча ці функції є дуже схожими змінними, а вхідні дані відрізняються. Іншими словами, не намагайтеся використовувати filter_var, коли ви працюєте з введенням, що надходить від користувача або браузера. Використовуйте його, коли працюєте зі змінними. І, аналогічно, використовуйте ht e

Джерело запису: tommcfarlin.com

Цей веб -сайт використовує файли cookie, щоб покращити ваш досвід. Ми припустимо, що з цим все гаразд, але ви можете відмовитися, якщо захочете. Прийняти Читати далі