无法从post变量,服务器bug中获取数组?

时间:2012-08-15 13:43:41

标签: php arrays

我有一个选择的多个像这样:

<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.ini设置会强制php将$ viewer视为实际数组?

更新:

我在生产服务器上执行了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 个答案:

答案 0 :(得分:0)

引起这个问题的是神奇的引用。显然,另一位管理员出于某种原因打开了它们。 (我想不出所有计算机中的任何东西 - 除了可能是IE6 - 多年来我引起的问题多于魔术引用......)

所以,php.ini改为:

magic_quotes_gpc = Off