Управление сеансом воспламенителя кода — страница входа обновляется, а не заполняется

Я новичок в Code Igniter и пытаюсь выполнить инструкции, поскольку унаследовал встроенный в него сайт, который мне пришлось обновить после того, как он перестал работать при переходе с PHP 5.6 на 7.2. Я думаю, что управление сессиями сильно изменилось между версиями 2.0x и 3.0.0 (к которым я перешел). Я хочу использовать файлы для хранения сессий и настроил sess_path, но когда мой пользователь пытается войти в систему, страница просто обновляется — что предлагает оператор if ($ this-> form_validation-> run () == FALSE): в контроллере приведенный ниже код всегда верен, что странно, если я не введу имя пользователя или пароль и не отправлю, проверка формы запускается.

public function index(){

$this->load->library('session');

if ($this->session->userdata('user_is_admin')) {
redirect('admin/login/welcome');
}

$this->load->library('form_validation');
$this->form_validation->set_error_delimiters('<span class="form-error">', '</span>');
$this->form_validation->set_rules('username', 'Username','required');
$this->form_validation->set_rules('password', 'Password','required');

if ($this->form_validation->run() == FALSE):


$data['title'] = 'login';
$data['content'] = 'admin/login/index-view';
$this->load->view('template-admin-login',$data);

else:

$this->db->where('user_is_admin',1);
$this->db->where('user_activated',1);
$this->db->where('user_published',1);
$this->db->where('user_email',$this->input->post('username'));
$this->db->where('user_password', md5($this->input->post('password')));
$query = $this->db->get('user')->row();

if(!empty($query)):

$newdata = array(
'user_id'  => $query->user_id,
'user_name'  => $query->user_name,
'user_is_admin'  => $query->user_is_admin
);

$this->session->set_userdata($newdata);
$this->session->set_flashdata('message_welcome', 'Hi '.ucfirst($this->session->userdata('user_name')).'!');
redirect('admin/login/welcome');

else:
$this->session->set_flashdata('message_red', 'Username or password incorrect.');
redirect('admin/login');
endif;

endif;

Файл конфигурации содержит следующее для конфигурации сеанса:

$config['sess_driver']          = 'files';
$config['sess_cookie_name']     = 'ci_session';
$config['sess_expiration']      = 7200;
$config['sess_save_path']       = BASEPATH . 'application/cache/';
$config['sess_use_database']    = FALSE;
$config['sess_table_name']      = 'ci_sessions';
$config['sess_match_ip']        = FALSE;
$config['sess_time_to_update']  = 300;

Форма очень проста — поле имени пользователя и пароля, кнопка «Отправить» и она публикуется на странице администратора / входа в систему. Выполняли инструкции Code Igniter для управления сессиями, но не могли понять, почему страница просто обновляется. Надеюсь, мне не нужно переписывать все с нуля. Любая помощь с благодарностью получена!

0

Решение

Я думаю, что путь сохранения не то, что вы хотите. BASEPATH указывает на системный каталог. Это укажет вам на каталог / cache внутри / application.

$config['sess_save_path'] = APPPATH . 'cache/';
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]