php – 在CodeIgniter 3.1.2中重定向后会话数据丢失
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了php – 在CodeIgniter 3.1.2中重定向后会话数据丢失,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3298字,纯文字阅读大概需要5分钟。
内容图文
![php – 在CodeIgniter 3.1.2中重定向后会话数据丢失](/upload/InfoBanner/zyjiaocheng/762/b70a6278500941f7a010d91d7da208d9.jpg)
我有一个CodeIgniter应用程序仍在开发中,但我意识到当我登录并在会话中设置用户数据时,它会被设置但在重定向后消失.因此,重定向后无法访问会话数据.
这是我的登录脚本
public function login(){
if(!empty($_SESSION['user_id'])){//Meaning you are logged in
//We inform you
$this->session->set_flashdata('msg', "<div class='alert alert-success'><span class=''></span> You are already logged in as <strong>".$this->session->user_name."</strong></div>");
//And send you back to your dashboard
return redirect('/account/dashboard');
}
if($this->input->post()){
$this->load->library('form_validation');
$this->form_validation->set_rules('email','Email','required|valid_email');
$this->form_validation->set_rules('password','Password','required');
if($this->form_validation->run() == TRUE){
$creds=['email'=>$this->input->post('email'),'password'=>$this->input->post('password')];
$this->load->model('user/user_model');
$user=$this->user_model->login($creds);
if(!$user){
$data['error_msg']="Inavlid login details. Please retry";
}else{
$user->user_type=(!empty($user->user_type))?:'2';
$userdata=['user_id'=>$user->id,'user_name'=>$user->name,'user_email'=>$user->email,'user_type'=>$user->user_type];
$this->session->set_userdata($userdata);
$this->session->set_flashdata('msg', '<div class="alert alert-success"><span class="fa fa-check"></span> Logged in as '.$this->session->userdata('user_name').'</div>');
return redirect('account/dashboard');
}
}
}
$data['title']="Login";
$this->load->view('template/auth/header');
$this->load->view('account/login',$data);
$this->load->view('template/auth/footer');
}
这是我的config / congig.php文件
$config['base_url'] = 'http://localhost/tmpad/';
$config['allow_get_array'] = TRUE;
$config['enable_query_strings'] = FALSE;
$config['controller_trigger'] = 'c';
$config['function_trigger'] = 'm';
$config['directory_trigger'] = 'd';
$config['encryption_key'] = '4%^&*9799809-nkhdfioup';
$config['sess_driver'] = 'database';
$config['sess_cookie_name'] = 'ci_session';
$config['sess_expiration'] = 7200;
$config['sess_save_path'] = 'ci_sessions';
$config['sess_match_ip'] = FALSE;
$config['sess_time_to_update'] = 300;
$config['sess_regenerate_destroy'] = FALSE;
$config['cookie_prefix'] = '';
$config['cookie_domain'] = 'http://localhost/tmpad/';
$config['cookie_path'] = '/';
$config['cookie_secure'] = FALSE;
$config['cookie_httponly'] = FALSE;
$config['csrf_protection'] = TRUE;
$config['csrf_token_name'] = 'csrf_test_name';
$config['csrf_cookie_name'] = 'csrf_cookie_name';
$config['csrf_expire'] = 7200;
$config['csrf_regenerate'] = TRUE;
$config['csrf_exclude_uris'] = array();
session在config / autoload.php中自动加载
我将不胜感激任何指导或帮助.
谢谢
解决方法:
我不确定究竟是什么问题.最近我也面对这个..
它在我开发运行php7.0之前工作.
目前它只在我的生产服务器上运行nginx和php 5.6.我的开发服务器似乎无法工作,并继续在会话表中重新生成新行.我的开发服务器在hometead virtualbox开发环境中使用php7.1,通常用于Laravel项目.
我设法通过迈出这一步来克服这个问题.
1)转到system / libraries / Session / Session.php
2)通过添加//来注释session_start().我们想重新定位sessionn_start().
3)到315号线说安全为王,然后注释到351号线
4)然后转到你的主index.php(root index.php)
5)在顶部添加一次session_start().
6)好的再试一次.希望它有效.我的猜测是它不能与php 7.1一起工作,需要在这个Session.php文件中进行一些更新.
我的CI版本是3.1.1
内容总结
以上是互联网集市为您收集整理的php – 在CodeIgniter 3.1.2中重定向后会话数据丢失全部内容,希望文章能够帮你解决php – 在CodeIgniter 3.1.2中重定向后会话数据丢失所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。