Php Codeigniter会话数据还是数据库查询?
如何在标题上显示客户或用户的信息,如姓名 首先,我有一个登录页面。客户和用户可以在同一登录页面上登录到仪表板。在登录过程中,它使用了2个数据库表,如User和Customer。当客户和用户登录到仪表板时,登录过程系统从2个数据库表获取数据 登录模式:Php Codeigniter会话数据还是数据库查询?,php,codeigniter,session,login,codeigniter-3,Php,Codeigniter,Session,Login,Codeigniter 3,如何在标题上显示客户或用户的信息,如姓名 首先,我有一个登录页面。客户和用户可以在同一登录页面上登录到仪表板。在登录过程中,它使用了2个数据库表,如User和Customer。当客户和用户登录到仪表板时,登录过程系统从2个数据库表获取数据 登录模式: private $table = "user, customer"; private $_data = array(); public function validate() { $username = $
private $table = "user, customer";
private $_data = array();
public function validate()
{
$username = $this->input->post('username');
$password = $this->input->post('password');
// Username or Email Sending Settings
$this->db->where("(user.userEmail = '$username' OR user.userUsername = '$username') OR (customer.cosEmail = '$username' OR customer.cosUserName = '$username')"); //
$query = $this->db->get($this->table);
if ($query->num_rows())
{
// found row by username
$row = $query->row_array();
// now check for the password
if ($row['userPass'] == $password OR $row['cosPassword'] == $password)
{
// we not need password to store in session
unset($row['userPass' OR 'cosPassword']);
$this->_data = $row;
return ERR_NONE;
}
// password not match
return ERR_INVALID_PASSWORD;
}
else {
// not found
return ERR_INVALID_USERNAME;
}
}
public function get_data()
{
return $this->_data;
}
我想在标题上显示客户或用户的信息。当客户登录时,客户可以看到自己的信息;当用户登录时,用户可以在同一仪表板中看到自己的信息
为此,我使用Codeigniter的SessionData。视图标题:
<li class="dropdown">
<a data-toggle="dropdown" class="dropdown-toggle" href="#">
<img alt="" src="<?php echo base_url().'upload/user/'.$this->session->userdata('userImg'); ?>">
<span class="username"><?php echo $this->session->userdata('userName'); ?> <?php echo $this->session->userdata('userSurname'); ?></span>
<b class="caret"></b>
</a>
<ul class="dropdown-menu extended logout">
<div class="log-arrow-up"></div>
<li><a href="<?php echo base_url(); ?>profile"><i class=" fa fa-suitcase"></i>Profile</a></li>
<li hidden><a href="#"><i class="fa fa-cog"></i> Settings</a></li>
<li hidden><a href="<?php echo base_url(); ?>notifications"><i class="fa fa-bell-o"></i> Notification</a></li>
<li><a href="<?php echo base_url(); ?>logout"><i class="fa fa-key"></i> Log Out</a></li>
</ul>
</li>
但系统显示用户名为1。它不起作用
我可以根据客户或使用userdata的用户显示哪些信息
我的登录控制器:
public function index()
{
$this->logged_in_check();
$this->load->library('form_validation');
$this->form_validation->set_rules("username", "Username", "trim|required");
$this->form_validation->set_rules("password", "Password", "trim|required");
if ($this->form_validation->run() == true)
{
$this->load->model('login_model', 'login');
// check the username & password of user
$status = $this->login->validate();
if ($status == ERR_INVALID_USERNAME) {
$this->session->set_flashdata("error", "Username or Email is invalid");
}
elseif ($status == ERR_INVALID_PASSWORD) {
$this->session->set_flashdata("error", "Password is invalid");
}
else
{
// success
// store the user data to session
$this->session->set_userdata($this->login->get_data());
$this->session->set_userdata("logged_in", true);
// redirect to dashboard
redirect("dashboard");
}
}
$this->load->view("login");
}
您可以仅使用此函数并删除其他函数
另外,在视图中,使用此代码
echo$this->session->userdata('people\u name')
显示用户或客户名称。您编写的是if语句;如果你想显示一些东西,请使用回音。。。e、 g:echo$this->session->userdata('userName')
在设置会话数据的地方,显示该会话的代码,但我没有设置我的会话数据。如何设置?我添加了登录控制器。我已经写了//echo$this->session->userdata('userName')@ahmad I解释:当客户登录时,客户可以看到自己的信息,或者当用户登录时,用户可以在标题上看到自己的信息。我可以这样做吗?然后您可以从db获取用户或客户数据,然后设置他的会话数据。评论不用于扩展讨论;这段对话已经结束。
public function index()
{
$this->logged_in_check();
$this->load->library('form_validation');
$this->form_validation->set_rules("username", "Username", "trim|required");
$this->form_validation->set_rules("password", "Password", "trim|required");
if ($this->form_validation->run() == true)
{
$this->load->model('login_model', 'login');
// check the username & password of user
$status = $this->login->validate();
if ($status == ERR_INVALID_USERNAME) {
$this->session->set_flashdata("error", "Username or Email is invalid");
}
elseif ($status == ERR_INVALID_PASSWORD) {
$this->session->set_flashdata("error", "Password is invalid");
}
else
{
// success
// store the user data to session
$this->session->set_userdata($this->login->get_data());
$this->session->set_userdata("logged_in", true);
// redirect to dashboard
redirect("dashboard");
}
}
$this->load->view("login");
}
public function index(){
$this->load->library('form_validation');
$this->form_validation->set_rules("username", "Username", "trim|required");
$this->form_validation->set_rules("password", "Password", "trim|required");
if ($this->form_validation->run() == FALSE)
{
$this->session->set_flashdata("error", validation_errors());
$this->load->view("login");
}
else{
$username = $this->input->post('username');
$password = $this->input->post('password');
$user_data = $this->db->query("(SELECT * FROM user WHERE userUsername = '$username' OR userEmail = '$username' AND userPass = '$password')");
$cus_data = $this->db->query("(SELECT * FROM customer WHERE cosUserName = '$username' OR cosEmail = '$username' AND cosPassword = '$password')");
if ($user_data->num_rows() > 0) {
foreach ($user_data->result_array() as $row) {
$this->session->set_userdata('people_name',$row['userUsername']);
$this->session->set_userdata("logged_in", true);
}
// redirect to dashboard
redirect("dashboard");
}
elseif ( $cus_data->num_rows() > 0) {
foreach ($cus_data->result_array() as $row) {
$this->session->set_userdata('people_name',$row['cosUserName']);
$this->session->set_userdata("logged_in", true);
}
// redirect to dashboard
redirect("dashboard");
}
else{
$this->session->set_flashdata("error", "Username or Email is invalid");
$this->load->view("login");
}
}
}