簡體   English   中英

Codeigniter 3 會話不適用於 PHP 7.1.4

[英]Codeigniter 3 Session not working With PHP 7.1.4

我有一個使用Codeigniter 3 HMVC構建的應用程序。該應用程序在 PHP 5.6版本上運行良好,但在將我的 PHP 版本升級到7.1.4我無法登錄到我的應用程序。 經過全面檢查后,我發現會話根本沒有設置。

我角色回到 PHP 5.6並且會話再次正常工作,同時切換到 PHP 7.1.4將“會話不工作”問題帶回來。

我嘗試更改一些配置值,如 cookie 前綴和 cookie 保存名稱等,似乎沒有任何解決方法。

任何人都可以請幫忙。

我發現問題出在某些早期版本的 Codeigniter 3 上,這是他們網站上已經報告的錯誤。底層會話錯誤已修復:

  • 3.1.2
  • 3.1.3
  • 3.1.4

所以在最新版本的 Codeigniter 3 中不會發生這個問題。

解決方案:

如果您已經在一個有問題的版本 codeigniter 中,請考慮用最新版本的系統文件夾替換系統文件夾。 撰寫本文時的版本為 3.1.6。

在 XAMPP(windows) 上的 codeigniter 3.1.9 和 PHP 7.2 中,我檢查了我的 application/config/config.php 並看到 sess_driver 是數據庫:

$config['sess_driver'] = 'database';
$config['sess_cookie_name'] = '165_session';
$config['sess_expiration'] = 7200;
$config['sess_save_path'] = "ci_sessions";

所以我創建了數據庫 ci_sessions :

CREATE TABLE IF NOT EXISTS `ci_sessions` (
        `id` varchar(128) NOT NULL,
        `ip_address` varchar(45) NOT NULL,
        `timestamp` int(10) unsigned DEFAULT 0 NOT NULL,
        `data` blob NOT NULL,
        KEY `ci_sessions_timestamp` (`timestamp`)
);

它奏效了。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM