HOME | LastUpdate: 2005-06-05
PHPWalker の管理者のムトウさんから PHP の Chasen モジュールのコンパイルが成功しても、モジュール読み込み時にエラーが出るという指摘を受けましたので、少し調べてみました。その時に作成したメモを PHP 拡張モジュール(PECL)のメモの Chasen モジュール使用時にエラーが出る場合に追加しました。
PHP 5.1 はまだ開発版で正式版はいつ公開される予定なのかは知りませんが、いろいろと便利な機能が追加されているようですので、メモしておきます。
あまり使っている人はいないと思いますが、CLI版(コマンドライン版) や CGI版の PHP には、対話モード(Interactive mode) が存在します。
コマンド呼び出しの際に -a
を付けると使用できるのですが、非常に使いにくいです。以下のように、php -a
を実行した後、PHP のコードを <?php ... ?> で囲んで入力し、最後に Ctrl-D を押すと結果が出力されます。Ctrl-C で終了です(Unix 系の場合)。
$ php -a
Interactive mode enabled
<?php $a = 1; var_dump( $a ); ?> <-- Ctrl-D で結果出力
int(1)
非常に使いにくいように感じる PHP の対話モードですが、PHP 5.1 からはかなり改善されるようです。More PHP power on the command line(ThinkPHP /dev/blog) によると、PHP 5.1 以降では、PHP のコンパイル時に --with-readline
や BSD 系では、--with-libedit
を付けると、プロンプトが表示され、使いやすい対話モードを使用できるようになります。PHP 5.1 のスナップショット(php5-200506040830)で確認したところ、以下のようになりました。(スナップショットは PHP Snapshots からダウンロードできます)。
$ php-5.1-dev -a Interactive mode enabled php > $a = 1; php > var_dump( $a ); int(1) php > exit
また、TAB キーによる関数の入力補完機能もありますので、便利です。PHP 4.3.x や PHP 5.0.x でも使えるようにして欲しい機能です。
session_regenerate_id()
は PHP 4.3.2 から導入された、セッション ID を変更する際に使用する関数ですが、session_regenerate_id() Improvement(iBlog - Ilia Alshanetsky) によると、PHP 5.1 からは引数のオプションで強制的に削除することができるようになったそうです。
PHP-users メーリングリストで session_regenerate_id()
でセッション ID を変更した時に、一つ前のセッションファイルを削除しないという実装が問題になったことがありましたが、これで望ましい実装になったように思われます。PHP 4.3.x や PHP 5.0.x にバックポートされるかどうかは分かりません。
以下のように session_regenerate_id() を呼び出すときに引数に TRUE
を入れて呼び出すだけのようです。PHP 5.1 のスナップショット版(php5-200506040830)で確認しました(PHP Snapshots)。
session_regenerate_id( TRUE );
複数の Wiki クローン(AsWiki, FreeStyleWiki, Hiki Pukiwiki, Wiki もどき)において、ファイル添付機能によりクロスサイトスクリプティングが可能になる問題が報告されています。
PHP で書かれている Wiki クローンである Pukiwiki も影響を受けるそうです。Default setting of file-attaching function allows XSS (- 1.4.5_1) に詳細な情報があります。
Proxy サーバ。
ネットワーク負荷の監視、グラフ化ツール。
データベース管理システム(RDBMS)。セキュリティ問題のため、7.2.x 以降の全てのメジャーバージョンで修正が行われています。PostgreSQL information page によると、SELECT FOR UPDATE 時にデータの一貫性が一時的に無くなるバグや、VACUMMと INSERT/UPDATE を同時に行った場合にまれにデータが消失するという深刻なバグも修正されているそうです。
このページを作成。2005年 6月 5日分を追加。
LastUpdate: 2005-06-05 | HOME