我有个奇怪的问题。我最近将我的应用程序从我本地的xampp安装迁移到了SUSE Enterprise Server11,一切都正常,但这件事让我抓狂,我找不到解决方案。
使用以下语法通过GET或POST传递数组时:
search_dggs.php?latmin[]=52.447529&latmin[]=22&lonmin=17.56&lonmax=22.16我只得到了latmin的第一个元素。请注意,这只是我在其他需要传递数组的地方发生错误后尝试的一个简单示例。
print_r($_SERVER["QUERY_STRING"]); 输出
latmin[]=52.447529&latmin[]=22&lonmin=17.56&lonmax=22.16但
print_r($_GET);给出
Array
(
[latmin] => Array
(
[0] => 52.447529
)
[lonmin] => 17.56
[lonmax] => 22.16
)所有POST请求都会发生完全相同的情况。
我使用的是PHP版本5.3.8。我猜问题出在一些服务器配置上,但是我找不到任何关于这个问题的东西。
回复评论:
如果我提交任意数量的变量,也会发生同样的情况。
parse_str($_SERVER["QUERY_STRING"]);
print_r($latmin);给出
Array
(
[0] => 52.447529
)可以在here上找到php.ini
您应该能够看到操作here中的行为
此php文件的源文件是
<?php
$test="latmin[]=52.447529&latmin[]=22&lonmin=23&lonmax=22.16";
parse_str($test);
print_r($latmin);
phpinfo();
?>发布于 2012-04-12 22:48:55
我的系统管理员进行了系统更新和重启,现在这个问题已经解决了。未更改任何配置文件。
发布于 2012-04-10 01:26:23
在我的服务器上进行了测试,它对我来说工作正常:
_GET["latmin"]
Array
(
[0] => 52.447529
[1] => 22
)查看数据处理部分中的php.ini,看看它们的值是什么。将所有内容重置为默认值,重新启动try服务器,然后重试。PHP.ini Data Handling defaults
发布于 2012-04-12 16:21:22
即使没有传递任何变量,link中的一个示例每次都会打印Array ( [0] => 52.447529 )。所以,看起来你在没有链接到这个代码的代码中有问题:`
$test="latmin[]=52.447529&latmin[]=22&lonmin=23&lonmax=22.16";
parse_str($test);
print_r($latmin);
phpinfo();`
https://stackoverflow.com/questions/10026198
复制相似问题