Joomla 3不支持magic_quotes_gpc配置的解决办法

去年底的时候一个客户的网站要求的权限非常细致,就想到了Joomla,这个系统虽然比较复杂,但后台的权限控制功能非常细致,而且也使用的Bootstrap风格,感觉很舒服,于是就用了Joomla做二次开发。

也是第一次用Joomla,安装并调整了手机版,评论,等功能,最后在客户买好的空间里上传测试才发现,Joomla 3不支持开启了magic_quotes_gpc配置的服务器,编辑框里的代码全部被转义了。还以为万网的服务器多好,原来就这样子,只有几个配置选项,关不掉magic_quotes_gpc,运行时又有限制。没有办法,就想到在程序初始化时去除被转义过的表单值。

Joomla的前后台是分开的两个Application,所以要统一加,还要在框架里加,libraries是Joomla的库文件,非常庞大,但是层次分明,application目录下就是Joomla的application原型,于是在初始化方法里加入以下代码:

 

//function __construct:
// Remove slashes
if ( get_magic_quotes_gpc())
{
	$_GET = self::stripslashesRecursive($_GET);
	$_POST = self::stripslashesRecursive($_POST);
	$_REQUEST = self::stripslashesRecursive($_REQUEST);
}


/**
 * 
 */
public static function stripslashesRecursive(array $array)
{
	foreach ($array as $k => $v) {
		if (is_string($v)) {
			$array[$k] = stripslashes($v);
		} else if (is_array($v)) {
			$array[$k] = self::stripslashesRecursive($v);
		}
	}
	return $array;
}

 

问题解决。