我有一些可以检查的复选框。他们看起来像
<input type="checkbox" name="order[123]" value="1">
现在我正在检查formdata并以这种方式过滤order-array中的id,然后再在数据库中查找它们。
$orderids = preg_grep('/^\d+$/', array_keys($_POST['order']));
有更有效的方法吗?
答案 0 :(得分:0)
使用正则表达式,您确保不使用恶意字符串,但不检查数据库中的可行性。 (例如order[999999999999999999999999]
将传递正则表达式,但在数据库中没用。)
最真实的验证是使用array_intersect
针对数据库传播的ID运行它们。
$valid_ids=array_intersect(array_keys($_POST['order']),$db_orderids_array)