掲示板 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>