#PHPの謎のエラー
PHPで掲示板を作る練習をしているのですが、
送信先がなぜか別のページに代わってしまい、
notfoundと表示されます。
下の画像は、送信ボタンを押すと表示されるエラーページです。
本来であれば、posting、の部分は、send.phpであるはずなんです。
###エラー文
Not Found
The requested URL was not found on this server.
Apache/2.4.46 (Win64) OpenSSL/1.1.1g PHP/7.4.11 Server at localhost Port 80
とのことです。
###index.php <?php $pdo = new PDO("mysql:dbname=sample;host=localhost","root","",array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET CHARACTER SET 'utf8'")); //DB接続NGの場合誤りあり if($pdo){ echo "DB接続OK"; }else{ echo "DB接続NG"; } $regist = $pdo->prepare("SELECT * FROM post"); $regist->execute(); if($regist){ echo "登録成功"; }else{ echo "登録失敗"; } ?> <!DOCTYPE html> <meta charset="utf-8"> <title>Mydiary of Atsu</title> <h1>Diary</h1> <section> <h2>NewPost</h2> <form action="send.php" method="post"> Name : <input type="text" name="name" value="" ><br /> PostContents : <input type="text" name="contents" value="" ><br /> <button type="submit">Post</button> </form> </section> <section> <h2>PostList</h2> <?php foreach($regist as $loop):?> <div>No : <?php echo $loop['id']?></div> <div>Name : <?php echo $loop['name']?></div> <div>PostContents : <?php echo $loop['contents']?></div> <div>Time : <?php echo date("Y/m/d H:i:s")?></div> <div>-------------------------------------------------</div> <?php endforeach;?> </section> ###send.php <!DOCTYPE html> <meta charset="utf-8" /> <title>Mydiary of Atsu</title> <h1>Diary</h1> <section> </section> <?php if(!empty($_POST["submit")){ $id] = null; $name = $_POST["name"]; $contents = $_POST["contents"]; date_default_timezone_set('Asia/Tokyo'); $created_at = date("Y-m-d H:i:s"); //DB接続情報セッティング $pdo = new PDO( "mysql:dbname=sample; host=localhost","root","",array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET CHARACTER SET 'utf8'")); if($pdo){ echo "DB接続OK"; }else{ echo "DB接続NG"; } $regist = $pdo->prepare("INSERT INTO post(id, name, contents, created_at) VALUES (:id, :name, :contents, :created_at)"); $regist->bindParam(":id", $id); $regist->bindParam(":name", $name); $regist->bindParam(":contents", $contents); $regist->bindParam(":created_at", $created_at); $regist->execute(); if($regist){ echo "登録成功"; }else{ echo "失敗"; } } ?> ### 試したこと if(!empty($_POST["submit"))を追加してみたり、 まるまる4時間かけてgoogleで解決方法を調べて回ったり (検索ワードの例: php 送信先 おかしい not found) form actionのところを確認しても、しっかり <form action="send.php" method="post">になっていました。 ### 補足情報(FW/ツールのバージョンなど) PHP7.4.11 XAMPP 3.2.4
回答1件
あなたの回答
tips
プレビュー