Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/243.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/11.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
Php 刷新时codeigniter会话丢失(F5)_Php_Codeigniter_Session_Redirect - Fatal编程技术网

Php 刷新时codeigniter会话丢失(F5)

Php 刷新时codeigniter会话丢失(F5),php,codeigniter,session,redirect,Php,Codeigniter,Session,Redirect,首先,我是codeigniter的新手。我想问的是,为什么每次刷新我的会话数据都会丢失。我重定向到登录 这是我的密码 登录控制器 <?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); class Login extends CI_Controller { function __construct() { parent::__construct(); }

首先,我是codeigniter的新手。我想问的是,为什么每次刷新我的会话数据都会丢失。我重定向到登录

这是我的密码

登录控制器

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class Login extends CI_Controller {

    function __construct()
    {
        parent::__construct();
    }

    function index()
    {
        $this->load->helper('form');
        $this->load->view('login');
    }

}

?>
function index()
{
  if($this->session->userdata('logged_in')) {
    $session_data = $this->session->userdata('logged_in');
    $data['username'] = $session_data['username'];
    $this->load->view('home', $data);
  }
  else {
    //If no session, redirect to login page
    // print_r($this->session->all_userdata()); 
    //die();
    redirect('login');
  }
}
家庭控制器

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class Login extends CI_Controller {

    function __construct()
    {
        parent::__construct();
    }

    function index()
    {
        $this->load->helper('form');
        $this->load->view('login');
    }

}

?>
function index()
{
  if($this->session->userdata('logged_in')) {
    $session_data = $this->session->userdata('logged_in');
    $data['username'] = $session_data['username'];
    $this->load->view('home', $data);
  }
  else {
    //If no session, redirect to login page
    // print_r($this->session->all_userdata()); 
    //die();
    redirect('login');
  }
}
第一次登录成功,但当我刷新(f5)时,它返回到登录表单。 我的意见是因为会议失败了。 谢谢你的帮助

编辑并解决:

很抱歉给您带来不便,出现此问题是因为

<script>
    function goOut(){
        <?php $this->session->unset_userdata('logged_in');?>   
        window.location="<?php echo base_url()?>";    
    }
</script>

函数gout(){
window.location=“”;
}

我的目的是当单击按钮注销时,会话将取消设置,但如果我在标题中输入,会话将再次丢失,因此我将找到另一种方法。感谢您的关注和帮助。

我将尝试在数据库中使用CodeIgniter的会话。我过去在CI方面遇到过这样的问题。当您在cookie中设置大量数据(大于4KB)时,通常会发生这种情况

如果不选择基于数据库的会话,请告诉我


请参阅此处了解更多信息:请参阅标题“将会话数据保存到数据库”

我将尝试在数据库中使用CodeIgniter的会话。我过去在CI方面遇到过这样的问题。当您在cookie中设置大量数据(大于4KB)时,通常会发生这种情况

如果不选择基于数据库的会话,请告诉我


请参阅此处了解更多信息:请参阅标题“将会话数据保存到数据库”

如果您使用的是windows,则windows 10上的Codeigniter、PHP 7和Apache存在问题。我有一个客户希望在他们自己的笔记本电脑上安装登台应用程序,而这只发生在他们的新笔记本电脑上

因此,经过数小时的测试,我们卸载了XAMPP 7.1.4,并重新安装了版本为5.6.XX的XAMPP。这就解决了问题。然而,在运行Nginx和php7的Linux机器上没有问题。只有Windows10


不管怎样,我希望这有帮助!我花了几个小时才找到解决办法

如果您在windows上,windows 10上的Codeigniter、PHP7和Apache存在问题。我有一个客户希望在他们自己的笔记本电脑上安装登台应用程序,而这只发生在他们的新笔记本电脑上

因此,经过数小时的测试,我们卸载了XAMPP 7.1.4,并重新安装了版本为5.6.XX的XAMPP。这就解决了问题。然而,在运行Nginx和php7的Linux机器上没有问题。只有Windows10


不管怎样,我希望这有帮助!我花了几个小时才找到解决办法

你为什么认为这次会议失败了?你检查过它丢失了吗?是的,我已经检查过print_r($this->session->userdata('logged_in'));处于最佳状态。第一个是出现的,但当我刷新它时它是空白的。您也可以发布您的配置文件吗?$config['sess_cookie_name']='ci_session'$配置['sess_expiration']=7200$config['sess\u expire\u on\u close']=FALSE$config['sess\u encrypt\u cookie']=FALSE$config['sess_use_database']=FALSE$配置['sess_table_name']=“ci_sessions”$配置['sess\u match\u ip']=FALSE$config['sess\u match\u useragent']=TRUE$配置['sess_time_to_update']=300;你为什么认为这次会议失败了?你检查过它丢失了吗?是的,我已经检查过print_r($this->session->userdata('logged_in'));处于最佳状态。第一个是出现的,但当我刷新它时它是空白的。您也可以发布您的配置文件吗?$config['sess_cookie_name']='ci_session'$配置['sess_expiration']=7200$config['sess\u expire\u on\u close']=FALSE$config['sess\u encrypt\u cookie']=FALSE$config['sess_use_database']=FALSE$配置['sess_table_name']=“ci_sessions”$配置['sess\u match\u ip']=FALSE$config['sess\u match\u useragent']=TRUE$配置['sess_time_to_update']=300;同意,DB会话是解决问题的方法。重复会话可能会出现问题。您以前的会话可能未正确销毁,并且在尝试续订当前会话时导致冲突。这个问题在其他浏览器中也会出现吗?我在CI会话中也遇到过类似的问题,我发现效果很好。同意,DB会话是解决问题的方法。重复会话可能会出现问题。您以前的会话可能未正确销毁,并且在尝试续订当前会话时导致冲突。这个问题在其他浏览器中也会出现吗?我在CI会话中也遇到过类似的问题,我发现它工作得非常好。