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))