Php 刷新时codeigniter会话丢失(F5)
首先,我是codeigniter的新手。我想问的是,为什么每次刷新我的会话数据都会丢失。我重定向到登录 这是我的密码 登录控制器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(); }
<?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会话中也遇到过类似的问题,我发现它工作得非常好。