1

私はこの問題に何時間も取り組んできました。テキストエリアのあるフォームがあります。nicEdit texteditor を使用します。ユーザーにコンテンツに何らかのスタイルを追加してもらいたいので、テキストエリアを置き換えて、優れたテキスト エディターを表示します。

私は codeIgniter (PHP) を使用し、form_helper を使用してフォームを作成します。また、ss-validation には form_validation を使用し、cs-validation には jquery 検証を使用します。

送信をクリックすると、フォームは一見問題なく送信されます。これは、私がフィドラー (http ロガー) を使用していて、テキスト エディターによって適切な html タグがラップされたテキストが表示されるためです。

しかし、ビューで @_pots データを取得すると、どういうわけかタグの一部が削除されました。

フィドラーが HTTP 呼び出しと送信されたフォーム データをトレースする方法 (正しいようです)

Hello SO, <br><br>
<span style="font-weight: bold;">the following line should be bold</span><br><br>
<span style="font-style: italic;">the following line should be italic</span><br><br>
<span style="text-decoration: underline;">the following line should be underlined</span><br>

ビューと print_r で html がどのように見えるかは、@_post データから得られます

Hello SO,<br><br>
<span bold;"="">the following line should be bold</span><br><br>
<span italic;"="">the following line should be italic</span><br><br>
<span underline;"="">the following line should be underlined</span><br>

どういうわけか、データを取り戻すと、 style="font-weight が削除されます

$_post は特殊文字で何かをしますか?!?! 誰かがこれで同様の問題を経験しましたか? すべての応答は大歓迎です。

4

1 に答える 1

0

Codeigniter から CI_Security クラスを拡張し、次の行をコメント/削除/変更する必要があります。

/*
if(in_array($_SERVER['REQUEST_URI'],$allowed))
        {
            $evil_attributes = array('on\w*', 'xmlns');
        }
        else
        {
            $evil_attributes = array('on\w*', 'style', 'xmlns');
        }
*/
于 2012-05-17T21:42:26.397 に答える