ci_phpers 发表于 2011-4-3 16:35:52

验证 数组是否为空

function user_login(){
       
                ///$this->load->library('session');
               
                $username = $this->input->post('username');
                $password = $this->input->post('password');
                $password = md5($password);
               
                $query    = $this->db->query('SELECT `username`,`password` FROM `user` WHERE `username` = "'.$username.'"');
               
                foreach($query->result_array() as $user){
               
                        if($username && $password == $user['password']){
                                $data = array(
                                        'uid'                =>        $user['uid'],
                                        'username'        =>$user['username']
                                );
                               
                        //        $this->session->set_userdata('userone',$data);
                                $this->alert('登陆成功');
                                //$this->load->view('admin_index');
                               
                        }else if(element($user['username'],$user,$password)){
                                $this->alert('用户名或者密码错误!');
                        }
                }
        }
       
        function alert($meg){
                echo "<script type='text/javascript'>alert('$meg');location.href=document.referrer;</script>";
        }
       
高手帮忙看下 代码是否有错? 我的这个是登陆功能 当我输入数据库里面有的用户密码错误时会提示(用户名或密码错误) 但是我输入数据库没有的用户时 什么都不会提示? 这个怎么解决啊? 以前用PHP 直接写 没出现问题。

jeongee 发表于 2011-4-3 17:07:26

你在foreach外面判断一下啊!
只有一条的时候用$query->row_array();比较好,那就省去foreach了
判断数组为不为空很简单啊,你就if(数组)就可以了啊

huboo82 发表于 2011-4-3 17:16:56


$query    = $this->db->query('SELECT `username`,`password` FROM `user` WHERE `username` = "'.$username.'"');

当查询数据库不存在的用户名时,这个始终返回空结果集。

我认为用户应该是唯一的,所以这里用

if($query->num_rows() == 1){
$user = $query->row_array();
if($username && $password == $user['password']){
                              $data = array(
                                        'uid'                  =>      $user['uid'],
                                        'username'      =>$user['username']
                              );
                              
                        //      $this->session->set_userdata('userone',$data);
                              $this->alert('登陆成功');
                              //$this->load->view('admin_index');
                              
                        }else if(element($user['username'],$user,$password)){
                              $this->alert('用户名或者密码错误!');
                        }
}else{
$this->alert('用户名或者密码错误!');
}
页: [1]
查看完整版本: 验证 数组是否为空