Php Codeigniter ci_会话表将ip地址存储为0.0.0.0为什么?即使在托管时,我也会得到0.0.0.0
您好,在我的codeigniter中,我创建了带有以下字段的表作为ci_会话Php Codeigniter ci_会话表将ip地址存储为0.0.0.0为什么?即使在托管时,我也会得到0.0.0.0,php,codeigniter,session-cookies,codeigniter-url,codeigniter-routing,Php,Codeigniter,Session Cookies,Codeigniter Url,Codeigniter Routing,您好,在我的codeigniter中,我创建了带有以下字段的表作为ci_会话 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) unsig
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;
使用Linode,您的应用程序很可能位于代理之后。您可以找到您的代理IP并将其添加到CodeIgniter配置文件(位于
/application/config/config.php
的底部)的白名单中,或者按照上的说明使用Apachemod_rpaf
模块将X_FORWARDED_重新映射到REMOTE_ADDR为什么不能使用此$this->input->ip_address()代码>在插入查询中?您已将sess\u use\u database
设置为FALSE
然后如何在数据库中获取记录?我在数据库中获取值,但对于ip地址,我获取0.0.0.0'0.0.0'是当ip地址被视为无效(不符合ipv4或ipv6标准)时,Input::ip\u address()方法的回退值。你在哪里主持?@luciddreamz我错过了什么吗??