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

yipeiwu_com6年前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使用Imagick生成图片的方法

本文实例讲述了php使用Imagick生成图片的方法。分享给大家供大家参考。具体如下: 这里使用Imagick 生成图片 解决了图片写中文文字乱码问题,添加支持的字体 public...

php-app开发接口加密详解

自己平时工作中用到的一套接口加密规则,记录下来以后用: /** inc 解析接口 客户端接口传输规则: 1.用cmd参数(base64)来动态调用不同的接口,接口地址统一为 htt...

Ajax+PHP快速上手及简单应用说明

简介:Ajax 由 HTML、JavaScript™技术、DHTML 和 DOM 组成,这一杰出的方法可以将笨拙的Web 界面转化成交互性的 Ajax 应用程序。 对于Aja...

PHP输出时间差函数代码

PHP输出时间差函数 复制代码 代码如下:<?php  date_default_timezone_set('PRC'); //默认时区  echo "今天:"...

探讨php define()函数及defined()函数使用详解

The define() function defines a constant.define()函数的作用是:定义一个常量。 Constants are much like varia...