我试图使用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>
答案 0 :(得分:1)
使用此,
$query = $this->membership_model->validate();
答案 1 :(得分:0)
Controller的方法中不存在$ query变量。你应该使用
$query = $this->membership_model->validate();
它将发送验证的布尔状态。