バックスラッシュ
▽20040125b
#プログラミング
#PHP
xBBS に「半角バックスラッシュ + 数字」の書き込みをすると, その部分が消えてしまう,というのがあった. どう見てもダブルクォート文字列のエスケープシーケンスが有効になってるっぽくて, バグやセキュリティホールが裏にあったりしそうでイヤな感じなので,調査.
で,まず DB の中を見ると……あれ,フツーに登録されてる.
ってことは表示系か……と調べてみると,
どうやら PEAR の HTML_Template_IT クラスでは,
setVariable()
する文字列に上記のようなバックスラッシュ文字列があると,
それをエスケープシーケンスとして解釈してしまう模様.
おーい.テンプレートエンジンが与えられた文字列を変更してどーする.
で,上位互換エンジンの HTML_Template_Sigma テンプレートでは, 上記の現象は起きない. めんどくせーから全部を Sigma で統一しちゃいました(ぉ ってことで,バックスラッシュもフツーに使えるぜイエー.