我遇到了随机死于IE的Codeigniter会话的问题,我到处搜索并尝试了所有内容,这个错误只是不会消失,我试过检查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()
{
答案 0 :(得分:0)
我从未遇到过CodeIgniters会话的任何问题。您是否为ci_sessions
创建了MySQL表?
挫折基本上是一种非逻辑的召唤。如果这无关紧要,那么我就看不到它的任何挫折。
你可以像这样放松代码:
$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]);
加载时。
答案 1 :(得分:0)
如果您让CodeIgniter管理您的会话,我认为您不应该使用session_start()
(如果您正在使用CodeIgniter' {{1} } / set_userdata()
函数)。
它在CI用户文档的顶部说,CI没有使用PHP的本机会话处理,因此这可能会给您带来麻烦。会话通过加载会话库自动启动,如果您将其放在配置文件中,或者显式地使用get_userdata()
,则会自动启动。
http://codeigniter.com/user_guide/libraries/sessions.html
-GUS
编辑:我遇到了关于IE / CI会话问题的CI论坛帖子。显然这是一个众所周知的问题。 http://codeigniter.com/forums/viewthread/211955/