0

我有一个带有以下check()功能的 codeigniter 控制器来检查用户名和密码。

http://localhost/prakash/modules/index.php/login/login/login/login/login/login/check

每次我提交表单(从视图)时,都会生成上面的链接。我该如何克服它。我本可以redirect('login')在控制器中使用而不是$this->load->view('login/login_form');这样,但它不会在表单中显示验证错误。

我的控制器是

function check(){

        $this->form_validation->set_rules('username', 'Username', 'required');
        if($this->form_validation->run()==FALSE){
            $this->load->view('login/login_form');
        }else{
            $this->load->model('loginModel');
            $query = $this->loginModel->validate();
            if($query){
                $data = array('username' => $this->input->post('username'),
                               'is_logged_in' => true
                            );
                $this->session->set_userdata($data);
                //redirecting to appropriate page 
                redirect('success');
            }else{
                $this->session->set_flashdata('loginCheck','Username/Password Comination Incorrect!');
                redirect('login');
            }
        }

    }

我的看法是

<section class="main">
<form class="form-1" action="login/check" method="post">
    <?php echo "<p class=\"text-error\">{$this->session->flashdata('loginCheck')}</p>"; ?>
    <?php echo validation_errors(); ?>
    <p class="field">
        <input type="text" name="username" placeholder="Username or email">
        <i class="icon-user icon-large"></i>
    </p>
        <p class="field">
            <input type="password" name="password" placeholder="Password">
            <i class="icon-lock icon-large"></i>
    </p>
    <p class="submit">
        <button type="submit" name="submit"><i class="icon-arrow-right icon-large"></i></button>
    </p>
</form>
</section>
4

1 回答 1

0

问题出在表单标签的 action 属性上

改变

<form class="form-1" action="login/check" method="post">

<form class="form-1" action="/login/check" method="post">

或者更好(如果您使用的是 url 助手)

<form class="form-1" action="<?php echo base_url() ?>login/check" method="post">

为什么会这样?

您使用的是相对于path当前 url 的值。

HTML 表单动作属性

示例 1

示例 2

示例 3

于 2013-02-01T15:58:02.133 回答