アーカイブ - 8月, 2009



2009年 8月 28

system関数やパイプを使って外部プログラムを実行する時は
汚染チェックを必ずする。

エスケープするべき文字

& ; ` ' \ " | * ? ~ < > ^ ( ) [ ] { } $ \n \r

以下の置き換えで全てをエスケープすると良い。

s/([\&\;\`\'\\\"\|\*\?\~\<\>\^\(\)\[\]\{\}\$\n\r])/\\$1/g;

参考:http://www.stackasterisk.jp/tech/program/perl02_02.jsp


Filed under: perl

Trackback Uri






2009年 8月 24

IEでだけ動作しない事が多いようなのでメモ

JSON(JSONP)で

name(
    {
      'data' :[
                    ['あいう','せそ'],
                    ['かきく','けこ'],
                    ['さしす','せそ']
              ]
    }
);

こんな感じのものを使おうとすると
‘]’がありませんというようなエラーが出る。

cgi等スクリプトで出力する場合はレスポンスヘッダを明示的に指定する必要がある。

perlなら

print “Content-type: application/json; charset=UTF-8;\n\n”;

のように。

charsetは’utf8‘ではダメで’UTF-8‘か’utf-8‘とハイフンが必要のようだ。

Content-typeも application/json とするのが良いらしい。

参考:

追記:

どうやら呼び出す時に<script>タグで指定すれば(静的ファイルでも)動作する模様。
動的に育成しない場合はレスポンスヘッダの付加は難しいし使えるかも。


例)<script type=”text/javascript” src=”../json.js” charset=”utf-8″></script>

この場合、type は text/javascript でのみ動作した。(win XP,IE8)
application/json や application/javascript では動作しなかった。


Filed under: JavaScript

Trackback Uri