用户
 找回密码
 入住 CI 中国社区
搜索
12
返回列表 发新帖
楼主: kevin0171
收起左侧

[HELP] 求助:登录后如何判断登录名的ID

  [复制链接]
 楼主| 发表于 2011-9-1 12:03:10 | 显示全部楼层
ckwn 发表于 2011-8-26 10:46
我是这样做的:
登录判断用户名密码时,如果不能登录返回false,能登录返回登录用户的一整条数据,然后放 ...

额,那具体的我的一整条数据怎么插入,我的数据有ID,username,userrole,但是我登录就是用了用户名:
这是我的代码:
控制器:
    //登录
    function login()
    {

        $this->form_validation->set_rules('username','用户名','trim|required|min_length[4]|max_length[12]|xss_clean');
        if (!$this->form_validation->run())
        {
            $data['title'] = '登录';
            $data['error'] = '登录失败,检查';
            $this->load->view('login_view',$data);
        }
        else
        {
            if($this->Hou_model->check())
        //设置验证规则
                {
                    $data['title'] = '登录成功';

                    $this->load->view('success',$data);
                }
            //设置验证规则
            else
                {
                    $data['title']='登录失败';
                    $data['error']='有错误';
                    $this->load->view('login_view',$data);
                }
        }
    }
这是我的模型:
function check()
    {
        $this->db->where('username', $this->input->post('username'));
        
        $this->db->where('password', md5($this->input->post('password')));
        
        $q=$this->db->get('kingdom');
        
        $user=$this->input->post('username');
        

        if($q->num_rows()>0)
        {
            return $q->row();

            
        }
        return $q->num_rows();
        //$username = $this->session->userdata('username');
        //echo $username;
         
    }

这是我的视图:
<html>
<head>
<title><?echo '登录成功'?></title>
</head>
<body>
<p align="left">
<?      
        $data = $this->db->get('kingdom');
        $user=$this->input->post('username');
               
        echo anchor('users/Profile','个人资料')."&nbsp;&nbsp;";
        echo anchor('users/Permissions','查看权限')."&nbsp;&nbsp;";
        echo anchor('users/change','修改密码')."&nbsp;&nbsp;";
        echo anchor('users/search','查询用户')."&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"
?>
        <?

        echo anchor('users/logout','注销登陆')."&nbsp;&nbsp;";
        //endforeach;
?>
</p>

<p align="center" >
<?php
        $session_id = $this->session->userdata('session_id');
        //echo $session_id;
        date_default_timezone_set('PRC');
        $qwe=date("Y-m-d G:i:s ");
        

        echo "用户:".$user.""."<br>";
        
        echo "恭喜你,登陆成功<br>";   
        
        echo form_close();
        
        echo $qwe.'<br>';
        echo "您的IP地址:".$this->input->ip_address();
        
        
?>   
麻烦您给看一下,我这个具体应该怎么加
 楼主| 发表于 2011-9-1 12:03:40 | 显示全部楼层
avinmo 发表于 2011-8-28 23:08
很不错的氛围。。。 大家都很热情。哈哈。

请问你知道我的怎么做吗,我刚学CI
发表于 2011-9-1 13:07:06 | 显示全部楼层
一般应该是使用session的 在你的控制器构造里面 :        $this->load->library('session');

然后登录成功页面里:$this->session->set_userdata('username','12345');  //写入session

而在需要读取session 的地方:$this->session->userdata('username');
 楼主| 发表于 2011-9-1 14:53:34 | 显示全部楼层
sison 发表于 2011-9-1 13:07
一般应该是使用session的 在你的控制器构造里面 :        $this->load->library('session');

然后登录成功页面里 ...

我想读的是登录用户的ID,怎么弄
发表于 2011-9-1 22:02:08 | 显示全部楼层
那就把用户ID放进session里面啊
 楼主| 发表于 2011-9-2 10:13:42 | 显示全部楼层
visvoy 发表于 2011-9-1 22:02
那就把用户ID放进session里面啊

但是之前不是应该获取到登录的ID吗,我登录的ID获取不到不知道怎么放进session,麻烦您了
发表于 2011-9-2 11:37:06 | 显示全部楼层
用户登陆时候要输入账号密码给系统啊,这时你用这个信息去数据库里面把用户的资料取出来,包括用户id,如果判断密码正确,就把你想要的信息存在session里面,否则就提示错误
然后其他页面就能获取的session里面的用户id了
 楼主| 发表于 2011-9-2 11:58:52 | 显示全部楼层
visvoy 发表于 2011-9-2 11:37
用户登陆时候要输入账号密码给系统啊,这时你用这个信息去数据库里面把用户的资料取出来,包括用户id,如果 ...

嗯,我用select * from my_table where username=$user and password=$pwd;
$query = $this->db->query('SELECT username, ID FROM my_table username=$user and password=$pwd;
');

foreach ($query->result_array() as $row)
{
    echo $row['title'];
    echo $row['name'];
    echo $row['email'];
}



可是不对啊,提取不出来,还提示where错误
发表于 2011-9-2 13:33:08 | 显示全部楼层
建议楼主先看看mysql的手册吧,你得sql写的有问题,字符串要用单引号括起来
发表于 2011-9-2 14:39:25 | 显示全部楼层
//session记录登录者信息
                                $users = array(
                                        's_name' => $user['s_name'],
                                        'id'        => $user['id'],
                                        's_email'        => $user['s_email'],
                    's_status'  => $user['s_status'],
                                        'logged_in' => TRUE
                                );
                                $this->session->set_userdata($users);
                                redirect('home');

参考一下吧

本版积分规则