読者です 読者をやめる 読者になる 読者になる

掲示板 ver.1.2

PHP HTML/CSS

 前回のLv.1.1は文字化けするので、修正しました。修正点はこちら。

  • htmlspecialcharsしてからDB書き込みは文字化けの原因なので、表示前に移動
  • SQLインジェクション対策でmysql_escape_stringを追加
<body>

<?php

/***** DB情報の読み込み *****/
include_once("ini.php");

/***** DBへ接続、DBの選択 *****/
$con = mysql_connect(DB_HOST,DB_USER,DB_PASS);
mysql_select_db(DB_NAME);

/***** フォーム表示 *****/
echo '<form action="index.php" method="post">';
echo '氏名:';
echo '<input type="text" name="name" /><br>';
echo 'メッセージ:';
echo '<input type="text" name="msg" /><br>';
echo '<input type="submit" value="Post" />';
echo '</form>';

/***** エスケープ *****/
$name_d = mysql_escape_string($_POST["name"]);
$msg_d = mysql_escape_string($_POST["msg"]);

/***** utf-8エンコーディング *****/
$name_d = mb_convert_encoding($name_d,"utf-8","utf-8,euc-jp,sjis");
$msg_d = mb_convert_encoding($msg_d,"utf-8","utf-8,euc-jp,sjis");

/***** 「name」にデータがあるときデータをDBに挿入 *****/
if($name_d !== ""){
	mysql_query("INSERT INTO twi_tb (name,msg) VALUES ('$name_d','$msg_d')");
}

/***** タグ削除、twi_tbの全データ表示 *****/
$re = mysql_query("SELECT * FROM twi_tb");
while($arr = mysql_fetch_array($re)){
	echo htmlspecialchars($arr[0]);
	echo "";
	echo htmlspecialchars($arr[1]);
	echo "";
	echo htmlspecialchars($arr[2]);
	echo "";
	echo htmlspecialchars($arr[3]);
	echo "<br>";
}

/***** DB切断 *****/
mysql_close($con);

?>

</body>