最近、codeIgniter2.1.1をダウンロードしました。Windows 7のWampにCIファイルをドロップしました。その後、Firefoxを開いてlocalhostと入力すると、「Disallowed Key Characters」というメッセージが表示されました が、ChromeとOperaではこの問題は発生しません。
4 に答える
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をクリアすることもお勧めします。
それが役に立てば幸い
答えはブラウザのCookieにあります。私はこのエントリを私の中で見つけました
'instance0|ab'
多分それはあなたのブラウザにあります。すべてのCookieを削除し、それらがなくなっていることを確認してください。
同様の問題が発生しました。すべてのCookieをクリアしてから、再起動しました。サイトは正しく機能しました。クッキーの形成が不十分なために発生する可能性があります。うまくいけば、それは誰かを助けます。
私は同じエラーを抱えていました!
729行目のsystem/core/Input.phpにコードがあります。
'。'を追加するだけです および'|' 合格することができます:
if ( ! preg_match("/^[a-z0-9:_\/\-\.|]+$/i", $str))
これは、サブディレクトリを設定したWindowsローカルホストで機能しました:)