だいこんの日々2

軸足をtwitterとfacebookに移しつつも、技術的な話はここに書いていきます。

PHP

PHP 5.1.4 &MySQL 4.1.19

PHP

どうやらGW中にMySQL 4.1.19とPHP 5.1.4が出たようなので更新してみた。PHPは5.1.3もでたようだが、致命的なバグですぐに更新された模様。 で、MySQLは問題なさそうなのだが、PHPはコマンドを起動するだけでアプリケーションエラーが出る。デバッグしてみる…

続Ethna_UnitTest

メーリングリストに急いで投げたときの、汚いままのコードがコミットされているのに気づいた。ちょっと見苦しいので、haltさんにパッチを送った。

Ethna_UnitTest

Ethnaにユニットテストが追加されているのに気づいた。わーい、コミットされたー。

EthnaでPEAR::Auth 1.3.0 その2

問題なく動いていると思ったら、問題ありでした…(ノд・。)PEAR::Auth 1.3.0から、認証時にsession_regenerate_idを呼んでくれちゃう仕様になった模様。この関数を呼ばれると、Ethnaがせっかく長いセッションID(64文字)を生成してくれているのに、PH…

EthnaでPEAR::Auth 1.3.0

PEAR::Auth 1.3.0がリリースされたので導入してみたが、認証関係がうまく動かなくなったorz以前もPEAR::Authのセッションの扱いで苦労したが、またセッションがらみ。今回は、PEAR::Authオブジェクトの生成時にセッションを開始するようになったので、Ethna…

session_regenerate_id

PHPはセッション固定攻撃に弱い。対策の一つとしてsession_regenerate_idという関数を使う方法がある。Ethnaでsession_regenerate_idを使うと、セッションIDが短くなってしまうため、セッションハイジャックに弱くなってしまう。ということでEthna用の関数。…

PDO

PHP

PDOの使用方法について、インターネット上で何件か入手できるのだけれど、正式版と記事の時点での仕様が変更されていてかなり参った。例えば、bindParamするときに、変数の型としてPDO_PARAM_STRを指定したりするが、これが定数と認識されなくて、PDO::PARAM…

PHP 5.1.1

PHP

さっそくPHP 5.1.1が出た。5.1.0のバグが十数件改修されているだけのようだ。仕様変更はやめてね。あと、バイナリにCollection of PECL modulesが出てきた。5.1.0の時は忘れていたのか?

PHP 5.1.0とbasename

PHP

ふと調べてみたら、basenameのマルチバイト文字列に関するバグが直ってね〜。引き続き、preg_replace('#^.*[/\\\]#', '', $file);で代用か…。←勘違い。漢字コードの設定を行えば問題なしm(_ _)m

PHP 5.1.0

PHP

PHP 5.1.0が出た。つい最近、5.0.6が出ないらしいと言うことで、5.1系へ移行を考え始めた矢先のことだ。とりあえず導入を試みる。…が、なぜかうまく動いてくれない。PHPスクリプトを認識してくれないのですよ。現行の環境(SpaceTag Server)ではmod_php5.so…

PHP 5.0.5

PHP

今日も今日とて、おうちで仕事。半分趣味(笑)午前中に、昨日のプログラムの更新分をcommit。まだ何点か修正漏れがあったのでそれも修正してcommit。午後には、PHP5の更新を試みる。「$GLOBAL変数を改変する脆弱性」に対するパッチと、「mbstring系の文字化…

Smartyのtruncate

Smartyのtruncateを使っていると、日本語が途中で切られてしまうことがある。まぁ、日本語対応した関数使ってないから当然だわな。で、日本語対応のtruncateはないものかと思って調べると、mbtruncateというSmartyプラグインが何個か見つかる。このプラグイ…

Fatal error: Unknown function: pma_reloadnavigation()

PHP

2度も同じエラーに悩まされて悲しくなったので備忘録。phpMyAdminを起動すると、「Fatal error: Unknown function: pma_reloadnavigation()」が表示されて起動できない。これはMySQLの4.0から4.1への変更で、文字コード絡みの変更が入ったため。詳細は以下を…

EthnaとPEAR::Auth 続き

前日の仕事の続き。休みだというのにねぇ。追跡した結果、PEAR::Authの内部でsession_start()されていることが原因と判明。Ethna_Sessionが内部でセッション開始フラグを持っているので、PEAR::Authでセッションを開始しても、無視して新たなセッションを作…

EthnaとPEAR::Auth

EthnaとPEAR::Authを組み合わせて認証機構を作っているのだけれど、どうも挙動がおかしい。認証後にセッションが変わってしまうらしく、認証済みの情報を保持できない。粘って解析し続けたけれど、疲れたので帰る。