2

最近我下载了codeIgniter 2.1.1。我在 Windows 7 上的 wamp 上删除了 CI 文件,然后我打开了 firefox 并键入 localhost,我看到了这条消息“不允许使用的键字符” 但是,Chrome 和 Opera 没有这个问题。

4

4 回答 4

6

system/core/Input.php第 728 行有此代码:

<?php 
/**
    * 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))
    {
        exit('Disallowed Key Characters.');
    }

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

    return $str;
}
?>

它检查 key=>value 对中的键,例如:example.com?key=value 如果您的键不在它的范围内,a-z0-9:_/-它将引发该错误。

改变exit('Disallowed Key Characters.');

exit('Disallowed Key Characters.'.$str);您了解哪个键有问题。请记住,这可能是通过检查 cookie,$_REQUEST/$_COOKIE因此清除 cookie 也是一个好主意,可能来自同一路径上的旧脚本或版本。

希望能帮助到你

于 2012-07-15T11:58:08.720 回答
1

答案在于您的浏览器 cookie。我在我的找到了这个条目

'instance0|ab'

也许它在您的浏览器中。删除所有 cookie 并确保它们已消失。

于 2014-11-27T04:04:02.273 回答
0

我有类似的问题,我清除了所有的cookie然后重新启动。网站工作正常。这可能是由于 cookie 形状不佳而发生的。希望它可以帮助某人..

于 2014-06-10T10:32:43.727 回答
0

我有同样的错误!

在第 729 行的 system/core/Input.php 中有代码。

只需添加一个“。” 和'|' 将允许通过:

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

这在我的 Windows localhost 上对我有用,有一个子目录设置:)

于 2014-08-03T09:43:29.267 回答