3

私は、ユーザーがスペースやプラス記号を含むデータを入力することが期待されるいくつかのフォームを持つ Web アプリケーションに取り組んでいます。

データは通常、GETリクエストを介して送信されます。またはContent-Type ヘッダーをPOST含むリクエストを介して。application/x-www-form-urlencoded

Perl のモジュールからVars()とのどちらかを使用してみましたが、どちらの方法も符号をスペースに変換することを主張しています。paramCGI+

モジュールは符号CGIを保持するメカニズムを提供しますか? +または、入力を捨てCGIて手動で解析する必要がありますか?STDIN

:
大量のフォーム (100 以上) があり、CGI の前処理が集中ユーティリティ ライブラリで行われているため、クライアント側のアプローチよりもサーバー側のソリューションにかなり偏っています (つまり、 、何百もの場所にJSノイズを追加するよりも、前処理コードで一度問題に対処したいです)。

提供されたヘルプに事前に感謝します。

:
コメントで要求されているように、問題を引き起こすコードの (簡略化された) サンプルを次に示します。

HTML

<form action="/cgi-bin/some-script.pl">
    <input name="some_field" value="1 + 1 is 2">
    <input name="submit" type="submit" value="Submit">
</form>

パール

use CGI;
my $some_variable = CGI::param('some_field');

デフォルト値でフォームを送信し、サーバー側コードを実行すると、$some_variableの値は"1 1 is 2" (1 の間に 3 つのスペースがあり、SO サイトまたはブラウザーのいずれかがそれらを 1 つのスペースに折りたたんでいる可能性があります)です。望ましい結果は、"1 + 1 is 2"その変数の値を取得することです。

4

1 に答える 1