CodeIgniter-不允许的关键字符

CodeIgniter-不允许的关键字符,codeigniter,Codeigniter,可能重复: 我试图提交的表单有点问题,它的动态和复选框值来自数据库,唯一的问题是其中一个字段有一个#,当我试图提交表单时,它返回“不允许的关键字符” 如何确定提交#?根据您的问题,您似乎在表单中使用get作为方法,因此,它给出了不允许的关键字符错误 要允许字符#只需将其添加到文件中的以下内容中- 现在,url中允许使用字符#。它被硬编码到函数_clean_Input_keys()中的输入类中 只需创建一个MY_输入类并重写该函数 /** * Clean Keys * * This is a h

可能重复:

我试图提交的表单有点问题,它的动态和复选框值来自数据库,唯一的问题是其中一个字段有一个
#
,当我试图提交表单时,它返回
“不允许的关键字符”


如何确定提交
#

根据您的问题,您似乎在表单中使用get作为方法,因此,它给出了
不允许的关键字符
错误

要允许字符#只需将其添加到文件中的以下内容中-


现在,url中允许使用字符#。

它被硬编码到函数_clean_Input_keys()中的输入类中

只需创建一个MY_输入类并重写该函数

/**
* Clean Keys
*
* This is a helper function. To prevent malicious users
* from trying to exploit keys we make sure that keys are
* only named with alpha-numeric text and a few other items.
*
* @access   private
* @param    string
* @return   string
*/
function _clean_input_keys($str)
{
    // if ( ! preg_match("/^[a-z0-9:_\/-]+$/i", $str)) <---- DEL
    if ( ! preg_match("/^[#a-z0-9:_\/-]+$/i", $str)) // <----INS
    {
        exit('Disallowed Key Characters.');
    }

    // Clean UTF-8 if supported
    if (UTF8_ENABLED === TRUE)
    {
        $str = $this->uni->clean_string($str);
    }

    return $str;
}
/**
*干净的钥匙
*
*这是一个辅助函数。防止恶意用户
*通过尝试利用密钥,我们确保密钥
*仅使用字母数字文本和一些其他项目命名。
*
*@access-private
*@param字符串
*@返回字符串
*/
功能_clean_输入_键($str)
{
//如果(!preg_match(“/^[a-z0-9:\/-]+$/i”,$str))清除字符串($str);
}
返回$str;
}
更换:

      if ( ! preg_match("/^[a-z0-9:_\/-]+$/i", $str))
为此:

      if ( ! preg_match("/^[#a-z0-9:_|\/-]+$/i", $str))

system/core/input.php

中,你能给我们展示一下这个字段的代码吗?如果你把它重命名为
“-csharp”
,效果会很好。如果我把它重命名为它,唯一的问题是我为客户构建这个系统,他们输入了c#所以我必须让它成为未来的证明:)我尝试将它添加到CI附带的默认行中,因此它最终成为$config['allowed_uri_chars']='a-z 0-9~%:\-\ \ \ \ \'。。。但这似乎并不奏效,因为它无法覆盖核心文件。它破坏了升级
      if ( ! preg_match("/^[#a-z0-9:_|\/-]+$/i", $str))