前提・実現したいこと
PHP 7.2.4, 5.5.56-MariaDB MariaDB Server, HTML5
で簡易的な掲示板を作っています。
そこでコメント, 名前を無記入の場合にJavaScriptを利用してエラーポップアップを出力させようとしたのですが, 掲示板のリダイレクトをさせた所スクリプトが実行されなくなってしまいました。
基本コピペプログラムで何がどう動いているか理解していません(-_-;)。
リダイレクトさせたまま, エラーメッセージを表示させるにはどうすればいいでしょう。
データベース接続ファイル(data_connect.php)
<?php $dsn = 'mysql:host=localhost;dbname=test;charset=utf8'; $db_user = 'root'; $db_pass = 'test'; try{ $pdo = new PDO($dsn, $db_user, $db_pass); $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); echo "connect succefully<br>"; }catch (PDOException $e) { echo "Connection failed: " . $e->getMessage(); } ?>
掲示板ソースコード(simple_bbs.php)
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html;charset=UTF-8" /> <title>SIMPLE BBS</title> </head> <body> <form action="simple_bbs.php" method="post"> <p> 名前:<input type="text" name="name" size="40"> </p> <p> コメント:<br> <textarea name="comment" rows="4" cols="50"></textarea> </p> <p> <input type="submit" name="post" value="投稿"><input type="reset" value="リセット"> </p> <p> <input type="submit" name="delete" value="全削除"> </p> </form> </body> </html> <?php // MySQLサーバーへと接続とデータベースの選択 include_once "data_connect.php"; echo '---------------------------------<br>名前:<br>コメント<br>'; //投稿ボタン if (isset($_POST['post'])){ if (!empty($_POST['name'])){ if (!empty($_POST['comment'])) { $name = $_POST['name']; $comment = $_POST['comment']; $sql = "INSERT INTO simple_bbs VALUES('$name', '$comment')"; $res = $pdo->query($sql); }else { echo '<script>alert("コメントを入力してください")</script>'; } }else { echo '<script>alert("名前を入力してください")</script>'; } }else { if (isset($_POST['delete'])){ $sql = "DELETE FROM simple_bbs"; $res = $pdo->query($sql); } } //テーブル整形 $sql = 'SELECT * FROM simple_bbs'; $result = $pdo->query($sql); foreach($result as $row) { echo '---------------------------------<br>'; echo $row['name']. ':'; echo '<br>'; echo $row['comment']. '<br>'; } echo '---------------------------------<br>'; //MySQLサーバーの接続を閉じる $pdo = null; //問題個所 if($_SERVER['REQUEST_METHOD']==='POST'){ //POSTで処理を終えた時 header('Location:http://192.168.56.2/simple_bbs.php'); //リダイレクトで多重投稿防止 } ?>
あなたの回答
tips
プレビュー