0

私は次のように複数選択しています:

<select multiple name="viewers[]"> ...

select の値は、配列として ajax 経由で php スクリプトに送信されます。私のテストサーバーでは、これはうまくいきました:

$viewers = $_POST['viewers'];

foreach ($viewers as $v)
{
 //loop through array
}

同じバージョンの php (5.2.17) を実行している本番サーバーに同じスクリプトをアップロードしたところ、失敗しました。本番サーバーでは、$viewers は値が「array」の文字列になります。

print_r($viewers)
//outputs Array
echo $viewers
//outputs Array

PHP に $viewers を実際の配列として扱うように強制する php.ini 設定はありますか?

アップデート:

本番サーバーで var_dump($_REQUEST) を実行したところ、次の結果が得られました。

array(8) {
  ["viewers"]=>
  array(1) {
    [0]=>
    string(9) "lilamonte"
  }
  ["new_subject"]=>
  string(12) "Test Subject"

テストサーバーでは、次のようになりました。

Array(5) {
  ["viewers"]=>
  array(1) {
    [0]=>
    string(10) "libothwell"
  }
  ["new_subject"]=>
  string(4) "test"

1つは機能しますが、もう1つは機能しません。

4

1 に答える 1

0

この問題を引き起こしたのは魔法の引用符でした。どうやら、別の管理者が何らかの理由でそれらを有効にしたようです。(おそらく IE6 を除いて、すべてのコンピューティングで、魔法の引用よりも長年にわたって私に多くの問題を引き起こしたものは何も考えられません....)

そのため、php.ini は次のように変更されました。

magic_quotes_gpc = Off

于 2012-08-15T18:46:18.553 に答える