1

セッションを使用する完全に機能するサイトを持っています。唯一の例外は、1 つの特定のページです。このページは、いくつかの DB SELECTS や検証などを実行します。その後、HTML 部分でタグを取得します。その間に、私は得ました

<?php
    $classes = explode(",", $_SESSION['classes']);
    foreach ($classes as $class) {
        echo "<option>".$class."</option>";
    }
?>

$_SESSION['classes'] はカンマ区切りの文字列です。例: "10 A,11 D,12 C" ここに奇妙な部分があります。このページをロードすると、すべてが完全に機能し、オプション 10 A、11 D、および 12 C を含むドロップダウン選択が表示されます... しかし、ページを更新すると、オプションが 1 つだけのドロップダウン ボックスが表示されます。Array

はい、それはただ配列と言っています....他のオプションはありません。

いいえ、その PHP ブロックの後に値を他の値に設定していません。実際、このブロックの後に別の PHP ブロックはありません

それをデバッグするために、コードを含む php ブロックを追加しました:タグのecho $_SESSION['classes'];後に、最初のページが読み込まれました。リフレッシュ後、それは言った</select>10 A,11 D,12 CArray

それから私は試しvar_dump($_SESSION);てみまし["classes"]=> &string(9) "11 A,10 C" たが、最も奇妙な部分は次のとおりです。更新後、["classes"]=> &array(2) { [0]=> string(4) "11 A" [1]=> string(4) "10 C" }別の更新で、それは言いました["classes"]=> &array(1) { [0]=> string(5) "Array" }

ただし、これはローカル サーバーではなく、Web ホストでのみ発生します。そして、このページだけで

何が原因なのか、どうすれば直るのかわかりません

4

2 に答える 2

1

あなたはおそらくregister_globalsオンになっているので、ある時点で$classes混ざります。$_SESSION['classes']

それらをオフにする必要があります。(これが理由です。)

または、何らかの理由でオフにできない場合は、変数名を変更します。

于 2013-07-15T13:30:30.197 に答える