"ろぐほー"にミスが有ったので修正しました。
MySQLのクエリー発行の際に文字列をエスケープしているのですが、後でエスケープした文字列を元に戻すのを忘れていました。
一部始終を紹介します。
PHPではMySQLの操作を行う際には不正なクエリーが発行されないように
mysql_real_escape_string()関数を使って文字列をエスケープします。
これを行わないと、SQLインジェクションという脆弱性を持つことになります。
(なお、この方法は既に推奨される方法ではないので気をつけて下さい。)
この関数を使うと例えば、
'という文字は
\'という文字に置換されます。
また、
\'と変換された文字を元に戻すには
stripslashes()関数を使用します。
"ろぐほー"では stripslashes()関数を使用するのを忘れていた為、表示される文字列がおかしくなっていました。
例えば
I'm ~という文章が
I\'m ~という風に表示されていました。
現在は stripslashes()関数を使用してエスケープされた文字を元に戻しているので、問題なく表示されています。
0 件のコメント:
コメントを投稿