Codeigniter ci_sessions表存储ip地址为0.0.0.0为什么?即使托管我也得到0.0.0.0

时间:2015-03-31 11:03:28

标签: php codeigniter session-cookies codeigniter-url codeigniter-routing

Hello in codeigniter我创建了一个表为ci_sessions,其中包含以下字段

CREATE TABLE IF NOT EXISTS  `ci_sessions` (
    session_id varchar(40) DEFAULT '0' NOT NULL,
    ip_address varchar(45) DEFAULT '0' NOT NULL,
    user_agent varchar(120) NOT NULL,
    last_activity int(10) unsigned DEFAULT 0 NOT NULL,
    user_data text NOT NULL,
    PRIMARY KEY (session_id),
    KEY `last_activity_idx` (`last_activity`)
);

每个字段都正常工作,除了ip地址,每个客户端存储为0.0.0.0。我已经编辑了我的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']    = TRUE;
$config['sess_table_name']      = 'ci_sessions';
$config['sess_match_ip']        = TRUE;
$config['sess_match_useragent'] = TRUE;
$config['sess_time_to_update']  = 300;

1 个答案:

答案 0 :(得分:0)

使用Linode,您的应用可能会落后于代理。您可以找到代理IP并将其添加到CodeIgniter配置文件(/application/config/config.php的底部)中的白名单中,或按照Linode's Nodebalancer Reference上的说明使用Apache mod_rpaf模块将 X_FORWARDED_FOR 重新映射到 REMOTE_ADDR