【问题标题】:CodeIgniter hooks cause automaticaly logout(kill the session)CodeIgniter 钩子导致自动注销(终止会话)
【发布时间】:2017-11-17 09:57:05
【问题描述】:

我正在使用 CodeIgniter 钩子,我试图在要执行的控制器(pre_controller)之前触发一个动作,并在要执行的控制器之后触发另一个动作。但是我面临一个奇怪的情况,当我在$config['enable_hooks'] = TRUE; 中启用挂钩时,它会触发自动注销,我的意思是它会终止用户会话。有人可以帮助我吗?可能是我为钩子做了错误的配置。

这里是钩子配置: hooks.php

$hook['pre_controller'] = array(
                                'class'    => 'Hookcall',
                                'function' => 'get_post_params',
                                'filename' => 'hookcall.php',
                                'filepath' => 'hooks'
                                );
/*
  hook for saving fraude logs
*/
$hook['post_controller'] = array(
                                'class'    => 'Hookcall',
                                'function' => 'save_logs',
                                'filename' => 'hookcall.php',
                                'filepath' => 'hooks'
                                );

【问题讨论】:

  • 钩子配置本身不能破坏任何东西。问题必须在你的钩子实际执行的代码中。
  • 确保hookcall.php文件内没有session_destroy
  • @mega6382 没有session_destroy,正如您在下面的代码中看到的那样,我在hookcall.php 中保留了空方法。但问题仍然存在<?php defined('BASEPATH') or exit('No direct script access allowed'); class Hookcall extends MY_Controller { public function save_logs() { } public function get_post_params() { } private function get_files_superior_5_percent($params) { } }

标签: php codeigniter session


【解决方案1】:

Hookcall 不应扩展 MY_Controller。它应该是一个简单的类

class Hookcall
{
    public function save_logs()
    { 
    } 

    public function get_post_params() 
    { 
    } 

    private function get_files_superior_5_percent($params)
    { 
    } 

}

【讨论】:

    猜你喜欢
    • 2014-08-24
    • 1970-01-01
    • 1970-01-01
    • 2013-12-19
    • 2012-06-11
    • 2022-12-22
    • 1970-01-01
    • 1970-01-01
    • 2015-07-07
    相关资源
    最近更新 更多