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

yipeiwu_com5年前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实现函数内修改外部变量值的方法示例

本文实例讲述了PHP实现函数内修改外部变量值的方法。分享给大家供大家参考,具体如下: 直接上代码,如下: $a_str = 'ab'; function change_val(){...

php数组中删除元素之重新索引的方法

如果要在某个数组中删除一个元素,可以直接用的unset,但今天看到的东西却让我大吃一惊 复制代码 代码如下: <?php $arr = array('a','b','c',...

php使用Jpgraph创建折线图效果示例

php使用Jpgraph创建折线图效果示例

本文实例讲述了php使用Jpgraph创建折线图效果。分享给大家供大家参考,具体如下: 在企业运营中,经常需要对各种数据进行统计,利用图表动态分析不同的数据表中的数据,可以使数据显示的更...

PHP实现的QQ空间g_tk加密算法

本文实例讲述了PHP实现的QQ空间g_tk加密算法。分享给大家供大家参考。具体如下: //G_tk计算 function getGTK($skey){ $hash = 5381;...

js和php邮箱地址验证的实现方法

邮箱地址验证有很多方法。在浏览器端,js邮箱验证可以通过正则表达式检测。 比如:复制代码 代码如下:function isEmail(email) {   ...