PHP
どうやらGW中にMySQL 4.1.19とPHP 5.1.4が出たようなので更新してみた。PHPは5.1.3もでたようだが、致命的なバグですぐに更新された模様。 で、MySQLは問題なさそうなのだが、PHPはコマンドを起動するだけでアプリケーションエラーが出る。デバッグしてみる…
メーリングリストに急いで投げたときの、汚いままのコードがコミットされているのに気づいた。ちょっと見苦しいので、haltさんにパッチを送った。
Ethnaにユニットテストが追加されているのに気づいた。わーい、コミットされたー。
問題なく動いていると思ったら、問題ありでした…(ノд・。)PEAR::Auth 1.3.0から、認証時にsession_regenerate_idを呼んでくれちゃう仕様になった模様。この関数を呼ばれると、Ethnaがせっかく長いセッションID(64文字)を生成してくれているのに、PH…
PEAR::Auth 1.3.0がリリースされたので導入してみたが、認証関係がうまく動かなくなったorz以前もPEAR::Authのセッションの扱いで苦労したが、またセッションがらみ。今回は、PEAR::Authオブジェクトの生成時にセッションを開始するようになったので、Ethna…
PHPはセッション固定攻撃に弱い。対策の一つとしてsession_regenerate_idという関数を使う方法がある。Ethnaでsession_regenerate_idを使うと、セッションIDが短くなってしまうため、セッションハイジャックに弱くなってしまう。ということでEthna用の関数。…
PDOの使用方法について、インターネット上で何件か入手できるのだけれど、正式版と記事の時点での仕様が変更されていてかなり参った。例えば、bindParamするときに、変数の型としてPDO_PARAM_STRを指定したりするが、これが定数と認識されなくて、PDO::PARAM…
さっそくPHP 5.1.1が出た。5.1.0のバグが十数件改修されているだけのようだ。仕様変更はやめてね。あと、バイナリにCollection of PECL modulesが出てきた。5.1.0の時は忘れていたのか?
ふと調べてみたら、basenameのマルチバイト文字列に関するバグが直ってね〜。引き続き、preg_replace('#^.*[/\\\]#', '', $file);で代用か…。←勘違い。漢字コードの設定を行えば問題なしm(_ _)m
PHP 5.1.0が出た。つい最近、5.0.6が出ないらしいと言うことで、5.1系へ移行を考え始めた矢先のことだ。とりあえず導入を試みる。…が、なぜかうまく動いてくれない。PHPスクリプトを認識してくれないのですよ。現行の環境(SpaceTag Server)ではmod_php5.so…
今日も今日とて、おうちで仕事。半分趣味(笑)午前中に、昨日のプログラムの更新分をcommit。まだ何点か修正漏れがあったのでそれも修正してcommit。午後には、PHP5の更新を試みる。「$GLOBAL変数を改変する脆弱性」に対するパッチと、「mbstring系の文字化…
Smartyのtruncateを使っていると、日本語が途中で切られてしまうことがある。まぁ、日本語対応した関数使ってないから当然だわな。で、日本語対応のtruncateはないものかと思って調べると、mbtruncateというSmartyプラグインが何個か見つかる。このプラグイ…
2度も同じエラーに悩まされて悲しくなったので備忘録。phpMyAdminを起動すると、「Fatal error: Unknown function: pma_reloadnavigation()」が表示されて起動できない。これはMySQLの4.0から4.1への変更で、文字コード絡みの変更が入ったため。詳細は以下を…
前日の仕事の続き。休みだというのにねぇ。追跡した結果、PEAR::Authの内部でsession_start()されていることが原因と判明。Ethna_Sessionが内部でセッション開始フラグを持っているので、PEAR::Authでセッションを開始しても、無視して新たなセッションを作…
EthnaとPEAR::Authを組み合わせて認証機構を作っているのだけれど、どうも挙動がおかしい。認証後にセッションが変わってしまうらしく、認証済みの情報を保持できない。粘って解析し続けたけれど、疲れたので帰る。