Php Codeigniter表单url工作不正常

Php Codeigniter表单url工作不正常,php,codeigniter,Php,Codeigniter,我正在我的一个项目中使用codeigniter和smarty模板 所以在控制器中,我分配了这样的变量 $data['form'] = array("type" => "form_open_multipart" , "action" => base_url()."files/edit/".$file_id); 但在浏览器上,当我检查表单操作url时,它显示“�http://...." � 字符替换为url的第一个字符 只有使用form\u open\u multipart()方法才会

我正在我的一个项目中使用codeigniter和smarty模板

所以在控制器中,我分配了这样的变量

$data['form'] = array("type" => "form_open_multipart" , "action" => base_url()."files/edit/".$file_id);
但在浏览器上,当我检查表单操作url时,它显示“�http://...."

� 字符替换为url的第一个字符

只有使用form\u open\u multipart()方法才会出现这种情况,而使用form\u open()方法则可以正常工作


如何从url中删除该符号?

在application/config/config.php中的base\u url变量中有一些隐藏字符: 您可以验证这一点,或者只需将其更改为动态,如下所示:

$config['base_url'] = ((isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == "on") ? "https" : "http");
$config['base_url'] .= "://" . $_SERVER['HTTP_HOST'];
$config['base_url'] .= str_replace(basename($_SERVER['SCRIPT_NAME']), "", $_SERVER['SCRIPT_NAME']);

首先在controller中检查您的base_url(),然后在template部分检查。是的,在controlooler上,它工作正常。您应该直接在模板文件中尝试表单标记,不需要使用controller传递。模板使用不同的url动态调用,因此这不是一个好的解决方案,因为url已更改,但模板保持不变。