Codeigniter 表单的 URL 附加问题

Posted

技术标签:

【中文标题】Codeigniter 表单的 URL 附加问题【英文标题】:URL Appending Issues with Codeigniter forms 【发布时间】:2018-06-06 12:43:29 【问题描述】:

我在 Codeigniter 中提交表单时遇到问题。当我单击提交按钮登录时,它会路由到这样的 URL:domain.com/www.domain.com/home/login。显然,它应该只是 www.domain.com/home/login。

这似乎与以下问题类似:Code Igniter URL appending,但该用户使用的是常规表单,而我使用的是 CodeIgniter 表单。在他的问题中,使用 CodeIgniter 表单是解决此问题的正确答案,但是,我仍然遇到与他相同的问题。

我的 base_url() 已经在配置中设置了,我都试过了

$this->load->view('/home/home');

$this->load->view('home/home');

在控制器功能中。我仍然每次都得到同样的东西。

即使函数是空的,并且实际上只是

public function login()

我仍然遇到双域问题。

因为它可能是相关的,这里是我的 .htaccess 文件:

RewriteEngine On
RewriteBase /eventCentral/
RewriteCond %REQUEST_FILENAME !-f
RewriteCond %REQUEST_FILENAME !-d
RewriteRule .* index.php/$0 [PT,L]

RewriteBase 是必要的,因为这是一个模拟站点,搭载在我的主站点上。

这里是 form_open 标签的代码:

               echo form_open('home/login');
               echo form_input($userNameField);
               echo form_password($passwordField);
               echo form_submit($submitButton);
               echo form_close();

我也尝试过将表单打开标记为:echo form_open('/home/login'); 它仍然给我同样的问题。

我的 base_url 是:

$config['base_url'] = 'www.redwolff.info/eventCentral';

我改变的唯一路线是

$route['default_controller'] = 'Home';

其余的都是以前的。

【问题讨论】:

显示生成表单打开标记的代码,或者如果您只是使用原始 html 显示。 完成。我认为这与您之前帮助我的问题有些相关。我的老师在今年早些时候向我们展示了如何设置代码点火器,但是现在课程结束了,而这在他的课堂上并没有发生,所以我完全不知道为什么现在会发生这种情况。我已经关注了他的视频来达到这一点。唯一的区别是在我们使用我们在类中构建的 linux 服务器之前,现在我正在使用 hostgator。 您的表单打开标签应该没问题。请你告诉我你在 config/config.php 中的 base_url 有什么。另外,您在 config/routes.php 中有任何非默认路由吗? 我在上面的文字中添加了它。 感谢@BrianGottier。这就是问题所在。 【参考方案1】:

您的基本 URL 设置不正确。您必须始终包含 http:// 或 https://,并且您最始终包含尾部斜杠。将您的 base_url 更改为:

$config['base_url'] = 'http://www.redwolff.info/eventCentral/';

【讨论】:

以上是关于Codeigniter 表单的 URL 附加问题的主要内容,如果未能解决你的问题,请参考以下文章

codeigniter 表单验证规则 url

使用 Codeigniter 将表单输入中的字符串添加到 URL

CodeIgniter 和 AJAX 表单提交

Codeigniter 表单打开如何删除 index.php

Codeigniter 4 - 表单验证

将值附加到 URL 的表单