0

クライアント用に作成した小さなワードプレス プラグインをテストしていますが、テストしているコンピューターの 1 つに問題があります。データが保存されていない可能性があると思い$_SESSIONます...

これには無効な引数が与えられますforeach()

foreach ($_SESSION['page-1'] as $key => $value) {
    $score += $value * 2;
}

これの奇妙な点は、デスクトップとラップトップの両方で機能することですが、テストしている 2 番目のデスクトップでは機能しません。

基本的にforeach()$_SESSION、前のページから情報を取得し、それを現在のページの新しい変数に変換するだけです。

4

1 に答える 1

1

セッション変数$_SESSION['page-1']が配列ではないようです。foreach に入る前に確認してください。

if (is_array($_SESSION['page-1'])) {
    foreach (...) {
        ...
    }
}

次のいずれかです。

  • どこでも配列として設定するのではなく$_SESSION['page-1']、他のタイプと同じように設定します。
  • セッションを ( で) 開始するのを忘れたsession_startか、スクリプトに論理エラーがあり、$_SESSION['page-1']ある時点で設定されていないか設定解除されているためforeach (NULL as ...)、エラーが発生します。

覚えておいてください:セッションを開始する必要があります:

session_start();

セッション変数を取得または設定しようとするたびに。それ以外の場合は、未定義の変数を設定または取得しているだけです。

于 2013-03-12T21:50:06.617 に答える