未定义的变量:查询

时间:2015-09-03 13:09:20

标签: php codeigniter login

我试图使用Codeigniter创建一个登录系统,并且它给了我这个错误消息,我似乎无法找到任何解决方案:

消息:未定义的变量:查询

文件名:controllers / login.php

行号:18

这是我的控制器:

<?php
     class Login extends CI_Controller {
     function index()
        {
        $data['main_content'] = 'login_form';
         $this->load->view('includes/template', $data);
        }


       function validate_credentials() 
      {
    $this->load->model('membership_model');
    $this->membership_model->validate();

if($query) 
{
    $data = array(
     'username' => $this->input->post('username'),
     'is_logged_in' => true
        );

    $this->session->set_userdata($data);
    redirect('site/members_area');

}
        else 
     {
    $this->index();
    }
}
}

这是我的模特:

 <?php
        Class Membership_model extends CI_Model {

        function validate()

        {
            $this->db->where('username', $this->input->post('username'));
            $this->db->where('password', md5($this->input->post('password')));
            $query = $this->db->get('membership');

            if($query->num_rows == 1) 
        {
                return true;
        }

        }
            }
?>

这就是观点:

<div id="login_form">
 <h1>Login, fool!</h1>
 <?php 
    echo form_open('login/validate_credentials');
    echo form_input('username', 'Username');
    echo form_input('password', 'Password');
    echo form_submit('submit', 'Login');
    echo anchor('login/signup', 'Create Account');
 ?>
</div>

2 个答案:

答案 0 :(得分:1)

使用此,

$query = $this->membership_model->validate();

答案 1 :(得分:0)

Controller的方法中不存在$ query变量。你应该使用

$query =  $this->membership_model->validate();

它将发送验证的布尔状态。