2011-11-13 29 views
1

Possible Duplicate:
CodeIgniter Disallowed Key CharactersCodeIgniterの「許可されていないキー文字」エラー?

私はすべてのチェックボックス(以下コード)をチェックすると、それは私にこのエラーを与える:

Disallowed Key Character

ここに私のHTMLです:

<label>Stability Control </label><input type="checkbox" class="largercheckbox" name="checkBox[Stability-Control]"></input><br/> 
<label>Xenon Headlamps</label><input type="checkbox" class="largercheckbox" name="checkBox[Xenon-Headlamps]"></input><br/> 

は、ここでの問題は何ですか?私は私の設定ファイルはこれらの文字を許可すると思う:

$config['permitted_uri_chars'] = 'a-z 0-9~%.:_\-'; 
+0

私はクッキーをクリアして機能しました。 – Alireza

答えて

9

system/core/Input.phpで見つかった次の関数は、文字を許可しません。

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

これはAZ 0-9 AZできるようになります:_ \/-

あなたは/application/core/でMY_Input.phpファイルを作成することにより、入力クラスを拡張し、メソッドを再作成し、あなたがしたい任意の文字を追加する必要があります許可する。これを達成する方法の例については、Creating Core System Classesを参照してください。

ただし、不要なセキュリティホールを開く可能性があるので、これに注意する必要があります。既存の検証に合格するようにフォームを書き直す方がよいでしょう。

編集:This articleは、Inputクラスを拡張することによって、上記の問題と解決策の両方を記述します。

検索有する、以下の記事もこれは同じ問題を解決するためになされる方法を示し、ここで[OK]を

+0

フォームメソッドはありません。投稿方法はありません。 – osos

+0

申し訳ありませんが、私は本当にエラーメッセージを正しく読まないようになった 'permitted_uri_chars'と言ったようにあなたの質問を誤解しました。これはconfig.phpファイルではなくInputクラスから来ています –

+0

これで私に教えてくれてありがとう、私は何をしなければならないかを知っていました – osos

7

は私の答えである

あなたは最初に行く必要がありますシステム/コア/ Input.phpにしては、呼び出された関数を探し

_clean_input_keys($str) 

私だったので、次の

よう $ strのを追加したときに、ここで禁止されている文字が何であるかを知りません
if (! preg_match("/^[a-z0-9:_\/-]+$/i", $str)) 
    { 
     exit('Disallowed Key Characters.'.$str); // HERE 
    } 

あなたは問題地雷だった原因を正確に文字を取得します「)」ので、あなたは、次のいずれかを実行する必要が@Benスウィンバーンは

言ったように、HTMLから禁止文字を削除するか、それを許可

希望を助けること

関連する問題