掲示板 ver.2.2
で、sql_request ver.2を使って掲示板 ver.2.1を書き直しました。ここで新たな問題が発覚。リロードする度に前回送信したレコードがまた送信されてしまうという事態に陥りました。いわゆる「リロード対策」が必要なようです。それはまた今度です。
<style> table,tr,td { border: 1px solid; border-collapse: collapse; } </style>
<body> <?php /***** sql_request関数読み込み *****/ require_once("sql_request.php"); /***** DB作成 *****/ sql_request("CREATE DATABASE IF NOT EXISTS twi_db"); /***** テーブル作成 *****/ $sql = "CREATE TABLE IF NOT EXISTS twi_tb ("; $sql .= "id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,"; $sql .= "time TIMESTAMP(11) NOT NULL DEFAULT CURRENT_TIMESTAMP,"; $sql .= "user VARCHAR(255),"; $sql .= "msg VARCHAR(255)"; $sql .= ")"; sql_request($sql); /***** フォーム表示 *****/ echo "<form action='index.php' method='post'>"; echo "氏名:<input type='text' name='user' /><br>"; echo "メッセージ:<input type='text' name='msg' /><br>"; echo "<input type='submit' value='Send' />"; echo "</form>"; /***** エンコーディング *****/ $user_d = mb_convert_encoding($_POST["user"],"utf-8","utf-8,sjis,euc-jp"); $msg_d = mb_convert_encoding($_POST["msg"],"utf-8","utf-8,sjis,euc-jp"); /***** sql文のエスケープ *****/ $user_d = mysql_escape_string($user_d); $msg_d = mysql_escape_string($msg_d); /***** レコード書き込み *****/ if(($user_d != "") && ($msg_d != "")){ sql_request("INSERT INTO twi_tb (user,msg) VALUES ('".$user_d."','".$msg_d."')"); } /***** レコード削除 *****/ $dele_d = $_POST["delete"]; sql_request("DELETE FROM twi_tb WHERE id = '".$dele_d."'"); /***** 表作成 *****/ echo "<table>"; echo "<tr>"; echo "<td>id</td>"; echo "<td>time</td>"; echo "<td>user</td>"; echo "<td>msg</td>"; echo "<td>delete</td>"; echo "</tr>"; /***** レコード表示 *****/ $arr = sql_request("SELECT * FROM twi_tb"); if($arr !== false){ for($i=0;$i<count($arr);$i++){ echo "<tr>"; echo "<td>".htmlspecialchars($arr[$i]["id"])."</td>"; echo "<td>".htmlspecialchars($arr[$i]["time"])."</td>"; echo "<td>".htmlspecialchars($arr[$i]["user"])."</td>"; echo "<td>".htmlspecialchars($arr[$i]["msg"])."</td>"; /***** 削除フォーム作成 *****/ echo "<td>"; echo "<form action='index.php' method='post'>"; echo "<input type='hidden' name='delete' value='".$arr[$i]["id"]."' />"; echo "<input type='submit' value='delete' />"; echo "</form>"; echo "</td>"; echo "</tr>"; } } /***** 表完成 *****/ echo "</table>"; ?> </body>