codeigniter cookie expiry problem

后端 未结 3 1644
别跟我提以往
别跟我提以往 2021-01-19 07:19

I\'m having a cookie issue, the expiry date on my cookie is always being set to At End Of Session which isn\'t what I want. I did a bit of goggling and it suggested it set t

相关标签:
3条回答
  • 2021-01-19 07:52

    Please check out the answer below by @Gowri for how to do it properly.

    You can try to adjust session expiration time in config.php CI session initially is saved in cookies:

    /** 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 讨论(0)
  • 2021-01-19 07:52

    Your expiry date is set incorrectly. You don't have to include the time(), as what you're setting is actually the expiry date from time().

    When you have an incorrect expire value, it defaults to 0, which is set as your session's length instead.

    Therefore it should be:

                $cookie = array(
                'name'   => 'basket_id',
                'value'  => $basket_id,
                'expire' => 86400*30,
                'domain' => 'domain',
                'path'   => '/',
                'prefix' => '',
            );
    
    0 讨论(0)
  • 2021-01-19 08:09

    You can add params

    $config['cookie_lifetime']  = 1800
    

    in config.php, the reason you can find in libraries/Sessions/Session.php, code below

    $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;
    }
    
    0 讨论(0)
提交回复
热议问题