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"] ]; } } } ?>

投稿フォーム

投稿メッセージ


投稿画像

まだ投稿はありません。