如何解决CI框架的Disallowed Key Characters错误提示
当我们在使用CI框架时,有时会遇到一个令人困惑的问题:网页上只显示“Disallowed Key Characters”的错误提示。很多时候,人们会以为是URL中含有非法字符导致的。即使确定URL是纯英文的,问题仍然会出现。有时清空浏览器的历史记录和cookies后刷新就能解决问题,而在不同的浏览器中的表现也不尽相同。
如何解决CodeIgniter框架应用中出现的“Disallowed Key Characters”错误提示呢?我们需要找到位于/system/core文件夹下的Input文件,并进行相应的修改。
原本的代码如下:
```php
function _clean_input_keys($str){
if ( ! preg_match("/^[a-z0-9:_\/-]+$/i", $str))
{
exit('Disallowed Key Characters.');
}
// Clean UTF-8 if supported
if (UTF8_ENABLED === TRUE)
{
$str = $this->uni->clean_string($str);
}
return $str;
}
```
我们可以将其修改为:
```php
function _clean_input_keys($str) {
$config = &get_config('config');
if ( ! preg_match("/^[".rawurlencode($config['permitted_uri_chars'])."]+$/i", $str))
{
exit('Disallowed Key Characters.');
}
// Clean UTF-8 if supported
if (UTF8_ENABLED === TRUE)
{
$str = $this->uni->clean_string($str);
}
return $str;
}
```
这样修改后,代码会先获取框架的配置文件,从中获取允许的URI字符,再进行匹配。这样可以更好地适应不同的环境和需求,避免因字符限制而导致的问题。对于UTF-8编码的支持也得以保留,确保了字符串的清洁和有效性。返回处理后的字符串以供后续使用。如果遇到不允许的字符,程序会终止并显示“Disallowed Key Characters”的错误提示。这样我们就能更好地解决在使用CodeIgniter框架时遇到的“Disallowed Key Characters”错误提示问题。
编程语言
- 如何解决CI框架的Disallowed Key Characters错误提示
- js定时器实例分享
- bootstrap-table.js扩展分页工具栏(增加跳转到xx页)功
- ajax JSONP请求处理回调函数jsonpCallback区分大小写
- php post换行的方法
- 强烈推荐 - Ajax 技术资源中心
- javascript 动态生成css代码的两种方法
- vue项目关闭eslint校验
- Bootstrap实现input控件失去焦点时验证
- JavaScript中调用函数的4种方式代码实例
- 前端把html表格生成为excel表格的实例
- javascript中return,return true,return false三者的用法及
- 详解参数传递四种形式
- 基于JavaScript实现文字超出部分隐藏
- 手机浏览器 后退按钮强制刷新页面方法总结
- ASP.NET ASHX中获得Session的方法