スキップしてメイン コンテンツに移動

投稿

8月, 2012の投稿を表示しています

VMware Player を CentOS 6.3 へインストール

仮想マシンの起動時に Could not open /dev/vmmon: No such file or directory. こんなエラーが出たら $ mv /usr/lib/vmware/modules/binary /usr/lib/vmware/modules/binary.old $ vmware-modconfig --console --install-all --appname="VMware Player" --icon="vmware-player" ってやるといいみたい。 2012/08/24 追記 上のとおりやっても、だめだった。俺の知識では、インストールできなかった。

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

何かを勘違いしていた前任者がいた。 例によって、既に退職している。 入力された値を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); ?>

HTMLエンティティ

久しぶりの記事更新。 UTF-8,Shift_JIS,EUC-JPで次のコードを実行したら、それぞれ結果が異なった。 <!DOCTYPE html> <html> <head> <meta charset="それぞれのcharset"> <title>HTMLエンティティ</title> </head> <body> <form method="post"> <?php $val = isset($_POST['val']) ? $_POST['val'] : ''; ?> <p>入力値:<input type="text" name="val"  value="<?=htmlentities($val, ENT_QUOTES, 'それぞれのcharset', false)?>" /></p> <p><input type="submit" value="GO" /></p> <?php echo "ポスト:{$val}"; // XSS脆弱性があるので注意。 ?> </body> </html> で、それぞれのエンコードの結果はこれ。 ■chrome ・UTF-8 入力値:© // ソースを表示すると、&copy; ポスト:© // ソースを表示すると、© ・Shift_JIS 入力値:© // ソースを表示すると、&#169; ポスト:© // ソースを表示すると、&#169; ・EUC-JP 入力値:© // ソースを表示すると、© ポスト:© // ソースを表示すると、© ■IE ・UTF-8 入力値:© // ソースを表示...