проблема истечения срока действия файла cookie - PullRequest
3 голосов
/ 09 июня 2011

У меня проблема с cookie, срок действия моего cookie всегда устанавливается в конце сеанса, а это не то, чего я хочу.Я немного поглядел, и он предложил установить истечение времени () + 60 * 60 * 24 * 30, что я и сделал.

 //Create basket cookie
            $cookie = array(
                'name'   => 'basket_id',
                'value'  => $basket_id,
                'expire' => time()+60*60*24*30,
                'domain' => 'domain',
                'path'   => '/',
                'prefix' => '',
            );
            set_cookie($cookie);

Я действительно задавался вопросом, может ли это быть до настройки Codeignter, но мой файл cookie ci_session имеет нормальную дату истечения срока действия.Четверг, 09 июня 2011 г. 10:39:02 GMT

Вот что я получаю, когда просматриваю cookie:

 Name   basket_id
 Value  28
 Host   .host
 Path   /
 Secure No
 Expires    At End Of Session

А вот пример массива, который я передаюпеченье.

Array ( [name] => basket_id [value] => 30 [expire] => 1310202067 [domain] => host [path] => / [prefix] => ) 

Ответы [ 3 ]

6 голосов
/ 13 марта 2015

Ваш срок годности установлен неправильно. Вам не нужно указывать время () , так как на самом деле вы устанавливаете дату истечения времени от времени ().

Если у вас неверное значение срока действия, по умолчаниюна 0, который вместо этого устанавливается как длина вашего сеанса.

Следовательно, оно должно быть:

            $cookie = array(
            'name'   => 'basket_id',
            'value'  => $basket_id,
            'expire' => 86400*30,
            'domain' => 'domain',
            'path'   => '/',
            'prefix' => '',
        );
3 голосов
/ 09 июня 2011

Вы можете попытаться настроить время истечения сеанса в config.php Сеанс CI изначально сохраняется в файлах cookie:

/** Session Variables
 ---------------------------------------
| 'session_expiration'  = the number of SECONDS you want the session to last.
|  by default sessions last 7200 seconds (two hours).  Set to zero for no expiration.
|
*/

$config['sess_expiration']      = 7200;
0 голосов
/ 04 мая 2017

Вы можете добавить параметры

$config['cookie_lifetime']  = 1800

в config.php, причину вы можете найти в библиотеках / Sessions / Session.php, код ниже

$expiration = config_item('sess_expiration');

if (isset($params['cookie_lifetime']))
{
    $params['cookie_lifetime'] = (int) $params['cookie_lifetime'];
}
else
{
    $params['cookie_lifetime'] = (!isset($expiration) && config_item('sess_expire_on_close'))
        ? 0 : (int) $expiration;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...