如何在导航栏中显示我的名字和姓氏的值
How to display value of my first name and last name into navigation bar
我正在使用 code igniter,我想显示在我的导航中登录的用户的全名。
我尝试显示登录用户名和密码的值。
然后我也尝试根据我的数据库 table 用户添加数组项,例如名字和姓氏,但它不起作用。
下面是我在Controller上的登录功能代码
public function login(){
$data['title'] = 'Sign In';
$this->form_validation->set_rules('user_email','email','required|valid_email');
$this->form_validation->set_rules('user_password','password','required');
if($this->form_validation->run() === FALSE){
$this->load->view('templates/header');
$this->load->view('login',$data);
} else {
$email = $this->input->post('user_email');
$password = md5($this->input->post('user_password'));
//Login User
$user_id = $this->user_model->login($email,$password);
if($user_id){
//create sessions
$user_data = array(
'user_email' => $email,
'user_name' => $user_id->user_name,
'user_roles' => $user_id->types,
'logged_in' => true
);
$this->session->set_userdata($user_data);
$this->session->set_flashdata('user_loggedin','You are now Login');
redirect(base_url() . 'site/dashboard');
} else {
//Set message
$this->session->set_flashdata('failed_login','Login is Invalid');
redirect(base_url() . 'site');
}
}
}
下面是我的user_model登录函数
public function login($email,$password)
{
$this->db->where('user_email',$email);
$this->db->where('user_password',$password);
$result = $this->db->get('users');
if($result->num_rows() === 1){
return $result->row(0)->id;
} else {
return false;
}
}
<li class="nav-item dropdown no-arrow">
<a class="nav-link dropdown-toggle" href="#" id="userDropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
<span class="mr-2 d-none d-lg-inline text-gray-600 small">Welcome, <?php echo $this->session->userdata('user_name'); ?></span>
<!-- <img class="img-profile rounded-circle" src="https://source.unsplash.com/QAB-WJcbgJk/60x60"> -->
</a>
</li>
我只成功显示了用户名和密码,没有显示登录的名字或姓氏table
在您的 login_success 方法中,获取用户详细信息,例如名字和姓氏以及 return 他们。
您可以在代码中使用会话分配名字和姓氏。
$session_data = array(
'username' => $username,
'password' => $password,
'first_name' => $firstname, // Assumed this value from DB
'last_name' => $lastname // Assumed this value from DB
);
在您的 HTML 中,您可以显示如下欢迎信息:
<span class="mr-2 d-none d-lg-inline text-gray-600 small">Welcome, <?php echo $this->session->userdata('first_name'); ?> <?php echo $this->session->userdata('last_name'); ?></span>
您没有将数据正确保存到会话中
只需在您的模型函数中编写这部分代码即可。 我想这会解决你的问题。
//model function
$this->load->model('user_model');
$user_data = $this->user_model->login_success($username, $password);
if ($user_data) {
$session_data = array(
'username' => $username,
'password' => $password,
'first_name' => $user_data->first_name, // This value from DB
'last_name' => $user_data->last_name // This value from DB
);
$this->session->set_userdata($session_data);
像这样写你的模型代码:
public function login($email,$password)
{
$this->db->where('user_email',$email);
$this->db->where('user_password',$password);
$result = $this->db->get('users');
if($result->num_rows() == 1){
return $result->row() // it will fetch all the data from your db row
} else {
return false;
}
}
您应该将 return $result->row(0)->id
更改为 return $result->row()
。
我希望现在你会得到你想要的输出。
我正在使用 code igniter,我想显示在我的导航中登录的用户的全名。
我尝试显示登录用户名和密码的值。
然后我也尝试根据我的数据库 table 用户添加数组项,例如名字和姓氏,但它不起作用。
下面是我在Controller上的登录功能代码
public function login(){
$data['title'] = 'Sign In';
$this->form_validation->set_rules('user_email','email','required|valid_email');
$this->form_validation->set_rules('user_password','password','required');
if($this->form_validation->run() === FALSE){
$this->load->view('templates/header');
$this->load->view('login',$data);
} else {
$email = $this->input->post('user_email');
$password = md5($this->input->post('user_password'));
//Login User
$user_id = $this->user_model->login($email,$password);
if($user_id){
//create sessions
$user_data = array(
'user_email' => $email,
'user_name' => $user_id->user_name,
'user_roles' => $user_id->types,
'logged_in' => true
);
$this->session->set_userdata($user_data);
$this->session->set_flashdata('user_loggedin','You are now Login');
redirect(base_url() . 'site/dashboard');
} else {
//Set message
$this->session->set_flashdata('failed_login','Login is Invalid');
redirect(base_url() . 'site');
}
}
}
下面是我的user_model登录函数
public function login($email,$password)
{
$this->db->where('user_email',$email);
$this->db->where('user_password',$password);
$result = $this->db->get('users');
if($result->num_rows() === 1){
return $result->row(0)->id;
} else {
return false;
}
}
<li class="nav-item dropdown no-arrow">
<a class="nav-link dropdown-toggle" href="#" id="userDropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
<span class="mr-2 d-none d-lg-inline text-gray-600 small">Welcome, <?php echo $this->session->userdata('user_name'); ?></span>
<!-- <img class="img-profile rounded-circle" src="https://source.unsplash.com/QAB-WJcbgJk/60x60"> -->
</a>
</li>
我只成功显示了用户名和密码,没有显示登录的名字或姓氏table
在您的 login_success 方法中,获取用户详细信息,例如名字和姓氏以及 return 他们。
您可以在代码中使用会话分配名字和姓氏。
$session_data = array(
'username' => $username,
'password' => $password,
'first_name' => $firstname, // Assumed this value from DB
'last_name' => $lastname // Assumed this value from DB
);
在您的 HTML 中,您可以显示如下欢迎信息:
<span class="mr-2 d-none d-lg-inline text-gray-600 small">Welcome, <?php echo $this->session->userdata('first_name'); ?> <?php echo $this->session->userdata('last_name'); ?></span>
您没有将数据正确保存到会话中
只需在您的模型函数中编写这部分代码即可。 我想这会解决你的问题。
//model function
$this->load->model('user_model');
$user_data = $this->user_model->login_success($username, $password);
if ($user_data) {
$session_data = array(
'username' => $username,
'password' => $password,
'first_name' => $user_data->first_name, // This value from DB
'last_name' => $user_data->last_name // This value from DB
);
$this->session->set_userdata($session_data);
像这样写你的模型代码:
public function login($email,$password)
{
$this->db->where('user_email',$email);
$this->db->where('user_password',$password);
$result = $this->db->get('users');
if($result->num_rows() == 1){
return $result->row() // it will fetch all the data from your db row
} else {
return false;
}
}
您应该将 return $result->row(0)->id
更改为 return $result->row()
。
我希望现在你会得到你想要的输出。