如何访问数据库中的数据? - CodeIgniter

时间:2014-09-17 18:16:31

标签: php database codeigniter views

我正在使用CodeIgniter并拥有一个登录系统。我仍然是相当新的PHP和我想知道一旦用户登录,我如何访问他/她的数据在整个网站使用?现在我正试着说欢迎"用户名"但我不知道变量来自何处以及如何使用它们。现在我的home_view.php我有:

    <div class="main">
    <h2>Welcome <?php echo $username; ?>!</h2>
</div>

它抛出了这个错误:

A PHP Error was encountered

Severity: Notice

Message: Undefined variable: username

Filename: views/home_view.php

Line Number: 22

有人可以告诉我该怎么做吗?

2 个答案:

答案 0 :(得分:1)

  

问题:如何访问登录用户的数据以便在整个站点中使用?

登录的用户特定数据通常存储在会话中。对于codeigniter,您可以使用$this->session->userdata('item');$this->session->userdata('username');来访问会话数据。

但是,如果您使用的是特定登录系统,则取决于您使用的登录系统


自定义登录系统

从登录表单收到登录信息后,使用以下内容将数据传递给会话:

$newdata = array(
                   'username'  => 'johndoe',
                   'email'     => 'johndoe@some-site.com',
                   'logged_in' => TRUE
               );

$this->session->set_userdata($newdata);

然后使用以下内容引用用户名:

$this->session->userdata('username');

请参阅Codeigniter文档中的Adding Custom Session Data


登录系统示例

流行的codeigntier身份验证库是Tank-Auth

使用Tank-Auth时,用户登录后,您可以拨打$this->tank_auth->get_username()(呼叫$this->ci->session->userdata('username'),如上所述)。然后可以将其存储并传递给视图。

在Tank-Auth中你会看到:

应用/控制器/的welcome.php

$data['user_id']    = $this->tank_auth->get_user_id();
$data['username']   = $this->tank_auth->get_username();
$this->load->view('welcome', $data);

应用/视图/的welcome.php

Hi, <strong><?php echo $username; ?></strong>! You are logged in now.

答案 1 :(得分:0)

当用户登录时,您需要将他或她的数据存储到会话中。 当您验证用户获取他或她的数据并将其存储在会话中时。

$data = array(
                   'username'  => 'johndoe',
                   'email'     => 'johndoe@some-site.com',
                   'logged_in' => TRUE
               );

$this->session->set_userdata('logged_info', $data );

然后你可以在任何地方得到它

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