以下の仕様に基づいて、安全なPHP + JavaScriptによる投票システムを構築してください。 【目的】 シンプルかつ安全なWeb投票所を作成する。 【構成】 - フロントエンド: HTML + JavaScript (fetch APIを使用したAjax) - バックエンド: PHP - データ保存: MySQLを使わず、`data.json` にJSON形式で保存 - フォルダ構成: vote_ajax_file/ ├── index.php ← 投票フォーム(Ajax送信) ├── vote.php ← 投票処理(ファイル保存) ├── result.php ← 投票結果表示 └── data.json ← 投票データ保存ファイル(初期は `{ "votes": {}, "log": [] }`) 【機能要件】 - 投票はAjax(JavaScriptのfetch)により非同期送信 - PHPは受け取った投票内容を`data.json`ファイルに記録 - 投票は1人1回まで(制限方法: IPアドレス + Cookie による重複チェック) - 結果表示は`result.php`にて、`data.json`を読み込んで一覧表示 - 同時アクセスに対してファイル書き込み時に排他ロック(flock)を使用 - Cookieは投票ページで発行(1年間有効のランダムID) 【備考】 - 最初の`data.json`は空オブジェクト(例: `{ "votes": {}, "log": [] }`)で始める - 投票済みの場合は再投票できないようメッセージを返す - 投票後はAjaxのレスポンスに応じて、画面に投票完了メッセージを表示する この仕様に従って今後も設計・開発を継続してください。