由于PHP本身对GBK宽字节特殊汉字处理存在问题,致使帝国系统受迁连。此问题目前已经影响到 帝国CMS 中的部分功能模块的使用,恶意用户可能通过部分功能对网站发起攻击。为此我们强烈建议您立即进行修补。
帝国CMS于2009-06-13 13:40修正了最新程序,此时间后从官方下载并安装和升级的用户(v5.1)将不用修复此补丁。
修复方法:(适用于所有帝国CMS版本) 修改e/class/connect.php文件,找到:
function db_connect(){ global $phome_db_server,$phome_db_username,$phome_db_password,$phome_db_dbname,$phome_db_port,$phome_db_char,$phome_use_dbver; $dblocalhost=$phome_db_server; //端口 if($phome_db_port) { $dblocalhost.=":".$phome_db_port; } $link=@mysql_connect($dblocalhost,$phome_db_username,$phome_db_password); if(!$link) { echo"Cann't connect to DB!"; exit(); } //编码 if($phome_use_dbver>='4.1') { if($phome_db_char) { @mysql_query("SET names '".$phome_db_char."';"); } if($phome_use_dbver>='5.0') { @mysql_query("SET sql_mode=''"); } } @mysql_select_db($phome_db_dbname); return $link; } |
将它改为
function db_connect(){ global $phome_db_server,$phome_db_username,$phome_db_password,$phome_db_dbname,$phome_db_port,$phome_db_char,$phome_use_dbver; $dblocalhost=$phome_db_server; //端口 if($phome_db_port) { $dblocalhost.=":".$phome_db_port; } $link=@mysql_connect($dblocalhost,$phome_db_username,$phome_db_password); if(!$link) { echo"Cann't connect to DB!"; exit(); } //编码 if($phome_use_dbver>='4.1') { $q=''; if($phome_db_char) { $q='character_set_connection='.$phome_db_char.',character_set_results='.$phome_db_char.',character_set_client=binary'; } if($phome_use_dbver>='5.0') { $q.=(empty($q)?'':',').'sql_mode=\'\''; } if($q) { @mysql_query('SET '.$q); } } @mysql_select_db($phome_db_dbname); return $link; } |
,然后保存文件即可修复完毕。
(推荐用dreamweaver编辑,可防止UTF8编码文件被转换为GBK)
|