给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程序的多种方法介绍

调试的定义:通过一定方法,在程序中找到并减少缺陷的数量,从而使其能正常工作。 这里说一些如何调试PHP程序的经验。 一、PHP自带的调试功能 1、自带的报错功能 两个名词:开发环境是开发...

利用PHP实现智能文件类型检测的实现代码

使用文件后缀和MIME类型检测 通常我们想严格限制文件类型的时候,可以简单地用$_FILES['myFile']['type']  取得文件的 MIME类型然后来检测它是否是合法的类型。...

php中FTP函数ftp_connect、ftp_login与ftp_chmod用法

本文实例讲述了php中FTP函数ftp_connect、ftp_login与ftp_chmod用法。分享给大家供大家参考。具体方法如下: ftp_connect() 函数建立一个新的 f...

php mssql 分页SQL语句优化 持续影响

复制代码 代码如下:<?php /** * @Filename :page.sql.class.php * @CreatTime :2009-01-06 * @Descrition...

解析yii数据库的增删查改

1. 存取数据库方法存储第一种存表时候用到例子:复制代码 代码如下:$post=new Post;$post->title='samplepost';$post->conte...