我尝试使用以下代码设置基本日志:
<?=form_open(base_url() . 'main/login'); ?>
然而,在提交表单后,网址会显示:
example.com/main/http//example.com/http//example.com/main/login
所以我猜本质上由于某种原因在控制器/方法声明之前打印了两次base-url。如果我清除配置文件中的基本URL值,则应用程序正常工作。然而,我对可能导致这种情况的原因感到好奇。有关其他信息,我正在使用虚拟主机处理xampp,并且我使用位于文档根目录的.htaccess文件进行了mod-rewrite。
答案 0 :(得分:2)
当您使用表单助手时,CodeIgniter会自动将base_url添加到表单的操作中。
例如,您可以使用:
<?=form_open('main/login'); ?>
将产生: HTTP // example.com /主/登录
正确的网址!很简单! :d 更多信息: http://codeigniter.com/user_guide/helpers/form_helper.html
答案 1 :(得分:1)
application / config 下的文件config.php
具有以下设置:
$config['base_url'] = '';
给它文件夹/目录路径。例如:
$config['base_url'] = 'http://localhost/ci_test/';
不要忘记提及协议(http://)。或者,尝试使用site_url()
方法而不是base_url()
进行表单打开。如果使用form_open()
函数,请跳过它:
<form action="<?php echo site_url('main/login'); ?>"> ... </form>
或者
<?php form_open('main/login'); ?>
获取更多帮助:http://codeigniter.com/user_guide/helpers/url_helper.html
不确定您使用的.htaccess
文件。但这可能就是答案codeigniter: why is that when i echo base_url() in an href attribute of an anchor tag, it echoes twice
答案 2 :(得分:0)
通过参数尝试:
<?=form_open(base_url('main/login')); ?>
或
<?=form_open site_url('main/login')); ?>
为了追加前缀
答案 3 :(得分:0)
您可以使用
<?php echo form_open(base_url(main/login)); ?>
你必须使用“echo”而不是因为它在某些浏览器中不起作用....