0

クライアントからポストデータを取得する C++ を使用して CGI スクリプトをプログラミングしています。このようなポストデータがある場合

sam=1&sam2=3&sam5=65

C ++のマップオブジェクトに各ペアを配置するオプションを解析する手順は何ですか?

'&' で値をベクトル配列に分割し、ベクトル配列の各エントリを '=' で分割してマップ オブジェクトに配置することを考えましたが、どう思いますか? また、不正な形式の投稿データを処理するために何ができるかを知りたいです。

4

1 に答える 1

0

最初の 2 つの手順は正しいです。名前と値のペアを で&区切り、名前と値を で区切ります=。ただし、マップに挿入する前に、名前を URL デコードし、値を URL デコードする必要があります

たとえば+、名前または値の a はスペースに変更する必要があります。A%2Bはスペースに置き換える必要があります。%3D等号付きのA。

不正な投稿データに関しては、何を不正と見なすかはアプリケーションによって異なります。のようなあいまいな値を確認する必要がありますx=2=3。値2=3または3? また、欠落している名前 ( など) を確認でき=3ます3

ただし、残りは、特定のアプリケーションで何が合法であるかの詳細次第です。

于 2012-09-04T22:35:12.243 に答える