当前位置: 首页 > 图文教程 > 网络编程 > PHP > 给apache2.2加上mod_encoding模块後 php5.2.0 处理url出现bug

PHP
利用PHP+JavaScript打造AJAX搜索窗(1)
利用PHP+JavaScript打造AJAX搜索窗(2)
利用PHP+JavaScript打造AJAX搜索窗(3)
利用PHP+JavaScript打造AJAX搜索窗(4)
AJAX 技术在 PHP 中的简单使用(1 )
AJAX 技术在 PHP 中的简单使用(2)
PHP 中使用 crypt() 实现用户身份验证
PHP 下一代的五个 framework 介绍
利用PHP的OOP特性实现数据保护(1 )
利用PHP的OOP特性实现数据保护(2)
利用PHP的OOP特性实现数据保护(3)
小技巧:Windows下PHP与SQL Server的连接
如何利用PHP自定义错误处理器处理出错信息
利用正确的PHP类搜索定位目录树
如何使用PHP和PEAR的Net:Geo定位用户
AJAX应用中浏览器的BACK后退按钮问题
如何用PHP程序控制浏览器cache
PHP入门教程:如何制作一个小桌子
巧用PHP文本模板读取编写XML DOM
PHP实现简单线性回归之数学库重要性

PHP 中的 给apache2.2加上mod_encoding模块後 php5.2.0 处理url出现bug


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-13   浏览: 290 ::
收藏到网摘: n/a

这个问题是mod_encoding已经先一步处理了url ,而PHP又解了一次
例如
x.php?s=%252B%2F%2B%2F
那么$_GET['s']得到的是
+/ /
urlencode("+") = %2B
urlencode("%2B") = %252B
所以,这个url被decode了两次
第一次是
urldecode( "%252B%2F%2B%2F") = %2B/+/
urldecode( "%2B/+/") = +/ /
解决办法
修改httpd.conf 将
<IfModule mod_encoding.c>
EncodingEngine on
这一段配置移到需要的vitualHost里去,这个不能和php脚本并存。