фильтрация идентификаторов из флажков

У меня есть несколько флажков, которые можно проверить. Они похожи

<input type="checkbox" name="order[123]" value="1">

Теперь я проверяю данные формы и фильтрую идентификаторы в массиве заказов таким образом, прежде чем искать их в базе данных.

$orderids = preg_grep('/^\d+$/', array_keys($_POST['order']));

Есть ли более эффективный способ сделать это?

1

Решение

Используя регулярные выражения, вы гарантируете, что вредоносные строки не используются, но не проверяете жизнеспособность в базе данных. (например. order[999999999999999999999999] будет проходить регулярное выражение, но не будет полезным в БД.)

Самая правильная проверка — запускать их для идентификаторов баз данных, используя array_intersect,

   $valid_ids=array_intersect(array_keys($_POST['order']),$db_orderids_array)
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]