2

最近、codeIgniter2.1.1をダウンロードしました。Windows 7のWampにCIファイルをドロップしました。その後、Firefoxを開いてlocalhostと入力すると、「Disallowed Key Characters」というメッセージが表示されました が、ChromeとOperaではこの問題は発生しません。

4

4 に答える 4

6

system/core/Input.php728行目に次のコードがあります。

<?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をクリアしてから、再起動しました。サイトは正しく機能しました。クッキーの形成が不十分なために発生する可能性があります。うまくいけば、それは誰かを助けます。

于 2014-06-10T10:32:43.727 に答える
0

私は同じエラーを抱えていました!

729行目のsystem/core/Input.phpにコードがあります。

'。'を追加するだけです および'|' 合格することができます:

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

これは、サブディレクトリを設定したWindowsローカルホストで機能しました:)

于 2014-08-03T09:43:29.267 に答える