form_open codeigniter 3 问题

issue with form_open codeigniter 3

我对 codeigniter form_open 函数有一个奇怪的问题。

当我通过此代码时:

<?php echo form_open('login/check');?>

它实际上打印出这个

<form action="http://***.***.***.***/***/index.php/login" method="post" accept-charset="<meta charset="utf-8">">

错误恰好在表单打开标记的末尾。 accept-charset 属性位于何处。除了我不需要 accept-charset 属性这一事实之外,因为我已经在头部声明了元数据,所以它以错误的格式打印它!

accept-charset="<meta charset="utf-8">">

此代码在页面上输出表单和双引号以及 angular 结束符。

">

真正的问题不是 accept-charset 属性本身,而是打印错误。而不是 accept-charset="utf-8" 它拉入字符集的元标记

发生了什么事?我想不通... 谢谢大家!

请查看 Codeigniter 的文档 http://www.codeigniter.com/user_guide/helpers/form_helper.html。它说,如果您使用 form_open(),那么它会创建一个起始表单标签,其中包含根据您的配置首选项构建的基础 URL。它会选择性地让您添加表单属性和隐藏的输入字段,将始终根据配置文件中的字符集值添加属性 accept-charset

也试试这个它应该可以工作,因为如果已经在属性中定义它不会覆盖。

$attributes = array(
     'accept-charset'=>'utf8'
);
echo form_open('login/check', $attributes);

确保您已在 config.php 文件

中配置 base_url
$config['base_url'] = 'http://localhost/project'; //your project location

并在控制器中加载表单助手

$this->load->helper('form');