Codeigniter - 确保会话始终与数据库保持同步

时间:2015-02-21 23:48:09

标签: php codeigniter

当用户登录时,我从数据库中获取会话信息并将其保存在数据库的ci_sessions表中。

我有一个问题。当用户登录时,我会从会话中保存的信息中问候他们。例如,Welcome, <?php echo $first_name; ?>

但是,我的users数据库表中有一个我存储号码的号码。该数字也保存在ci_sessions表中。我已拨打该号码entry。因此,当用户登录时,在标题的左侧,它会显示Your Entry Points: <?php echo $entry; ?>

我尝试从我的entry数据库表中更改users,但它不会影响在标题中向用户显示的入口点,因为我正在从会话。

如何确保我的会话始终在每个页面中更新。换句话说,每次用户刷新页面时如何更新会话,如果我从数据库手动更改entry值,他刷新页面后会显示新条目?

我的代码:

<?php

$entry = $this->session->userdata('entry');
$email = $this->session->userdata('email');
$sql = "SELECT entry from users WHERE email = '" . $email . "' LIMIT 1";
$sess_data = array(
            'entry' => $entry,
            'email' => $email,
            );
$this->session->set_userdata($sess_data);
?>

遗憾的是,由于某些原因,这种方式无效。有人可以请帮助。感谢。

1 个答案:

答案 0 :(得分:0)

这不是一个真正的答案。我实际上有完全相同的问题。我在Godaddy主持一个电子商务项目并试图通过将它们保存到数据库来解决会话问题,因为它似乎无法通过此托管服务提供商动态更新cookie。我的意思是,你在数据库中的问题完全是我的,但在CI会话(cookie)中。

我想最好的选择是将此变量保存到数据库中的单独字段,手动更新并将其与会话ID匹配。

这很遗憾,因为在我的开发服务器中它运行得很好。