Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php codeigniter安全扩展不工作,覆盖csrf\u show\u错误消息_Php_Codeigniter - Fatal编程技术网

Php codeigniter安全扩展不工作,覆盖csrf\u show\u错误消息

Php codeigniter安全扩展不工作,覆盖csrf\u show\u错误消息,php,codeigniter,Php,Codeigniter,CI版本:2.2.0 我在/CI220/application/libraries/MY_Security.php 我设置的配置文件 $config['subclass_prefix'] = 'MY_'; 我发现它没有加载MY_安全,我的MY_控制器正在加载,但没有加载此库。下面是我的调用堆栈日志: Call Stack # Time Memory Function Location 1 0.0004 242064 {main}( ) ../index.php:0

CI版本:2.2.0

我在/CI220/application/libraries/MY_Security.php 我设置的配置文件

$config['subclass_prefix'] = 'MY_';
我发现它没有加载MY_安全,我的MY_控制器正在加载,但没有加载此库。下面是我的调用堆栈日志:

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
我没有从安全性加载扩展库。我想覆盖csrf\u show\u error函数

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

谢谢@Svetlio的回答


libraries/MY_Security.php路径错误,它必须位于core folder>core/MY_Security.php中

由于这一页,我感到困惑。

扩展本机库

如果您只需要向现有库添加一些功能 -也许添加一两个函数——那么用您的版本替换整个库就太过分了。在这种情况下,最好是 扩展课程。扩展类几乎等同于替换类 类,但有几个例外:

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


感谢您的回答,因此如果您发现libraries文件夹不工作,可以尝试使用core文件夹。

Security类位于system/core/Security.php中

电子邮件类位于系统库中

您可以参考此链接了解核心类:


核心类始终是自动加载的,所以您不需要在自动加载中也包含这些类

MY_Security.php
文件中,您是否正确设置了
MY_Security
类?ie.
class MY_Security extensed CI_Security{}
是的,我的设置正确。libraries/MY_Security.php路径错误,它必须位于core文件夹>core/MY_Security.phpok中,谢谢您的回答!那就是玩把戏!