私は、ユーザーがスペースやプラス記号を含むデータを入力することが期待されるいくつかのフォームを持つ 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"その変数の値を取得することです。