前提・実現したいこと
PHPで一言コメントができる掲示板を作成しています。
投稿内容が空白の時に「内容を入力してください」と出るチェックプログラムをつくりたいです。
投稿内容をチェックする機能を実装中に以下のエラーが発生しました。
発生している問題・エラーメッセージ
・投稿内容が空白でもMySQLに投稿されてしまう。
該当のソースコード
PHP
1<!doctype html> 2<html lang="ja"> 3<head> 4<meta charset="utf-8"> 5<h2>掲示板</h2> 6</head> 7<body> 8 <form action="post.php" method="post"> 9 <dt><label for="message">内容</label></dt> 10 <dd><textarea id="message" name="memo" cols="50" rows="8"> 11 </textarea> 12</dd> 13 <button type="submit">投稿する</button> 14</form> 15</body> 16 17<?php 18// connecting to MySQL 19try { 20 $db = new PDO('mysql:dbname=my_bbs_portfolio;host=127.0.0.1;charset=utf8', 21 'root',''); 22} catch (PDOException $e) { 23 echo 'DB接続エラー: ' . $e->getMessage(); 24} 25$memos = $db->query('SELECT * FROM memo_test ORDER BY id DESC'); 26?> 27 28<article> 29<?php // display memo ?> 30<?php while ( $memo = $memos->fetch()): ?> 31 <p><?php print($memo['memo']); ?></p> 32 <time><?php print($memo['modified_time']); ?></time> 33 <hr> 34<?php endwhile; ?> 35</article> 36</html>
PHP
1<!doctype html> 2<html lang="ja"> 3 4<meta charset="utf-8"> 5<h2>Practice</h2> 6<main> 7 <a href="input.php">戻る</a> 8<?php 9try { 10 $db = new PDO('mysql:dbname=my_bbs_portfolio;host=127.0.0.1;charset=utf8', 11 'root',''); 12 } catch (PDOException $e) { 13 echo 'DB接続エラー: ' . $e->getMessage(); 14} 15$statement = $db->prepare('INSERT INTO memo_test SET memo=?, 16 modified_time=NOW()'); 17$statement->execute(array($_POST['memo'])); 18echo '投稿が完了しました'; 19?> 20</main> 21</html>
試したこと
・if(empty($_POST))を使って条件分岐をさせた。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/08/28 06:05