如何解决CI框架的Disallowed Key Characters错误提示

网络编程 2025-03-13 00:44www.168986.cn编程入门

当我们在使用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”错误提示问题。

上一篇:js定时器实例分享 下一篇:没有了

Copyright © 2016-2025 www.168986.cn 狼蚁网络 版权所有 Power by