PHP 4 サーバーで実行されているスクリプトの問題を調べていました (わかっています...アップグレード中ですが、まだ PHP 4 を使用しているサーバーの修正が必要です)。
次のページの冒頭でセッション変数が別の値にリセットされるという問題があります。これは、この時点に到達するために実行したテストであり、何が起こっているのかわかりません。
ページ構造: main.php -> 最初に start_page.inc を呼び出します。main.php -> footer.inc を最後に呼び出します。
これが起こっているステップと私が理解できないことです:
start_page.inc: echos 'test2'
(開始ページに の値が出力されます$_SESSION['test']
)
default.php: echos 'test2'
(default.php は の値を出力します$_SESSION['test']
)
default.php: SET 'test2'
(default.php は の値を$_SESSION['test']
に設定しますtest2
)
footer.inc: SET 'test'
(footer.inc は の値を$_SESSION['test']
に設定しますtest
)
footer.inc: echos 'test'
(footer.inc は の値を出力します$_SESSION['test']
)
ページを何回更新しても、1 つの例外を除いて、常にこのように表示されます。セッション変数が初めて設定されるとtest
、次の更新時にエコーされます。
なぜ/どのようにこれが起こっているのか、どうすれば修正できるのか誰でも理解できますか? これらのファイルを PHP 5 サーバーでテストしたところ、実際には同じ結果が得られました。
test
何かが欠けていない限り、最初の 2 つのエコーは常に である必要があります。
これを追加値のないテストページに落としてみましたが、再現できないようです...テスト変数は上書きされていません。このテスト用に特別に作成しました。