【问题标题】:CodeIgniter add URI SegmentsCodeIgniter 添加 URI 段
【发布时间】:2012-02-29 12:15:25
【问题描述】:

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

所以我用localhost/myapp 调用应用程序,显示登录表单。提交后,网址更改为localhost/myapp/controller/authenticate。再次提交时,URL 更改为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');
    }
  }
  }

【问题讨论】:

  • 不看什么功能,你是如何使用它的......我们如何回答?你告诉我。
  • 什么是表单动作?它应该类似于
    => 以使其相对,或者如果表单回发给自身,您可以将其留空
  • 您的路径是否应该始终包含 base_url() 函数?
  • 鲁尼:这就是我所拥有的。我刚刚将 base_url() 添加到操作中,这似乎可以正常工作。
  • 我几乎没有把它 base_url() 放到我的表单操作中;我喜欢让他们保持相对。顺便说一句,您网站使用 index.php 还是使用 htaccess 重写?

标签: codeigniter


【解决方案1】:

始终在处理表单的功能中使用重定向,如果一切正常并且当用户尝试刷新页面时会要求他重新提交表单,则在您的情况下防止表单重新提交。重定向功能会更改浏览器地址栏中的 url,因此将不再要求用户重新提交表单。

【讨论】:

  • 我之前试过这个,但问题是验证错误没有显示出来。
  • 使用此方法显示验证错误 确保您的 form_validation 库已加载到加载视图的函数中。
  • 我正在使用该方法以及
  • 我认为您遗漏了一些东西,请访问此链接并将您的代码与此 codeigniter.com/user_guide/libraries/form_validation.html 进行比较
猜你喜欢
  • 1970-01-01
  • 2012-06-20
  • 2013-06-19
  • 2012-06-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多