下面的解决方案是我想出来的,用于检查$_GET中的变量是否为整数。它似乎有些复杂,我相信一定有更简单的解决方案。错误数组用于向用户显示消息。
// Create array to hold errors
$errors = array();
// Get ID from URL
$user_id = isset($_GET['id']) ? $_GET['id'] : '';
// Check for empty ID
if (empty($user_id)) {
array_push($errors, 'Empty user ID');
} else {
// Check if ID is numeric
if (!is_numeric($user_id)) {
array_push($errors, 'Invalid user ID');
} else {
// Get numerical value of string (int or float)
$num_user_id = $user_id + 0;
// Check that number is an int
if (!is_integer($num_user_id))
array_push($errors, 'Invalid user ID');
}
}
(int)$_GET['id']
吗? - Ali Shanif(empty($_GET['id']) || !is_integer((int)$_GET['id']) { $errors[]='Invalid user ID';}
- Stevefilter_input(INPUT_GET, 'id', FILTER_VALIDATE_INT);
。 - Professor Abronsius