perlで外部プログラムを実行する際の注意点

  • 2009.08.28

system関数やパイプを使って外部プログラムを実行する時は 汚染チェックを必ずする。 エスケープするべき文字 & ; ` ' \ " | * ? ~ < > ^ ( ) [ ] { } $ \n \r 以下の置き換えで全てをエスケープすると良い。 s/([\&\;\`\'\\\"\|\*\?\~\\^\(\)\[\]\{\}\$\n\r])/\\$1/g; 参考:http://www.stackasterisk.jp/tech/program/perl02_02.jsp

JSONPのIE対応 UTF8で動かない件

IEでだけ動作しない事が多いようなのでメモ JSON(JSONP)で name( { 'data' :[ ['あいう','せそ'], ['かきく','けこ'], ['さしす','せそ'] ] } ); こんな感じのものを使おうとすると ']'がありませんというようなエラーが出る。 cgi等スクリプトで出力する場合はレスポンスヘッダを明示的に指定する必要がある。 perlなら print "Content-type: application/json; charset=UTF-8;\n\n"; のように。 charsetは'utf8'ではダメで'UTF-8'か'utf-8'とハイフンが必要のよう […]

Linux システムコマンドの標準出力をperlで受け取る

  • 2009.07.30

Linuxのコマンド ls -cr `find /tmp -type f` ・find /tmp -type f /tmp 以下のファイル全てを検索 ・ls -cr 更新日時を古い順にソート つまり /tmp 以下のファイルを更新日時が古い順にソートするコマンド。 ちなみに、 ls -c  最後にファイルのステータスを変更した時間でソート ls -t  修正時刻順でソート。 ls -u  最後にファイルにアクセスした時刻でソート perlで使う時は 、 open(IN, "ls -cr `find /tmp -type f` | "); print while(); のように、openの中のコ […]

Mac OSX でWebmin ファイルマネージャが使用出来ない時の対処法

今まで普通に使用出来ていたWebminのFile Manager が突然エラーで表示出来なくなった。で、ググっていたらApple公式にヒントがあったのでメモ。 エラー内容はこんな感じ Failed to get Language List javax.net.ssl.SSHHandshakeException java.security.cert.CertificateException Java couldn't trust Server http://support.apple.com/kb/TA24031?viewlocale=ja_JP Finder → 移動 → ユーティリティ → […]

Webmin ファイルマネージャの文字化け解消

webmin設定>言語>Japanese (JA_JP.EUC)での場合 /usr/libexec/webmin/file/lang/ja_JP.euc をローカルにダウンロード。 テキストエディタ等で「sjis」に変換して保存。 同ファイルを同ディレクトリにアップロード。 これで文字化けが解消される。 表示言語がUTF-8ならja_JP.UTF-8 をsjisで保存してアップロード。 参考:http://rcconf.blogspot.com/2007/05/webmin.html ちなみにテキストエディタはmi(ミミカキエディット)が便利です。 マック用ですが。 http://www.mi […]

MySQL DATETIME型へのINDEX注意点

MySQLのDATETIME型へインデックスをつける場合注意が必要。 例えばこんなSQLではインデックスが使用されない。 SELECT * FROM table WHERE datetime LIKE '2009-05-17%' 検索結果は2009-05-17分全てが抽出されるが、フルスキャンがかかる。 この場合、以下のようなSQLが良い。 SELECT * FROM table WHERE date_time BETWEEN '2009-05-17' AND '2009-05-17' + INTERVAL 1 DAY 実行時間計測の例 行数:13,776行 データ:2,935KB インデック […]

eval{}; 中のreturn(); に注意

  • 2009.04.08

例えば sub xxx{ eval{ my $a=1; if($a){return(0);} }; } if(&xxx){print"abc";} else{print"def";} などとするとうまくいかない。 sub xxx{ eval{ my $a=1; if($a){die;} }; if($@){return(0);} } などとしよう。

PhpMyAdminの導入

  • 2009.02.17

phpmyadminインストール yum install phpmyadmin /usr/share/phpmyadmin にインストールされる。 /usr/share/phpmyadmin/config.inc.phpを編集 $cfg['blowfish_secret']を設定。 /* * This is needed for cookie based authentication to encrypt password in * cookie */ $cfg['blowfish_secret'] = '*************'; /* YOU MUST FILL IN THIS FOR […]

1 23 26