【问题标题】:Fatal error: Class CI_Session_files_driver contains 1 abstract method致命错误:CI_Session_files_driver 类包含 1 个抽象方法
【发布时间】:2016-04-26 01:49:50
【问题描述】:

致命错误:CI_Session_files_driver 类包含 1 个抽象方法 因此必须声明为抽象的或实现其余的 方法 (SessionHandlerInterface::open) 中 C:\xampp\htdocs\cmms2\system\libraries\Session\drivers\Session_files_driver.php 第 49 行

当我在我的本地主机 xampp Web 应用程序项目上工作时,此错误不断出现。顺便说一句,我正在使用codeigniter。您认为出现这种情况的原因是什么? 这些是我使用会话完成的唯一代码。

  $this->session->set_userdata($data);
    $autoload['libraries'] = array('database','session');
    $config['sess_driver'] = 'files';
    $config['sess_cookie_name'] = 'ci_session';
    $config['sess_expiration'] = 7200;
    $config['sess_save_path'] = sys_get_temp_dir();
    $config['sess_match_ip'] = FALSE;
    $config['sess_time_to_update'] = 300;
    $config['sess_regenerate_destroy'] = FALSE;

【问题讨论】:

  • 显示你使用哪个类进行扩展?
  • CI_Session_driver 是一个抽象类。您需要使用 CI_Session 类进行扩展。
  • @devpro 发布了我处理会话的代码
  • 检查你使用哪个类来扩展???如果您使用 CI_Session_driver 进行扩展,只需使用 CI_Session 进行更改
  • @treblaluch 我也需要你的代码

标签: php codeigniter


【解决方案1】:

如果不工作,请重新启动 apache 服务器,然后再次下载 CodeIgniter 并将您的 system/ 目录替换为新的。

【讨论】:

  • 它对我有用。我刚刚重新启动了我的 apache 服务器。谢谢你
  • 对,这只是apache服务器的问题,有时我们在睡眠模式下使用我们的系统一段时间,然后就发生了。起初它破坏了头脑,因为错误地我们没有得到任何与 apache 服务器相关的东西。
  • 是的!在我的机器待机几个小时后,我完美运行的 CI 应用程序突然发生了,Apache 重启立即修复了它!
  • 它有效。对此解决方案 +1。
【解决方案2】:

编辑:这是PHP bug,据我观察,它在 Windows 上触发,Apache+mod_php。

(下面的旧答案)


SessionHandlerInterface::open() 由 CodeIgniter 中的system/libraries/Session/drivers/Session_files_driver.php 实现的。

触发您显示的错误的唯一方法是修改该文件,您不应该这样做。

【讨论】:

  • 没那么简单,我经常遇到这个错误,很多次,甚至很难我绝对不会修改那个文件,我总是在开始创建项目时使用新的 CodeIgniter 副本。我猜这是 CI 的“罕见错误”,可能在 PHP7 上的某些环境/机器上发生... IDK
  • 你说得对,事情没那么简单。有趣的是,在那之后你认为这是一个 CI 问题。
  • 这个问题是否也发生在其他框架上? (因为我只用CI)
  • CI_Session_files_driver 属于 CI,不是吗?这就是我认为的原因。
  • 是的,它确实发生在其他框架中(我已经更新了答案以反映这一点),但这不是重点。如果你真的看代码,你就会知道这不可能是框架的错。
【解决方案3】:

进入系统文件夹 /system/libraries/Session

然后在SessionHandlerInterface.php中注释代码

interface SessionHandlerInterface {

// public function open($save_path, $name);
// public function close();
// public function read($session_id);
// public function write($session_id, $session_data);
// public function destroy($session_id);
// public function gc($maxlifetime);
}

让我们试试你的代码是否工作

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-07-17
    • 2017-12-30
    • 1970-01-01
    • 1970-01-01
    • 2021-09-13
    • 1970-01-01
    • 1970-01-01
    • 2023-03-12
    相关资源
    最近更新 更多