我收到:3 个警告(isset 中的偏移类型非法或在...中为空) 3 个通知(未定义的索引:...)
3 个警告是通过第一个 foreach 实现的。并且这 3 个通知与第二个 foreach 循环有关。
我真的不明白我做错了什么......在这里需要一些帮助。
<form name="form" action="index.php" method="POST">
<input type="text" name="name" value="<?php if (isset($_POST['name'])) { echo $_POST['name']; } ?>" />
<input type="text" name="age" value="<?php if (isset($_POST['age'])) { echo $_POST['age']; } ?>" />
<input type="text" name="email" value="<?php if (isset($_POST['email'])) { echo $_POST['email']; } ?>" />
<input type="submit" />
</form>
<?php
$expected = array(
'name' => array("filter" => FILTER_SANITIZE_STRING),
'age' => array("filter" => FILTER_SANITIZE_NUMBER_INT),
'email' => array("filter" => FILTER_SANITIZE_EMAIL)
);
foreach ($expected AS $key => $value) {
if (!isset($_POST[$value])) {
echo "not set";
} elseif (empty($_POST[$value])) {
echo "empty";
}
}
$result = filter_input_array(INPUT_POST, $expected);
foreach ($result AS $key => $value) {
if (!$result[$value]) {
echo "not valid value";
}
}
?>
谢谢你们。