codeigniter安全扩展不起作用,覆盖csrf_show_error消息

时间:2015-01-13 02:46:46

标签: php codeigniter

CI版本:2.2.0

我在 /CI220/application/libraries/MY_Security.php 创建了一个文件 配置文件我设置

$config['subclass_prefix'] = 'MY_';

我发现它没有加载MY_Security,我的MY_Controller正在加载,但不是这个库。下面是我的Call Stack Log:

Call Stack
#   Time    Memory  Function    Location
1   0.0004  242064  {main}( )   ../index.php:0
2   0.0009  244352  require_once( '/Users/User/Sites/CI220/system/core/CodeIgniter.php' )   ../index.php:202
3   0.0091  478200  load_class( )   ../CodeIgniter.php:213
4   0.0096  489872  CI_Input->__construct( )    ../Common.php:174
5   0.0097  491432  CI_Input->_sanitize_globals( )  ../Input.php:103
6   0.0232  499224  CI_Security->csrf_verify( ) ../Input.php:647
7   0.0233  499432  CI_Security->csrf_show_error( ) ../Security.php:149

我没有从Security加载我的扩展库。我想覆盖csrf_show_error函数

public function csrf_show_error()
{
    show_error('The action you have requested is not allowed.!!!');
}

2 个答案:

答案 0 :(得分:3)

安全类位于system / 核心 /Security.php

电子邮件类位于system / library /Email.php

您可以参考此链接获取核心课程: http://www.codeigniter.com/user_guide/general/core_classes.html

核心类总是自动加载,因此您也不需要包含在自动加载中。

答案 1 :(得分:0)

感谢@Svetlio的回答

libraries / MY_Security.php是必须在核心文件夹中的错误路径>芯/ MY_Security.php

由于此页面,我感到很困惑。 http://www.codeigniter.com/user_guide/general/creating_libraries.html

  

扩展本地库

     

如果您只需要为现有库添加一些功能    - 也许添加一两个功能 - 然后用您的版本替换整个库是有点过分的。在这种情况下,它更简单   扩展课程。扩展一个类几乎与替换一个类相同   除了几个例外的课程:

     

类声明必须扩展父类。你的新课   名称和文件名必须以MY_为前缀(此项目为   可配置的。见下文。)。例如,扩展本机电子邮件   您将创建一个名为application / libraries /MY_Email.php的文件,   并宣布你的班级:.....

感谢您的回答,所以如果您发现库文件夹无效,可以尝试核心文件夹。