kevin0171 发表于 2011-9-1 12:03:10

ckwn 发表于 2011-8-26 10:46 static/image/common/back.gif
我是这样做的:
登录判断用户名密码时,如果不能登录返回false,能登录返回登录用户的一整条数据,然后放 ...

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

      $this->form_validation->set_rules('username','用户名','trim|required|min_length|max_length|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();
      
      
?>   
麻烦您给看一下,我这个具体应该怎么加

kevin0171 发表于 2011-9-1 12:03:40

avinmo 发表于 2011-8-28 23:08 static/image/common/back.gif
很不错的氛围。。。 大家都很热情。哈哈。

请问你知道我的怎么做吗,我刚学CI

sison 发表于 2011-9-1 13:07:06

一般应该是使用session的 在你的控制器构造里面 :        $this->load->library('session');

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

而在需要读取session 的地方:$this->session->userdata('username');

kevin0171 发表于 2011-9-1 14:53:34

sison 发表于 2011-9-1 13:07 static/image/common/back.gif
一般应该是使用session的 在你的控制器构造里面 :        $this->load->library('session');

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

我想读的是登录用户的ID,怎么弄

visvoy 发表于 2011-9-1 22:02:08

那就把用户ID放进session里面啊

kevin0171 发表于 2011-9-2 10:13:42

visvoy 发表于 2011-9-1 22:02 static/image/common/back.gif
那就把用户ID放进session里面啊

但是之前不是应该获取到登录的ID吗,我登录的ID获取不到不知道怎么放进session,麻烦您了

visvoy 发表于 2011-9-2 11:37:06

用户登陆时候要输入账号密码给系统啊,这时你用这个信息去数据库里面把用户的资料取出来,包括用户id,如果判断密码正确,就把你想要的信息存在session里面,否则就提示错误
然后其他页面就能获取的session里面的用户id了

kevin0171 发表于 2011-9-2 11:58:52

visvoy 发表于 2011-9-2 11:37 static/image/common/back.gif
用户登陆时候要输入账号密码给系统啊,这时你用这个信息去数据库里面把用户的资料取出来,包括用户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错误

visvoy 发表于 2011-9-2 13:33:08

建议楼主先看看mysql的手册吧,你得sql写的有问题,字符串要用单引号括起来

lnlingyuan 发表于 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');

参考一下吧
页: 1 [2]
查看完整版本: 求助:登录后如何判断登录名的ID