20) {
$valid = false;
$errorMessage = "単語が長すぎます: " . htmlspecialchars($word);
break;
}
}
if ($valid) {
$inputValue = nl2br(htmlspecialchars($checkValue)); // 改行を
に変換
}
}
return ["error" => $errorMessage, "input" => $inputValue];
}
function uploadImage()
{
if (!isset($_FILES["imageToUpload"]) || $_FILES["imageToUpload"]["error"] == UPLOAD_ERR_NO_FILE) {
// ファイルが選択されていない場合はエラーなしで処理をスキップ
return ["error" => "", "success" => "", "image" => null];
}
$targetDir = "image/";
$targetFile = $targetDir . basename($_FILES["imageToUpload"]["name"]);
$uploadOk = 1;
$imageFileType = strtolower(pathinfo($targetFile, PATHINFO_EXTENSION));
$message = ["error" => "", "success" => "", "image" => null];
// 画像ファイルが実際の画像かどうかをチェック(空でない場合のみ)
if (!empty($_FILES["imageToUpload"]["tmp_name"])) {
$check = getimagesize($_FILES["imageToUpload"]["tmp_name"]);
if ($check === false) {
$message["error"] = "ファイルは画像ではありません。";
$uploadOk = 0;
}
} else {
$uploadOk = 0;
}
// ファイルが既に存在するかどうかをチェック
if ($uploadOk && file_exists($targetFile)) {
$message["error"] = "ファイルは既に存在します。";
$uploadOk = 0;
}
// ファイルサイズをチェック
if ($uploadOk && $_FILES["imageToUpload"]["size"] > 500000) {
$message["error"] = "ファイルが大きすぎます。";
$uploadOk = 0;
}
// 画像ファイル形式をチェック
if ($uploadOk && !in_array($imageFileType, ["jpg", "png", "jpeg", "gif"])) {
$message["error"] = "許可されているファイル形式は JPG, JPEG, PNG, GIF のみです。";
$uploadOk = 0;
}
// エラーがない場合、ファイルをアップロード
if ($uploadOk) {
if (move_uploaded_file($_FILES["imageToUpload"]["tmp_name"], $targetFile)) {
$message["success"] = "ファイル " . htmlspecialchars(basename($_FILES["imageToUpload"]["name"])) . " がアップロードされました。";
$message["image"] = $targetFile;
} else {
$message["error"] = "ファイルのアップロード中にエラーが発生しました。";
}
} else {
$message["error"] = "ファイルはアップロードされませんでした。";
}
return $message;
}
// POSTリクエストがあった場合に処理を実行
$errorMessage = "";
$successMessage = "";
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
$inputResult = inputCheck($_POST['topic']);
$errorMessage = $inputResult["error"];
if (empty($errorMessage)) {
$uploadResult = uploadImage();
if (!empty($uploadResult["error"])) {
$errorMessage = $uploadResult["error"];
} else {
$successMessage = $uploadResult["success"];
$messages[] = [
"text" => $inputResult["input"],
"image" => $uploadResult["image"]
];
}
}
}
?>