2012-08-24

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 追記
上のとおりやっても、だめだった。俺の知識では、インストールできなかった。

2012-08-23

文字エンコーディングは合わせよう


MySQL(CHARSET)PHP(mb系関数)HTML(charset)
sjisSJISShift_JIS
cp932SJIS-winShift_JIS
ujisEUC-JPEUC-JP
ujisCP51932EUC-JP
utf8UTF-8UTF-8

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);

?>

2012-08-14

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
入力値:©       //  ソースを表示すると、&copy;
ポスト:©       //  ソースを表示すると、©

・Shift_JIS
入力値:©       //  ソースを表示すると、&copy;
ポスト:©       //  ソースを表示すると、&copy;

・EUC-JP
入力値:©       //  ソースを表示すると、&copy;
ポスト:©       //  ソースを表示すると、&copy;



微妙に結果が番う。

.htaccessで403を404で返す

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