0

这是我的基本网址:

$config['base_url'] = '//'. $_SERVER['HTTP_HOST']. 
str_replace(basename($_SERVER['SCRIPT_NAME']), '', $_SERVER['SCRIPT_NAME']);

这是我的看法:

<form action="<?php echo $this->config->base_url().'index.php/certification/add/'; ?>" 
method="post" accept-charset="utf-8" onsubmit ='return false;'>

这是结果:

<form action="//localhost/php/index.php/localhost/php/index.php/certification/add/" 
method="post" accept-charset="utf-8" onsubmit="return false;">  

为什么会这样?(如果您不知道协议相关的 URL 是什么,请阅读此内容。

4

3 回答 3

0

$config['base_url']不应包含文件/脚本路径。如果你自己回显它,在你的情况下,你应该只是得到'//localhost/php/'

你想用额外的 SCRIPT_NAME 东西做什么?

如果我理解正确,您将希望摆脱该部分,然后使用:

<form action="<?php echo $this->config->base_url('index.php/certification/add/')"

(我相信在从配置中删除脚本部分后它会像现在一样工作,但我想这是“正确的 CI 方式”)

于 2012-07-09T10:09:21.353 回答
0

您永远不会将前缀 http 或 https 协议设置为 base_url。因此,表单操作 url 将按预期以 // 开头。

于 2012-07-09T08:12:56.773 回答
0

您似乎没有正确获取基本 URL。这里已经回答了一个类似的问题。

于 2012-07-09T08:13:11.393 回答