我有一个选择的多个像这样:
<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"
一个有效,另一个无效。
答案 0 :(得分:0)
引起这个问题的是神奇的引用。显然,另一位管理员出于某种原因打开了它们。 (我想不出所有计算机中的任何东西 - 除了可能是IE6 - 多年来我引起的问题多于魔术引用......)
所以,php.ini改为:
magic_quotes_gpc = Off