1

我目前正在使用 Codeigniter 最新版本,我尝试创建用户系统管理,并且我已将会话设置为以下代码但 Codeigniter 不会删除旧会话行的现有行,而是尝试插入新行。它可能使我的表用户卡住,或者因为它将存储更多(超过 5000 行)用户会话行,或者如果所有会话行永久保留并且不删除或更新现有会话数据行,我的数据库连接可能会出错。

Laravel 如何将他们的会话行永久保存在他们的数据库中,或者他们将在用户关闭浏览器或退出后自动删除用户的行

此外,我没有看到我的 IP 出现在我的数据库中。

$config['sess_cookie_name']     = 'ci_session';
$config['sess_expiration']      = 7200;
$config['sess_expire_on_close'] = TRUE;
$config['sess_encrypt_cookie']  = TRUE;
$config['sess_use_database']    = TRUE;
$config['sess_table_name']      = 'ci_sessions';
$config['sess_match_ip']        = TRUE;
$config['sess_match_useragent'] = TRUE;
$config['sess_time_to_update']  = 300;

在此处输入图像描述

请帮助解决我的问题,如果可能的话,让我有一些想法

4

1 回答 1

4

使用 Laravel,您可以将会话数据存储为文件、数据库、cookie 或缓存(如 memcached 或 redis)。Laravel 根据v4.2 和v5.0中的lottery设置清理过期的会话条目:app/config/session.phpconfig/session.php

/*
|--------------------------------------------------------------------------
| Session Sweeping Lottery
|--------------------------------------------------------------------------
|
| Some session drivers must manually sweep their storage location to get
| rid of old sessions from storage. Here are the chances that it will
| happen on a given request. By default, the odds are 2 out of 100.
|
*/
'lottery' => [2, 100],

调整这些lottery值会改变垃圾收集将在任何给定请求上发生的几率。要强制清除,将赔率设置为 1:1(即如果两个值lottery匹配)将强制 Laravel 在下一次请求时删除所有过期的会话数据。

于 2014-11-07T15:43:56.140 回答