宇都宮さん、
ブラウザがLocationヘッダで指定した URL にすぐアクセスするからでしょう。
Locationヘッダを出力するのをやめればいいはずです。
ただし、それでもたぶんファイルの同時書き込みの問題は残ります。
お忙しいところお手数ですがよろしくお願いいたします。
下記のプログラムを作成したのですが、httpd上では問題なく
動きますが、サーバ上ではファイルが開けないか、書き込みが
出来てないような気がします。関係するファイルのパーミッション
は問題ないと思います。初期設定が出来てないのでしょうか。
フォームから入力して送信しますと2行目のview.cgiは出力され
ますが、入力したデータが表示されません。なにとぞよろしく
お願いいたします。
#!/usr/local/bin/perl
print "Location: http://www2.dokidoki.ne.jp/akadaki/view.cgi/\n\n";
require "cgi-lib.pl";
require "jcode.pl";
$year = localtime;
&ReadParse;
$name = $in{"name"};
$mail = $in{"mail"};
$comment = $in{"comment"};
&jcode'convert(*name,"sjis");
&jcode'convert(*comment,"sjis");
$datafile = "visitor.txt";
$tempfile = "temp";
open(TMP,">$tempfile");
open TMP or die ("$tempfile が開けません。\n");
print TMP "<HR>";
print TMP "投稿日$year\n";
print TMP "<DT><A HREF=\"mailto:$mail\">$name</A>\n";
print TMP "<DD>$comment\n";
open(DATA,$datafile);
open DAT or die ("$datafile が開けません。\n");
while (<DATA>) {
print TMP $_;
}
close(DATA);
close(TMP);
rename($tempfile,$datafile);
print "Content-type: text/html\n\n";
print "<HTML>\n<HEAD>\n<TITLE>Written.</TITLE>\n</HEAD>\n";
print "<BODY>\n<H1>データを書き込みました。</H1>\n";
print "書き込みありがとうございました。\n";
print "</BODY>\n</HTML>\n";