2012-08-15

データが保存されればいいという問題ではない

何かを勘違いしていた前任者がいた。
例によって、既に退職している。

入力された値をhtmlentities()を通し、
その結果をデータベースへ登録していた。


お陰で、他のシステムへデータ連携する仕組みを構築する際、

要らぬ変換を噛ます必要が生じた。


面倒くさいのなんのって。



というわけで、


入力値を表示したりデータベースへ登録する際は、

こんな感じで使おうよ。


<?
//  文字エンコードは UTF-8 の前提
//  $linkは、適切なDBLINKとする
//  入力値の取得
$input_value = isset($_POST['input']) ? $_POST['input'] : '';

//  INSERT文(MySQLの場合)
$sql = "INSERT INTO TABLE (`val`) VALUES ('".mysql_real_escape_string($input_value, $link)."')";

//  HTML出力
echo htmlentities($input_value, ENT_QUOTES, 'UTF-8', false);

?>

0 件のコメント:

コメントを投稿

.htaccessで403を404で返す

久しぶりにリライトルールを書いたよ。 ドキュメントルートに.htaccessを置く場合の記述↓ # 403.html は実体がなくてよい。この設定をすることで、あっても使われなくなる。 ErrorDocument 403 /403.html # 独自の404ページをドキュメ...