仍然是CodeIgniter的新手,并尝试执行以下操作。我可能做错了,任何方向,非常感谢。
我有一个在提交登录表单validate_creds
时调用的函数。如果表单成功登录,如果不成功,我想设置$error_msg
并重新加载表单。 validate_creds()
似乎正确验证,但正如您在else
语句中看到的那样,我想重新加载index()
,通过显示表单顶部消息的$error_msg
。
public function index($error_msg = '')
{
//data
$data['login'] = "Logged In";
if($error_msg !== '') {
$data['error_msg'] = $error_msg;
}
//view
$this->load->view('templates/login/login_header',$data);
$this->load->view('login/login_form', $data);
$this->load->view('templates/login/login_footer',$data);
}
public function validate_creds()
{
$this->load->model('user_model');
$query = $this->user_model->validate();
if($query)//if the users creds have been validated...
{
$data = array(
'username' => $this->input->post('username'),
'is_logged_in' => true
);
$this->session->set_userdata($data);
redirect('gallery');
}
else
{
$error_msg = "Your username or password is not correct.";
$this->index($error_msg);
}
}
表单消息
<?php if($error_msg != ''): ?>
<div class="alert alert-error">
<?php echo $error_msg; ?>
</div>
<?php endif; ?>
目前正在发生的事情是$error_msg
一直在显示。
答案 0 :(得分:0)
我希望这就是复制粘贴的结果,因为这段代码难以阅读。查看php codesniffer并作为行业标准,查看有关php代码格式的zend的一些文档。
所以你的逻辑需要将错误消息注入到索引函数中(我假设它是你的动作但是没有标记为这样),如果它没有注入,它不会声明错误消息,因为它不是注入。
我会看看$ this-&gt; user_model-&gt; validate();确保正确处理http请求(帖子)。