2007年11月22日木曜日

phpでもデータ型を意識する

HTML_QuickFormを使って、

$form->addElement("select","test_select_box","",array(1=>1,2=>2,3=>3,4=>4,5=>5));
$form->setDefaults(array("test_select_box"=>"03"));

という感じのソースコードを過去に書いていたんですが、これが突然機能しなくなっていました。
具体的には、デフォルトが3にならないで、1になってしまうという症状。
最近のphpのバージョンアップで、データ型の判定が厳しくなったのが原因ではないかと推測しています。phpってデータ型の変換とかある程度勝手にやってくれて楽だったんですが、だんだんそのあたりも厳しくなってきたようです。
php3とか4の頃は「phpはコーディングが楽」っていうのがウリになっていましたが、最近はそうでもない感じですね。
適当なソースコードを書いてるとバージョンアップの時に大変なことになる恐れがあるので、そのあたり意識するようにしていきたいと思います。

2007年11月20日火曜日

2007年11月17日土曜日

registerElementTypeでQuickFormを拡張する

HTML_QuickFormを使い、フォームの確認画面(freezeした状態)で、数値にカンマを入れたいと思っていたら、ドンピシャのページを発見。
http://ml.php.gr.jp/pipermail/php-users/2006-September/030839.html
registerElementTypeを使うことでQuickFormのElementを拡張することができます。
これまでけっこうQuickFormを使い込んできましたが、これは知らなかった。こういうこともできるんですねぇ。
覚えておいて損はなさそうです。

2007年11月14日水曜日

スタイルシートの優先順位

CSSの適用には、以下のような基準があるんだそうです。
http://www.stylish-style.com/csstec/base/order.html
なるほど、勉強になります。
#hoge .aiueo .kakikukeko

てな感じでCSSが書かれていることがよくありますが、こうやって優先順位をコントロールしてうまく表示できるようにしてたんですね。勉強になりました。

2007年11月12日月曜日

Windowsでatコマンド

先日Linuxでatコマンドのお勉強をしましたが、今回はwindowsでatコマンドを使いました。
使い方はほぼ同じ。
at 8:30 C:\hoge\hoge.exe

という感じです。
登録したジョブの確認は
at

ジョブの削除は
at 1 /delete

※1はジョブIDを指定
簡単ですね。
今後あまり使うことはないと思いますが、いちおうメモしときます。

2007年11月7日水曜日

atコマンドを勉強

atコマンドを使ってみようと思い、勉強してみました。
使い方は意外と簡単。こんな感じ
・日時を指定して実行
echo "ls -al" |at 17:24 11/06/2007

※mm/dd/YYYYなので注意
・3分後に実行
echo "ps ax" | at now + 3minute

実行結果はメールで届きます。
ジョブの確認は以下の通り。
・キューに入っているジョブの表示
$ atq

・実行待ちのジョブを消す
$ atrm ジョブ番号

参考サイト
http://sonic64.com/2004-08-31.html
http://discypus.jp/wiki/?Linux%2Fat%A5%B3%A5%DE%A5%F3%A5%C9

phpでの暗号化・復号化

http://labs.unoh.net/2007/11/php_de_crypt.html
こちらのページが参考になりました。
mcryptモジュール、PEAR::Crypt_Blowfish、opensslモジュールの3種類を使った暗号化・復号化のやり方が説明されています。

httpsからhttpへのアクセスはリファラーは送出されない

です。
実際にやって試しました。httpsのページからhttpのページにリンクを張り、ジャンプしてもリファラーが出ない。なぜだ。。。
不審に思ってググってみたら、こういうことでした。納得。
http://www.nitoka.net/archives/2006/12/httpshttp.html

2007年11月6日火曜日

mb_send_mailで文字化けする

文字コードUTF-8を使っている環境で、phpによるメール送信で文字化けする現象が起こりました。
mb_language("uni");

を使うと文字化けが解消できます。
詳細はこちらのURLを見てください。
http://www.securehtml.jp/utf-8/php_utf_mail.html
こんな感じになります。

mb_internal_encoding("utf-8");
mb_language("uni");
mb_send_mail(....

QihooBotが来た

webalizerを見ていたら、見慣れないIPからのアクセスが目立っていたのでログを調べてみたところ、
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; QihooBot 1.0 qihoobot@qihoo.net)

というUserAgentだった。
IPアドレスは
221.194.136.22
221.194.136.25
221.194.136.35
221.194.136.28
221.194.136.32
となっている。QihooBotでググってみたところ、他にも同じように迷惑こうむっている方がいらっしゃいました。
http://blog.cles.jp/item/1876
http://www.makizou.com/archives/1154
ただ、こちらの方々と自分のケースではIPアドレスが違っています。
IP変えて巡回してるとしたらちょっと厄介ですね。