首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在登录后不设置会话[Codeigniter]

在登录后不设置会话[Codeigniter]
EN

Stack Overflow用户
提问于 2017-08-02 18:48:18
回答 1查看 537关注 0票数 1

当我登录到网站时,会话没有设置。它早些时候工作得很好,但不知怎么的,它现在不起作用了。

我的控制器代码:

代码语言:javascript
复制
public function login_subadmin()
    {
        $email=$this->input->post('Email');
        $password=sha1($this->input->post('Password'));
        $this->sb->login_sub_admin($email,$password);

    }

我的模型代码:

代码语言:javascript
复制
public function login_sub_admin($email,$password)
    {
        $this->load->library('session');
        $query=$this->db->where(['Email'=>$email,'Password'=>$password])->get('dc_user');
         $res=$query->row();
                $this->session->set_userdata('user',$res->Employee_Name);
        if(!isset($this->session->userdata['user']))
        {
            $this->session->set_userdata('user',"No session");
        }
                redirect(base_url());

    }

我的视图导航:

代码语言:javascript
复制
<?php
if(!isset($this->session->userdata['user']))
{
                         $this->session->set_userdata('user',"No session");?>
    <!-- Login -->
    <li class="nav-item">
        <a href="sub_Admin" class="nav-item-child radius-3">
            Login
        </a>

    </li>
    <!-- End Login -->

<?php }
if (isset($this->session->userdata['user'])) {$user=$this->session->userdata['user'];?>
    <!-- Home -->
    <li class="nav-item">
        <a href="#" class="user-profile dropdown-toggle" data-toggle="dropdown" aria-expanded="false">
            &nbsp;<?php echo $user;?>&nbsp;<img style="width: 30px; height: 30px;" class="image-circle" src="<?php echo base_url(); ?>profileimages/<?php if (isset($this->session->userdata['profile'])) {

                echo $this->session->userdata['profile'];


            }?>" alt="">

当我将页面/登录加载到站点时,它会显示为no session。我在autoload中使用会话库,但是我不知道为什么它突然停止工作,上次我关闭项目时它运行得很好,我也清除了我的浏览器缓存,但仍然无法修复它,我已经搜索了很多,并在上面应用了很多步骤/过程,但是没有得到问题的原因。任何帮助都将不胜感激。

EN

回答 1

Stack Overflow用户

发布于 2017-08-02 19:09:14

试试下面的代码

错误:

  1. 要在会话中访问profile ,需要将其设置为
  2. 错误声明的会话和少数代码已被修改。
  3. 同样,会话设置部分应该移到控制器。

控制器中的

代码语言:javascript
复制
public function login_subadmin()
{
    $this->load->library('session');

    $email=$this->input->post('Email');
    $password=sha1($this->input->post('Password'));

    $result = $this->sb->login_sub_admin($email,$password);

    if (empty($result)) {
        redirect(base_url());
    } 
    else {  
        $newdata = array(
            'user'  => $result[0]['Employee_Name'],
            'profile'     => $result[0]['Profile_Image'], # New Element
            'logged_in' => TRUE
        );

        if (!$this->session->set_userdata($newdata)) {
            echo "Cannot set session";
        } else {
            redirect(base_url());
        }  
    }
}

在模型中的应用

代码语言:javascript
复制
public function login_sub_admin($email,$password)
{
    $query = $this->db->query("SELECT * FROM dc_user WHERE email = '$email' AND password= '$password' ");
    $result = $query->result_array();
    return $result;
}

In View

代码语言:javascript
复制
<?php

$user = $this->session->userdata['user'];
if(empty($user))) # or can check logged_in == TRUE (recommended personally)   
{
?>
    <!-- Login -->
    <li class="nav-item">
        <a href="sub_Admin" class="nav-item-child radius-3">
            Login
        </a>

    </li>
    <!-- End Login -->

<?php 
}

if (!empty($user)) 
{
    ?>
    <!-- Home -->
    <li class="nav-item">
        <a href="#" class="user-profile dropdown-toggle" data-toggle="dropdown" aria-expanded="false">
            &nbsp;<?php echo $user;?>&nbsp;<img style="width: 30px; height: 30px;" class="image-circle" 
            src="<?php echo base_url(); ?>profileimages/<?php echo $this->session->userdata['Profile_Image'];?>" alt="">
        </a>
    </li>
<?php 
}
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45468763

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档