#php #codeigniter #session
#php #codeigniter #сеанс
Вопрос:
Мои сеансы истекают после использования этого кода на моем контроллере :
header("Location: $url?$params");
Это основная функция, которая заставит меня перейти на сайт. После выполнения некоторого процесса он перенаправит его обратно на мой сайт.Но там моя сессия истекает.в чем основная проблема, стоящая за этим?
Вот мои настройки сеанса на моем config.php
$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'] = FALSE;
$config['sess_match_useragent'] = TRUE;
$config['sess_time_to_update'] = 300;
Комментарии:
1. Вы проверили время истечения сеанса?
2. @AlbinGeorge я обновил свой пост. вы увидите настройки моего сеанса
Ответ №1:
Вам необходимо изменить эту конфигурацию:
$config['sess_match_useragent'] = TRUE;
Для:
$config['sess_match_useragent'] = FALSE;
Попробуйте это и проверьте, надеюсь, это решит вашу проблему.
Комментарии:
1. Используете ли вы это на каком-либо другом устройстве, кроме браузера?
2. сейчас я использую его на своем веб-сайте.
3. Вы сказали
which will make me to go to a site. After doing some process,it will redirect it back to my website
? вы имеете в виду какой-то другой домен?
Ответ №2:
Джерахмил Асебуче, насколько мне известно, я могу привести вам пример: если у пользователя изначально не включены файлы cookie, то файлы cookie будут отключены, поскольку идентификатор сеанса, переданный в URL, исчезнет. Вам нужно проверить, установлен ли SID, и если да, перенесите его вместе с URL. здесь; используйте мою функцию вместо header():
PHP-код:
// perform redirect- supports no cookies AND works with older browsers, too (nice!)
function _location($url, $params = '') {
if(strlen(SID)) {
if (strlen($params)) {
$params = '?'.$params.'amp;'.SID;
} else {
$params = '?'.SID;
}
} else {
if (strlen($params)) {
$params = '?'.$params;
}
}
header("Location: ".$url.$params);
echo "<h3>You are using an old browser that does not support redirection.
Have you thought about upgrading?<br><br>
<a href='".$url.$params."'>Click here to continue using the site.</a></h3>";
die; // never return, no matter what
}
use it like this: _location('debug.php','flag=true')
--note that second argument is optional but you can pass GEt-style variables
this way.to find out what I'm doing here be sure to read php.net/session
good luck,
Jerahmeel Acebuche
Комментарии:
1. где я могу это получить. идентификатор сеанса. пожалуйста, просветите меня.