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; }
问题解决。