私は、ユーザーがスペースやプラス記号を含むデータを入力することが期待されるいくつかのフォームを持つ Web アプリケーションに取り組んでいます。
データは通常、GET
リクエストを介して送信されます。またはContent-Type ヘッダーをPOST
含むリクエストを介して。application/x-www-form-urlencoded
Perl のモジュールからVars()
とのどちらかを使用してみましたが、どちらの方法も符号をスペースに変換することを主張しています。param
CGI
+
モジュールは符号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"
その変数の値を取得することです。