2008年05月27日

CodeIgniter その4

ファイルヘルパはありがちなミスを犯していた。

flock($fp, LOCK_EX);
fwrite($fp, $data);
flock($fp, LOCK_UN);
fclose($fp);

ファイルを書き込む前にロックを解除してはいけない。
ちゃんとテストすればわかるけど、これはロックの意味がなくて、
fwrite はバッファリングされるためロックを解除した段階ではまだファイルに書き込んでおらず、
ロックを解除する前に fflush を呼ぶか、あるいはロックを解除しないまま fclose で閉じて、
確実にファイルに書き込まれた後でロックを解除する必要がある。
posted by oov at 06:43| Comment(0) | TrackBack(0) | プログラム | このブログの読者になる | 更新情報をチェックする

2008年05月24日

CodeIgniter その3

URI ルーティングを使ってセッション ID を切り捨てるのはやっぱりダメだ。

続きを読む
posted by oov at 15:21| Comment(0) | TrackBack(0) | プログラム | このブログの読者になる | 更新情報をチェックする

2008年05月21日

CodeIgniter その2

携帯端末向けのセッションをどうするか色々悩んだが、結局今のところは以下のようになった。

NG Session の実装をベースに
日本CodeIgniterユーザ会の記事の内容を移植した
・Config.php を継承した MY_Config.php を作成して site_url をオーバーライド
・USER_AGENT は先頭50文字を記録するのではなく、先頭512文字のmd5値を保存するようにした

以下こうなった経緯など。

続きを読む
posted by oov at 10:44| Comment(0) | TrackBack(0) | プログラム | このブログの読者になる | 更新情報をチェックする

2008年05月20日

CodeIgniter

最近 CodeIgniter日本 CodeIgniter ユーザ会) を触ってみている。
PHP 向けの MVC モデルに基づいたフレームワークで、ライトウェイトなところが特徴。
以前ちょっと Mojavi などは触ったことがあったが、色々あった煩わしさを感じず好感触だった。

セッションが独自仕様だったり、GETリクエストを利用しない基本構造だったりと色々あり、
国内の場合クッキーを用いることが出来ない携帯などの環境に対しては若干相性が悪い。
それを改善するためのコードも日本 CodeIgniter ユーザ会のサイトに掲載されていたので参考になった。

続きを読む
posted by oov at 05:15| Comment(0) | TrackBack(0) | プログラム | このブログの読者になる | 更新情報をチェックする