0

我遇到了 Codeigniter 会话在 IE 上随机死机的问题,我到处搜索并尝试了所有方法,错误只是不会消失,我尝试了检查 ajax 的功能并且不会 sess_update() 也不起作用,所以我的问题是,挫折是什么如果我在每个控制器调用中初始化 CI 会话?我有本地会话和 CI 会话,但是将所有内容更改为本地会话还需要几天时间。它是临时修复。

  class Transactions extends Controller {

    function Transactions()
    {
        session_start();
        parent::Controller();   

        $this->load->model('Modelcontracts');
        $this->load->model('Modelsignup');
        $this->load->model('Modeltransactions');

        $this->session->set_userdata('account_id',$_SESSION['account_id']);
        $this->session->set_userdata('email',$_SESSION['email']);
        $this->session->set_userdata('account_type',$_SESSION['account_type']);
        $this->session->set_userdata('parent_account_id',$_SESSION['parent_account_id']);
        $this->session->set_userdata('accountrole_id',$_SESSION['accountrole_id']);
        $this->session->set_userdata('user_type_id',$_SESSION['user_type_id']);

    }



    function index()
    {
4

2 回答 2

0

我从未遇到过 CodeIgniters 会话的任何问题。你创建了 MySQL 表ci_sessions吗?

挫折基本上是这是一个不合逻辑的电话。如果这无关紧要,那么我看不到任何挫折。

您可以像这样简化代码:

$arr = array('account_id', 'email', 'account_type', 'parent_account_id', 'accountrole_id', 'user_type_id');

foreach($arr as $h)
    if (isset($_SESSION[$h]))
        $this->session->set_userdata($h, $_SESSION[$h]);
    // else echo "Session [{$h}] doesn't exist!";

或者扩展你的会话库来做一个

foreach(array_keys($_SESSION) as $h)
    $this->CI->session->set_userdata($h, $_SESSION[$h]);

加载时。

于 2012-05-26T10:08:52.303 回答
0

session_start()如果您让 CodeIgniter 管理您的会话(如果您正在使用 CodeIgniter 的set_userdata()/get_userdata()函数) ,我认为您不应该使用它。

它在 CI 用户文档的顶部说 CI 不使用 PHP 的本机会话处理,因此这可能会给您带来麻烦。会话通过加载会话库自动启动,如果您将其放在配置文件中则自动启动或使用$this->load->library('session');.

http://codeigniter.com/user_guide/libraries/sessions.html

-格斯


编辑:我遇到了一个关于 IE/CI 会话问题的 CI 论坛帖子。显然这是一个众所周知的问题。http://codeigniter.com/forums/viewthread/211955/

于 2012-05-26T14:56:47.467 回答