Tôi đang sử dụng trình viết mã làm khung.Phiên bị mất sau khi chuyển hướng trong Codeigniter
Trước tiên, tôi sử dụng localhost
nhưng khi tôi thay đổi thành địa chỉ IP của mình chức năng đăng nhập không hoạt động nữa. Tôi thấy rằng phiên bị mất sau khi chuyển hướng đến bộ điều khiển khác.
Dưới đây là kết quả của print_r($this->session->all_userdata());
[session_id] => 7b00fa0f8790f48d24446f9eb4e6aab2
[ip_address] => 10.42.68.71
[user_agent] => Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/21.0.1180.83 Safari/537.1
[last_activity] => 1285962398
[user_data] =>
Như bạn có thể thấy nó không có bất kỳ dữ liệu truyền cho user_data
nhưng nó đã được thiết lập trước khi chuyển hướng khi tôi kiểm tra.
Tôi tách bộ điều khiển thành hai bộ điều khiển đầu tiên là người dùng -> trình xử lý chức năng đăng nhập và một trình xử lý khác là trình xử lý của liên kết mà tôi chuyển hướng từ bộ điều khiển người dùng.
users.php
(điều khiển đầu tiên):
$this->load->model('users_model');
$this->load->model('mymodel');
$this->load->database();
$email = $this->input->post('email');
$pass = $this->input->post('password');
$type = $this->input->post('type');
// Authenticate the user
$userdata = $this->users_model->auth_user($email,$pass,$type);
if($userdata)
{
$data = array('FIRSTNAME' => $userdata->FIRSTNAME,
'LASTNAME' => $userdata->LASTNAME,
'EMAIL' => $userdata->EMAIL,
'LOGIN' =>TRUE, 'TYPE' => $type);
$this->session->set_userdata($data);
redirect('planner/view_system','refresh');
}
planner.php
(bộ điều khiển thứ hai):
function __construct() {
parent::__construct();
if (! ($this->session->userdata('LOGIN')))
{
print_r (var_dump($this->session->userdata('FIRSTNAME')));
print_r($this->session->all_userdata());
}
$this->load->helper(array('form','html','url'));
Và đây là cấu hình của tôi
$config['sess_cookie_name'] = 'ci_session';
$config['sess_expiration'] = 7200;
$config['sess_expire_on_close'] = FALSE;
$config['sess_encrypt_cookie'] = FALSE;
$config['sess_use_database'] = FALSE;
$config['sess_table_name'] = 'ci_sessions';
$config['sess_match_ip'] = TRUE;
$config['sess_match_useragent'] = FALSE;
$config['sess_time_to_update'] = 300;
thực hiện điều này xảy ra trên tất cả các trình duyệt? bạn đã thử truy cập các giá trị phiên từ các hàm khác sau đó hàm tạo? Có lỗi hoặc thông báo trong nhật ký lỗi của bạn không? –
Tôi không chắc liệu điều này có hữu ích hay không, nhưng hãy thử thay đổi sess_use_database thành true? –
Có điều này xảy ra với tất cả các trình duyệt. Tôi đã không truy cập giá trị từ chức năng khác, tôi trực tiếp chuyển hướng đến người lập kế hoạch. Không có lỗi. – Zatanna