私が得ているもの:3つの警告(issetの不正なオフセットタイプまたは空の...)3つの通知(未定義のインデックス:...)
3つの警告は、最初のforeachで実現されます。そして、3つの通知は2番目の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";
}
}
?>
皆さん、ありがとうございました。