※ ChatGPTを利用し、要約された質問です(原文:フォームデータのcsv保存について)
フォームデータのcsv保存について
このQ&Aのポイント
フォームに入力されたデータをcsvファイルに保存するcgiを作成しましたが、項目2以降のデータが正しく保存されていない問題が発生しています。
項目1のデータは正しく取得できていますが、項目2以降のデータが4294967295という数字で保存されています。
cgiのコードを確認したところ、項目2以降のデータを取得する処理が正しく行われていないことが原因のようです。
お世話になります。フォームに入力されたデータを
csvファイルに保存するというcgiの作成をしています。
初めてcgiを作成するので、書籍の真似をして作成した
のですが、おかしいデータが保存されてしまいます。
質問の項目数は5個で以下のとおりです
<FORM ACTION="./ans1.cgi" METHOD="POST">
名前:<br>
<input type="text" name="name" size=30> <br>
1:<br>
<input type="text" name="a1" size=30> <br>
2:<br>
<input type="text" name="a2" size=30> <br>
3:<br>
<input type="text" name="a3" size=30> <br>
4:<br>
<input type="text" name="a4" size=30> <br>
<INPUT type="submit" value="送 信">
<INPUT type="reset" value="リセット"> <BR>
</FORM>
cgiの中身です。
#! /usr/bin/perl
require './cgi-lib.pl';
$answer = 5;
$ansfile = "kotae.csv";
&ReadParse(*in);
$name = $in{'name'};
for($n = 1; $n <= $answer; $n++ ) {
$a[$n] = $in{"a$n"};
}
open (FILE,">>$ansfile");
flock (FILE,2);
print (FILE "\"", $name);
for($i = 1; $i <= $answer; $i++ ) {
$a[$i] = ~ s/\"/""/g;
print FILE "\"\,\"";
print FILE $a[$i];
}
print FILE "\"\n";
flock(FILE,8);
close(FILE);
print "Content-type: text/plain\n\n";
print "<HTML><BODY>\n";
print "tesuto";
print "</body></HTML>";
exit;
csvファイルの中身を見ると、最初の列には、項目1で
記入したデータが入ってますが、項目2以降
は4294967295と数字が入ってます。どうも1個目の回答
欄のデータはちゃんと取得されてるのですがそれ以降の
が取得されていないみたいです。
よろしくお願いいたします。
お礼
ありがとうございました。出来ました