Мы используем следующее для проверки сеанса на всех наших функциях контроллера.
$ this-> session-> userdata ('Admin_logged_in')
https://www.codeigniter.com/user_guide/libraries/sessions.html
Но на iPhone X, использующем браузер Safari, он возвращает пустое значение.Массив сеансов не устанавливается для каждой функции, поэтому пользователь не может войти в интерфейс.
Если сеанс удален из функции, пользователь может войти в систему и функция работает правильно.Эта проблема возникает для всех проектов Codeigniter, которые мы разрабатываем.
Вот различные решения, которые мы попробовали:
Сессия CodeIgniter 3 не работает в Safari
http://mydons.com/fixed-mac-os-safari-codeigniter-sessionloginauthentication-issue/
https://forum.codeigniter.com/thread-63184.html
https://github.com/bcit-ci/CodeIgniter/issues/2880
Проверка сеанса:
public function index()
{
if ($this->session->userdata('Admin_logged_in')) {
$session_data = $this->session->userdata('Admin_logged_in');
$id = $session_data['userId'];
$data['Headding']="Dashboard";
$this->template->load('admin_layout', 'contents', 'admin/Admin_Dashboard', $data);
} else {
redirect('Admin', 'refresh');
}
}
Где установлен сеанс:
$sess_array = array();
foreach ($result as $result) {
$sess_array = array(
'userId' => $result->userId,
'mobile' => $result->mobile,
'email' => $result->email,
'status' => $result->status,
'RoleID' => $ans['roleId'],
);
}
$this->session->set_userdata('Admin_logged_in', $sess_array);
codeigniter Сессия в браузере Safari
Никто не дал правильный ответ.Решение дано как Проблема с сеансами Codeigniter на Iphone .
Но где мне нужно добавить var timestamp = new Date (). GetTime ();