CodeIgniter点击登录后提示无法找到Session.php类问题求助
问题排查方案
1 修复构造函数大小写错误
PHP 魔术方法__construct()要求全小写命名,你当前所有控制器中写的__Construct()首字母大写,在 Linux 等大小写敏感的操作系统环境下,会导致父类CI_Controller的构造方法未被正确执行,自动加载的 Session 库初始化失败,最终抛出找不到类的错误。
需将所有控制器的构造方法名统一改为小写:
public function __construct() { parent::__construct(); // 其余逻辑保持不变 }
2 移除冗余的文件引入代码
修改后的Controller_B中include(APPPATH.'controllers/Home.php');属于无效冗余代码,控制器继承逻辑不需要手动引入文件,该代码会导致类重复加载、路径解析混乱,直接删除该行即可。
3 校验config.php核心配置
打开application/config/config.php确认以下配置项:
$config['encryption_key']必须设置非空的加密字符串,CI3 的 Session 库强依赖加密密钥,未设置会直接导致 Session 初始化失败- 若使用
files类型的 Session 驱动,需确认$config['sess_save_path']对应的目录存在且具备读写权限,目录不可写也会触发Session加载异常
4 排查 Session 加载拼写问题
确认你没有在任意控制器中手动编写$this->load->library('Session')(首字母大写S)的代码,大小写不匹配会导致CI到错误路径查找类文件,你已经配置了自动加载,无需重复加载Session库。
5 补全代码闭合
你贴出的Controller_A的login方法缺少收尾的闭合大括号},如果实际运行代码也存在该问题,会触发语法错误连带类加载异常,请补充对应闭合符号。
6 清理运行缓存
所有修改完成后,删除application/cache目录下的所有缓存文件,避免旧的类加载缓存持续触发错误。
内容的提问来源于stack exchange,提问作者Hesse
相关产品推荐
相关产品推荐

