PHPバージョンの古いもので作成したプログラムを使おうとしたとき、下記のようなエラーメッセージが出るときがあります。
□エラーメッセージ□
Warning: Unknown(): Your script possibly relies on a session side-effect
which existed until PHP 4.2.3. Please be advised that the session extension
does not consider global variables as a source of data, unless register_globals
is enabled. You can disable this functionality and this warning by setting
session.bug_compat_42 or session.bug_compat_warn to off, respectively.
in Unknown on line 0
これは、PHP4.2.3以降、register_globalsがデフォルトでOFFになっているため、初期化していないグローバル変数がある場合、
上記のエラーが表示されるようです。
これを避けるには、session変数へのデータの渡し方が良くなかったり、初期化していないグローバル変数がある場合は、初期起動時に初期化する必要があります。
ただ、エラー表示が出るだけで、動作的に問題はないといった場合、強制的にエラー表示を出さなくする方法もあります。
PHP 4.3.0 から利用できるようになった
・session.bug_compat_warn
を off (0) にしてもエラー表示はなくなるようです。これは、php.ini に項目が含まれています。
また、php.iniの編集が許可されていないところもあると思いますので、.htaccessファイルでも可能なようです。
php_flag session.bug_compat_warn off
を.htaccessに追加します。
ただ、基本的には、グローバル変数を初期化して、エラーを出さないようにするほうが、セキュリティ的にも良いと思います。
|