0

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显示。

4

1 回答 1

0

我希望这就是复制粘贴的结果,因为这段代码很难阅读。查看 php codesniffer 并作为行业标准,查看 zend 上有关 php 代码格式的一些文档。

所以你的逻辑需要将错误消息注入到索引函数中(我假设这是你的操作,但只是没有这样标记),如果它没有被注入,它不会声明错误消息,因为它没有被注入。

我会看看 $this->user_model->validate(); 以确保正确处理 http 请求(发布)。

于 2012-11-26T00:50:21.943 回答