2011-05-26 21 views
0

Possible Duplicate:
CodeIgniter Disallowed Key CharactersCodeIgniterでは、キー文字を許可されていない - すべての文字が

許可されているとき、私は最近、1.7から2.0へのCIをアップグレードしました。 CIの受信を開始してから、

Disallowed Key Characters

エラーが発生しました。

その後、すべての文字を受け入れて、エラーが消えるかどうかを確認しました。しかし

$config['permitted_uri_chars'] = ''; 

、これは何も変更していない

また、私はちょうど私がすべて許可しています許可されていない文字エラーを取得しています理由は分からないクエリ文字列

$config['enable_query_strings'] = TRUE; 

を有効にしています受け入れられる文字。ここで

は私が許可されていないキー文字エラーになるだろう、URLの例です:「?」私はのいずれかを削除した場合、しかし、

http://localhost/myapp/index.php??c=user&m=login 

RewriteEngine on 
RewriteRule (.*)/index.php $1/ [L] 

任意のヘルプ:それは私が含まれているのhtaccessファイルを持っている

http://localhost/myapp/index.php?c=user&m=login 

に動作しますか?

答えて

2

を正規表現を変更CodeIgniterのは、それが検証別々のGET/POSTのチェック/およびCookieデータのキー名を行いますように見えますそれらに対して:

/^[a-z0-9:_\/-]+$/i 

参照:https://bitbucket.org/ellislab/codeigniter/src/c2dad3edb148/system/core/Input.php#cl-537

私はInput.phpをサブクラス化する/編集する以外に、このチェックを無効にする簡単な方法が表示されません。とにかく奇妙な記号のないキーを使う方が良いでしょう。

1

コードのコメントで述べたように、何をやっていることはhihglyそれでも

| As a security measure you are STRONGLY encouraged to restrict URLs to 
| as few characters as possible. By default only these are allowed: a-z 0-9~%.:_- 
| 
| Leave blank to allow all characters -- but only if you are insane. 
| 
| DO NOT CHANGE THIS UNLESS YOU FULLY UNDERSTAND THE REPERCUSSIONS!! 

を推奨され、possibileソリューションとして、明らかあなたのキャッシュや、特に、あなたのクッキーになりますたとえば、this CIフォーラムのトピック(そして、それほどではありませんが、他のリソースでグーグルグーグルになることがあります)

EDIT:あなたの質問を編集し、重要な詳細を追加しました。他のユーザーが示唆しているように、入力クラスをチェックして、codeigniterがPOSTとGETの処理をどのように実装するかを調べる必要があります。

特に、私は図書館/ input.phpにfunction _clean_input_keys($str)に探していて、そこ

+0

すべての文字を許可するのは一時的なものですが、私はなぜこのエラーが発生しているのかわかりません。私がCI 1.7を使用していたとき、私はデフォルトの文字を "?"例: 'a-z 0-9〜%。:_-?' と、許可されていないキー文字メッセージを受信することに問題はありませんでした。 – koeder

+0

ありがとう@Damien Pirsyさんがお手伝いします。私はそれを調べます。私はそれを編集しなければならないかもしれないと思う。私が持っている本当の問題は、FacebookとそのコールバックURLを扱うことです。 – koeder

関連する問題