Tengo un problema con la sesión. No he experimentado este problema en localhost u otros servidores. Solo one.com tiene este problema. La sesión está definida y establecida en la carpeta de sesión especificada, pero parece que falta la sesión cuando se actualiza la página.
Código de página de inicio de sesión
$submitted = $this->input->post('email'); $admin_logged_in = $this->session->userdata('admin_logged_in'); if($admin_logged_in != true){ if($submitted != ""){ $email = xss_clean($this->input->post('email')); $password = xss_clean($this->input->post('password')); $id = $this->Admin_Model->admin_log($email,$password); if($id == 1){ $user = $this->Admin_Model->get_admin($email); $data['user'] = $user; $session_data = array( 'admin_id' => $user->id, 'admin_email' => $user->email, 'admin_logged_in' => true ); $this->session->set_userdata($session_data); redirect('admin'); }else{ $data['error'] = array( 'type' => 'error', 'message' => 'Account information is incorrect.'); $this->load->view('admin/login',$data); } }else{ $this->load->view('admin/login',$data); } }else{ $user_id = $this->session->userdata('admin_id'); $user = $this->Admin_Model->get_admin_id($user_id); $data['user'] = $user; $this->load->view('admin/admin_home',$data); }
Código de página de índice (Página siguiente después de iniciar sesión)
$admin_logged_in = $this->session->userdata('admin_logged_in'); if($admin_logged_in == true){ $user_id = $this->session->userdata('admin_id'); $user = $this->Admin_Model->get_admin_id($user_id); $data['user'] = $user; $this->load->view('admin/admin_home',$data); }else{ $this->load->view('admin/login',$data); }
Configuración de sesión
$config['sess_driver'] = 'files'; $config['sess_cookie_name'] = 'ci_session'; $config['sess_expiration'] = 7200; $config['sess_save_path'] = 'ci_sessions'; // Or sys_get_temp_dir() $config['sess_match_ip'] = FALSE; // Or True $config['sess_time_to_update'] = 300; $config['sess_regenerate_destroy'] = FALSE; // Or True
Ya estoy agradecido con los amigos que pueden encontrar una solución.
No he escrito una respuesta en mucho tiempo, pero tal vez satisfaga las necesidades de otros amigos.
$config['sess_driver'] = 'files'; $config['sess_save_path'] = sys_get_temp_dir();
Debe configurar la ruta de guardado de su sesión algo así como
$config['sess_save_path'] = APPPATH . 'cache/sessions/';
porque tienes $config['sess_driver']
como archivos
Entonces $autoload['libraries'] = array('session');
Permiso de carpeta 0700
EXT: The PHP file extension FCPATH: Path to the front controller (this file) (root of CI) SELF: The name of THIS file (index.php) BASEPATH: Path to the system folder APPPATH: The path to the "application" folder