给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验证码小案例

拓展 我们需要开启gd拓展,可以使用下面的代码来查看是否开启gd拓展。 <?php echo "Hello World!!!!"; echo phpinfo();...

ThinkPHP采用模块和操作分析

任何一个WEB行为都可以认为是一个模块的某个操作,系统会根据当前的URL来分析要执行的模块和操作。这个分析工作由URL调度器来实现,官方内置了Dispatcher类来完成该调度。 在Di...

使用php实现网站验证码功能【推荐】

验证码是网站常用的一项安全措施,也是新人站长较难掌握的一项技能,这里我向大家介绍一简单有效的验证码实现方法。 开始之前 在正式开始之前我们需要打开php的gd2图形库支持(在php.in...

php文件上传类完整实例

本文实例讲述了php文件上传类。分享给大家供大家参考,具体如下: /** $file=new class_file($file_array,"flash/"); $file->...

php实现分页显示

所谓分页显示,也就是将数据库中的结果集人为的分成一段一段的来显示,这里需要两个初始的参数: 每页多少条记录($PageSize)? 当前是第几页($CurrentPageID)? 现在只...