0

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 つのエコーは常に である必要があります。

これを追加値のないテストページに落としてみましたが、再現できないようです...テスト変数は上書きされていません。このテスト用に特別に作成しました。

4

1 に答える 1

1

私が覚えている考えられる問題は次のとおりです。使用していないsession_start()か、リモートエンドがCookieをサポートしていないか、Cookieが無効になっています。2番目の場合は、別の方法でパスする必要がありますPHPSESSID(通常は$_GET)。

于 2012-10-06T17:42:47.407 に答える