0

我有一个这样的选择倍数:

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

选择的值通过 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 将 $viewers 视为实际数组?

更新:

我在生产服务器上做了 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"

一个有效,另一个无效。

4

1 回答 1

0

是魔术引号引起了这个问题。显然,另一个管理员出于某种原因打开了它们。(我想不出所有计算中的任何东西——也许除了 IE6——这些年来给我带来的问题比魔术引号还要多……)

因此,php.ini 更改为:

magic_quotes_gpc = Off

于 2012-08-15T18:46:18.553 回答