1

我已经创建了用户可以注册然后使用 Code Igniter 登录的系统
我的问题是我如何才能获得登录系统的人的电子邮件。

我用过这样的会话

$email=$this->session->userdata('email');

//a db query using the email obtained via session  
$query=$this->db->select('*')->from('referral')->where('referral_email',$email)->get();

但是,我认为这不是最安全或最有效的方法。
有没有更好/更安全的方法来完成这项任务。
在此先感谢您的帮助

4

1 回答 1

1

实际上,只要您将活动会话存储在数据库中,这就是安全的。

转到application/config/config.php并启用 ci_sessions 表

您还需要在数据库中创建 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`)
);

数据库会话的工作方式是它们使用会话 ID 保存一个唯一的 cookie,该会话 ID 是存储所有用户数据的表行的标识符。所以客户端永远不会看到或修改数据。

我希望能回答你的问题=]

于 2013-10-24T04:21:49.530 回答