第四章:フォームの利用(2)
この章では、POST方式でのフォームデータ取得方法を説明します。POST方式はGET方式と違い、大量のデータを扱うことが出来ます。POST方式でデータを送信するためにはFORMタグにMETHOD="POST"と記述します。POST方式では、”標準入力ストリーム”を用いてデータの送受信を行います。データを受信するためには、標準入力から読みとります。ただし、ストリームがファイルの終わりで終了しているとは限らないので、環境変数CONTENT_LENGTHに格納されているデータ長分だけ読みとります。取得されたデータはエンコードされているので、第三章と同じ方法でデコードしてください。以下に、標準入力ストリームからのデータ取得方法の例を示します。
int ictlength;
char *query,ctlength;
ctlength = getenv("CONTENT_LENGTH");
ictlength = atoi(ctlength);
if((query = malloc(ictlength + 1)) == NULL){
puts("Could not allocate memory !");
exit(1);
}
if((fread(query,ictlength,1,stdin)) != 1){
puts("Could not read stdin !");
exit(1);
}
query[ictlength] = '\0';
この後、queryをデコード、分割し実際の利用できる形までもっていきます。受け取ったデータのフォーマットもGET方式の場合と変わらないので、第三章を参考にしてください。
□次の章へ