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

yipeiwu_com7年前PHP代码库
这个问题是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脚本并存。

相关文章

php中global和$GLOBALS[]的分析之一

这可能引起一些问题,有些人可能漫不经心的改变一个全局变量。PHP 中全局变量在函数中使用时必须申明为全局(注意,Global这个关键字在函数中定义才有用)。 1:Global的作用是定义...

PHP实现二维数组按指定的键名排序的方法示例

本文实例讲述了PHP实现二维数组按指定的键名排序的方法。分享给大家供大家参考,具体如下: <?php /*二维数组按指定的键值排序*/ function array_s...

php文档更新介绍

简单的试用心得如下:   安装pman   使用传说中的pear来安装pman   sudo pear install doc.php.net/pman   如果pear版本比较老,需要...

php中神奇的fastcgi_finish_request

听起来可能有些茫然,我们通过几个例子来说明一下: 复制代码 代码如下: <?php echo '例子:'; fastcgi_finish_request(); echo 'To b...

php中的注释、变量、数组、常量、函数应用介绍

php中单引号与双引号的区别? 1. 由下可看出,双引号的变量是解析并输出,而单引号的变量不解析。 2.单引号的解析速度比双引号的快 3. 对于单引号来说,只有两个转义 \',\\ 4....