Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Session Internet Explorer中的代码点火器登录、会话和重定向问题?_Session_Codeigniter_Redirect - Fatal编程技术网

Session Internet Explorer中的代码点火器登录、会话和重定向问题?

Session Internet Explorer中的代码点火器登录、会话和重定向问题?,session,codeigniter,redirect,Session,Codeigniter,Redirect,我仍然是新的代码点火器,我有问题让登录系统的工作 当我使用Firefox时,登录总是有效的。登录在某些IE7浏览器上始终有效,但在其他IE7浏览器上始终失败 在跟踪代码时,我看到models/redux_auth_model.php确实成功地对用户进行了身份验证,它将用户信息写入$this->session->set_userdata()并将它们重定向到我选择的成员页面。代码如下: public function login($identity = false, $password = fals

我仍然是新的代码点火器,我有问题让登录系统的工作

当我使用Firefox时,登录总是有效的。登录在某些IE7浏览器上始终有效,但在其他IE7浏览器上始终失败

在跟踪代码时,我看到models/redux_auth_model.php确实成功地对用户进行了身份验证,它将用户信息写入$this->session->set_userdata()并将它们重定向到我选择的成员页面。代码如下:

public function login($identity = false, $password = false)
{
            $identity_column = $this->config->item('identity');
            $users_table     = $this->tables['users'];

            if ($identity === false || $password === false || $this->identity_check($identity) == false)
            {
                return false;
            }

            $query = $this->db->select($identity_column.', email, password, group_id')
                           ->where($identity_column, $identity)
                           ->where('active', 'Active')
                           ->limit(1)
                           ->get($users_table);

        $result = $query->row();

        if ($query->num_rows() == 1)
        {
            //$password = $this->hash_password_db($identity, $password);

           if (!empty($result->activation_code)) { return false; }

                if ($result->password === $password)
                {
                    $this->session->set_userdata($identity_column,  $result->{$identity_column});
                    $this->session->set_userdata('email',  $result->email);
                    $this->session->set_userdata('group',  $result->group_id);
                    return true;
                }
        }

        return false;
}
我在IE7和FF中对$this->session进行了变量转储,并确认在重定向之前所有的用户数据都是完整的。该会话包含我的电子邮件信息、组信息和$identity\u列信息

然而,在重定向之后,某些IE7浏览器上的会话数据是空的,这就是为什么CI不断将我从系统中引导出来。它在其他IE7浏览器上完好无损,在Firefox中也始终完好无损

为什么会话数据依赖于浏览器


有没有关于如何进一步排除故障的想法?我很困惑…

这是一个有人为其进行第三方修复的问题,它修补了会话控制器。让我把它挖出来。自从第一次提到它,我就在我的codeigniter设置中使用了它

这个问题是IE7/IE8特定的重定向或帧

编辑

这是我以前找到的参考资料,它帮助我解决IE问题。希望这就是让你头疼的原因:

Codeigniter数据库会话类是一个令人沮丧的问题,最后我使用了本机会话,使用了这里找到的插入式替换:

会话类在我的几个项目中运行良好,包括IE6/7/8支持(包括CI的多个版本)。除了上面粘贴的代码之外,可能还有一些原因导致了这种情况:

  • 调用
    $this->session->sess_create()将重置会话
  • 通过向一个调用传递数组,尝试将您的
    set\u userdata
    调用组合到一个调用中
  • 确保数据中没有任何意外字符(这可能会导致某些浏览器出现问题)
  • 确保配置中的会话类设置没有在每个请求上滚动cookie

  • 另一方面,考虑一个类似于

    < P>的会话会话类,这是浏览器的问题。我把它放在构造函数中的\u控制器中:

    header("Cache-Control: no-store, no-cache, must-revalidate, max-age=0");
    
    例如:

    if($this->uri->segment(1)=='admin') header("Cache-Control: no-store, no-cache, must-revalidate, max-age=0");
    

    在浏览器模式下使用IE8时,我遇到了同样的问题。我发现问题在于匹配用户代理。在会话数据库中,它将useragent保存为IE7,但从cookie中获得IE8。我已将
    $config[sess\u match\u useragent]=FALSE设置为
    ,问题已解决。

    问题是IE拒绝尝试设置的cookie CI。本机会话是一种方法,但是如果您想继续使用CI会话,我已成功地进行了以下故障排除:

    • 检查config.php中的$config['cookie\u domain']设置是否为空
    • 从$config['sess\u cookie\u name']中删除下划线,例如将“ci\u会话”更改为“cisession”
    • 检查服务器时间是否正确

    配置文件application config.php

    // 'cookie_secure' =  Cookies will only be set if a secure HTTPS connection exists. 
    $config['cookie_secure']    = FALSE;
    

    我通过使用本机php会话而不是cookie(将codeigniter会话_id存储在php本机会话中)解决了这个问题

    您可以在此处获取库:


    只需将MY_Session.php文件复制到应用程序/库中

    我们在开发一个涉及Facebook标签的应用程序时遇到了这个问题。我们尝试了上述方法,但没有结果。以下是我们发现的情况:

  • IE隐私设置似乎必须为中等或更低
  • 如果您正在运行页面应用程序,请确保两个URL中都有HTTPS协议

  • 另外,请查看Cookie的紧凑隐私策略。

    在IE中使用CI会话时,我遇到了相同的问题。然后,我在控制器构造函数中使用了下面的标题,它适用于我

    以下是标题:

    标题('P3P:CP=“IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT”)

    我讨厌IE

    它现在正在工作,为我们的控制器提供P3P解决问题:

    class Chupacabra extends CI_Controller {
    
    
        function __construct() {
            parent::__construct();
            header('P3P:CP="IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT"');
    
    
        }
    

    当我试图在CodeIgnitor中使用登录页面时,这个问题困扰着我。会话将不会保存

    事实证明,这是由于我从FREEDNS创建的一个域名包含了下划线(
    )。我用句号(
    )重命名了域名,并恢复了本文中建议的所有代码更改,瞧,它成功了


    感谢您在本页面上的所有评论和贡献,因为它们真的引导我走上了调查那该死的下划线的道路。

    这个错误太令人沮丧了。我真的希望这是你提到的同一个问题…越过我的figersI已经更新了我的答案,并提供了为我解决问题的修复程序的参考信息。祝你好运。发帖时它还在工作,稍后再查看,它应该会回来的。链接工作。。。他们的服务器没有。。现在,好的,谢谢。页面最终加载,但下载链接已断开。所以我搜索了一个相似的文件名,希望找到的是同一个文件。我解压,将Session.php放入application/libraries文件夹,在$autoload['libraries'中添加了一个“Session”。这个问题还没有解决。我错过了一步吗?谢谢,我也会尝试这个解决方案。但我不知道如何启用本机会话。我还能读到其他参考资料吗?谢谢您只需将session.php文件放到应用程序/库中,应用程序中不需要任何代码更改。请修复URL。是的,在今天的日子里,它对我不起作用。看起来完全过时。将我的框架从非db sess类修改为db sess类,当以管理员身份注销以注册用户身份登录时,用户只需确保在销毁或重定向后使用sess_create重新初始化会话类