次の数行があります。
if ( (empty($_FILES["userFile1"]) ) or ( empty($_FILES["userFile2"]) ) or ( empty($_FILES["userFile2"]) ) ) {
header("Location: " . "/");
}
// required fields
$required = array("userName", "userAddress", "userEmail");
// Loop over field names, make sure each one exists and is not empty
$error = false;
foreach ($required as $field) {
if (empty($_POST["$field"])) {
$error = true;
}
}
// if error occurs
if ($error === true) {
header("Location: " . "/");
}
ただし、ユーザーが 3 つのファイルすべてをアップロードしなくても、またはユーザーがフィールドを空白のままにしても、スクリプトは続行されます (スクリプトの後半の副作用でわかります)。これらが行う唯一のことはユーザーをリダイレクトすることであるため、明らかにどちらのチェックもパスしません。
しかし、フィールドが空の場合、またはファイルがアップロードされていない場合、チェックが機能しないのはなぜでしょうか?