未知原因PHP突然无法获取POST url encoded数据碰到一个非常诡异的问题:XP Pro+SP3系统。昨天程序原本都没问题,重启过一次apache之后,发现PHP无法取得POST url encoded 数据了,但是GET和POST multipart/form-data都可以正常获取。也就是说当 的时候,var_dump($_POST)为 array(0){};当 的时候,$_POST里面才会有值。确定浏览器发送了POST数据了,无论是谷歌火狐IE6,传统表单提交还是ajax。也不是只部分页面出现这个问题,所有的php都不行,甚至连phpMyAdmin都无法登录了。今天尝试了重新安装php5.2.17,重新安装apache2.2.22.0,都无法解决。没办法,只好使用 IIS5.1 + PHP5.2.17 isapi再测试,结果这回倒可以了,但我总不好改用IIS吧……回忆昨天重启apache后出现问题之前,好像是运行过一次php下的go-pear.bat,然后在第一个界面就直接点叉关闭了;也有可能修改了一些其他的php.ini配置;但最后我都重新解压了原版的php,重装了apache,按说应该不太可能是他们的原因?还是操作系统出什么诡异的状况了?哪位大侠碰到过这种问题么?我真不想重装系统……------解决方案--------------------先看看 enctype='application/x-www-form-urlencoded' 结果如何? ------解决方案-------------------- 你可以用$_QUERST接收一下值,看是否能接收到post过来的值,至于$_POST不能接受值,应该是配置问题,可能是你php.ini中的某个参数改变导致的!试着修改一下这个参数register_global ------解决方案-------------------- 探讨 不指定enctype时,默认就是"Content-Type:application/x-www-form-urlencoded"。