狐の王国


2007年03月26日(月) [過去の今日]

#1 PHP 4.3.11以前にsuper global変数上書きのバグ

PHPでプログラムを書いてたのだが、なんか挙動がおかしい。どうもバグっぽい。 最小再現コードはこんな感じ。

<?php
session_start();
print $foo.'<br>';
$_SESSION['foo'] = 'foo';
$foo = 'bar';
print $_SESSION['foo'].'<br>';
?>

これでリロードしてると、$fooの中身が$_SESSION['foo']と同じポインタ(?)になってるのがわかる。最初から値が入ってたり、$fooを書き換えると$_SESSION['foo']まで書き変わったりする。逆も然り。

どうもPHP 4.3.11以前でなおかつregister_globals = Onの時に出るバグのようだ。

Debian sargeのPHPは4.3.10なのな。PHPプロジェクトに直接投げる気もしないし、こっちに報告してみた。

でもなー、どうせもうすぐetch出るし、今時4.3系列ってのもナニだし、register_globalsなんてふつーoffだし、別にどうでもいいバグという気もしなくはない。

いや、そんなバグにひっかかった俺も俺なんですが orz

まあしょんぼり極まりないバグとはいえ、一部のレンタルサーバはregister_globals = Onにして提供されてたりするようだし、4.3.11以前のPHPが入ってたりする事もあるようなので、気をつけられたし。

(@471)

Debianの決定は正しいと思う:

BTSで返事 をもらった。Debianはregister_globalsをサポートしない、とのこと。これは非常に正しい判断だと思う。

伝わるかどうかわからないが、それを支持する旨を書いて送っておいた。いい加減この中学生以下の俺の英語力はどうにかせんとなあ……。

(@073)

この記事のURI

最近の記事

以上、1 日分

タイトル一覧


カテゴリ分類
Powered by hns-2.19.8, HyperNikkiSystem Project

過去にこの日記が置いてあったcgi.misao.gr.jpは廃止されました。それによって記事へのURIが変わってしまっています。cgi.misao.gr.jpをwww.misao.gr.jpと置き換えるだけで同じ記事にアクセスできるはずです。

Sugano "狐志庵" Yoshihisa(E) @ 美紗緒ネットワーク <koshian@misao.gr.jp>
日記管理ページ