Php codeigniter安全扩展不工作,覆盖csrf\u show\u错误消息
CI版本:2.2.0 我在/CI220/application/libraries/MY_Security.php 我设置的配置文件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
$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中,谢谢您的回答!那就是玩把戏!