CodeIgniter添加URI段

时间:2012-02-29 12:15:25

标签: codeigniter

我已经使用CodeIgniter创建了一个登录表单。为了测试表单,我提交了不正确的数据,我得到了正确的信息,表格被重新显示。如果我更正错误并重新提交,则uri段将附加到URL。

所以我用localhost/myapp调用应用程序,显示登录表单。提交后,网址将更改为localhost/myapp/controller/authenticate。再次提交网址更改为localhost/myapp/controller/authenticate/controller/authenticate

这里有什么问题?

查看

<form action="<?php echo base_url();?>/welcome/authenticate" method="post" id="loginfrm">
<input type="text" name="username" /><?php echo form_error('username', '<div class="error">', '</div>'); ?><br />
<input type="password" name="password" /><?php echo form_error('password', '<div class="error">', '</div>'); ?><br />
    <input type="submit" value="Login" />
</form>

控制器

public function index()
{
    $this->load->view('welcome_message');
}

public function authenticate()
{
    $this->form_validation->set_rules('username', 'Username', 'trim|required');
    $this->form_validation->set_rules('password', 'Password', 'trim|required');

    if ($this->form_validation->run() == FALSE)
    {
        $this->load->view('welcome_message');
    }
    else
    {
        echo $this->input->post('username') . " -->> " . $this->input->post('password');
    }
  }
  }

1 个答案:

答案 0 :(得分:1)

在处理表单的函数中始终使用重定向,如果一切正常并且在用户尝试刷新页面时加载了视图,则会阻止表单重新提交,他将被要求重新提交表单。重定向功能更改浏览器地址栏中的URL,以便不再要求用户重新提交表单。