新規記事投稿 フォロー記事投稿 記事のキャンセル
From: 三葉工房の管理者 <nature-create@amy.hi-ho.ne.jp>
Subject: とても信じられないDeleteルーチンの奇蹟的なつまづき!
Date: 1999/01/22 16:40:52

又,質問して済みません。
毎日,これからの三葉工房の業務進展の為に,cgiの技術が
必要なのでperlを研究しています。

perlの現実は,よく確かめたこれでこのプログラムは,確実にまちがいなく
実行されるぞ! 実行を試みたが100%実行確実のプログラムが実行されない
のが当り前な事だと思います。

そして,今回もこの様な事で,私なりに精一杯,実行成功の確かめられている
ダウンロードした自動リンクプログラム(N.S.E2.75)の記事削除のルーチンと
自分の記述した同じ目的のルーチンを皿の様に確かめ続けた上での,質問です。

 その様に精一杯どこが可笑しいのかを確かめましたが,可笑しい所は,どこにも
ありません。本来ならば,100%実行成立のルーチンですが,奇蹟的に実行不正立
なのです。そのルーチンをN.S.Eの場合と,自分の場合の記事削除のルーチンを以下
にコピーします。

N.S.E2.75の記事削除のルーチン(N.S.E2.75は,http://www.cinovi.com/cgitips/から
ダウンロード可能)
$in{'Cat'}には,スポーツ,趣味娯楽等の自動リンクのカテゴリ名が入る。$in{'Cat'}.dat
で書き込みファイル名です。
(if ($in{'action'} eq "delete") {&delete;}		# 選択された項目を削除)
の条件分岐文で,sub deleteに進む)
***************************************************************
sub del_view {#修正するファイルの選択

	&PrintHeader;

print <<"EOF";
<html><head><title>修正するファイルの選択</title></head><body background="http://www.geocities.co.jp/SiliconValley-PaloAlto/6004/kkoyaku/ocahr.gif" text=#000000>
<p><center><img src="http://www.geocities.co.jp/SiliconValley-PaloAlto/6004/mikoo/mitsubascp.gif"></center><p><form method="get" action="search.cgi">
<input type=hidden name="action" value="delete">  
<input type=hidden name="Cat" value="$in{'Cat'}">
EOF
	open (DB, "$BaseDir/$in{'Cat'}.dat");
        @shadow = <DB>;
	close DB;

	foreach $shadow (@shadow) {
	@Temp = split (/&&/, $shadow);
        print "<input type=radio name=\"target\" value=\"$Temp[0]$Temp[2]$Temp[5]\">\n";

	print "$Temp[1]:<a href=\"$Temp[2]\">$Temp[2]</a><br>\n";
	}

print <<"EOF";
<p>
<input type=submit value="削 除">
</form>
</body></html>
EOF
exit;
}

#------------------------------------------#
sub delete { # 選択した項目の削除

	&PrintHeader;

print <<"EOF";
<html>
<head><META HTTP-EQUIV=REFRESH CONTENT="4;URL=$BaseURL/">
<title>作業終了</title></head>
<body background="http://www.geocities.co.jp/SiliconValley-PaloAlto/6004/kkoyaku/ocahr.gif" text=#000000>
EOF

	$Target = $in{'target'};

	open (DB, "$BaseDir/$in{'Cat'}.dat");
		@lines = <DB>;
	close (DB);

	open (DB, ">$BaseDir/$in{'Cat'}.dat");
		foreach $edit (@lines) {
				@Temp = split (/&&/, $edit);
				if ("$Temp[0]$Temp[2]$Temp[5]" ne "$Target") {
				print DB "$edit";
				}
			}
	close (DB);
print <<"EOF";
作業が終了しました。<br>
<br>
<a href="$BaseURL/">戻る</a><p>
</body></html>
EOF
exit;
}

そして,以下のが自分の記事削除ルーチンです。こちらの$in{'Cat'}には,書き込みファイル名です。
(if ($in{'action'} eq "delete") {&cutplay;}		
の条件分岐文で,sub cutplayに進む)
***************************************************************
sub passck{
open (CAT, "$BaseDir/$newmg") || die "ファイルが開きません!\n,
何処かの構文が間違っています!";
@Catdata=<CAT>;
close CAT;
$caturl = @Catdata;
print "Content-type: text/html\n\n";
print "<html>\n";
print "<head><title>パスワードが一致しました。</title><head></head>\n";
print "<body bgcolor=\"#66ff00\">\n";
print "<center>\n";
print "<font color=\"#550000\" size=6><b>パスワードが一致しました。</b></font>\n";
print "<p>\n";
print "<font color=\"#000033\" size=5><b>パスワードが一致しました。消去したい記事にチェックを入れてサブミットして下さい。</b></font>\n";
print "<p>\n";
print "<a href=\"golygth.cgi\">\n";
print "<font color=\"#333300\" size=5><b>掲示板へ戻る</b></font>\n";
print "</a>\n";
print "</center>\n";
print "<hr size=5>\n";
print "<font color=\"#000066\" size=5><b>現在の掲載記事($caturl 件)</b></font>\n";
print "<hr size=5>\n";
print "<form method=POST action=\"golygth.cgi\">\n";
print "<input type=hidden name=\"action\" value=\"delete\">\n";
print "<input type=hidden name=\"Cat\" value=\"$newmg\">\n";
if($enty eq "0"){@Catdata=reverse(@Catdata);}
foreach $rematch(@Catdata){
@catchin=split(/&&/, $rematch);
print "<input type=radio name=\"target\" value=\"$catchin[0]$catchin[2]$catchin[3]\">\n";
print "<a href=\"mailto:$catchin[0]\">\n";
print "<font color=\"#006600\" size=4>$catchin[1]</font>\n";
print "</a>\n";
print "<font color=\"#000066\" size=3>:$catchin[2]</font>\n";
print "<br>\n";
print "<a href=\"$catchin[3]\" target=\"new\">\n";
print "<font color=\"#990066\" size=3>$catchin[4]</font>\n";
print "</a>\n";
print "<br>\n";
print "<font color=\"#330000\" size=3>$catchin[5]</font>";
print "<hr size=5>\n";
}

print "<center>\n";
print "<input type=submit name=\"submit\" value=\"削除実行\">\n";
print "</form>\n";
print "</center>\n";
print "</body>\n";
print "</html>\n";

exit;}
sub cutplay{
print "Content-type: text/html\n\n";
print <<"ALPS";
<html><head><title>削除処理完了</title><meta http-equiv="refresh" content="5; url=$NEWURL "></head><body bgcolor=\"#ff0000\"><p><font color=\"aqua\" size=4><b>
$in{'target'}</b></font>
ALPS


open (CAT, "$BaseDir/$in{'Cat'}") || die "ファイルが開きません!\n,
何処かの構文が間違っています!";
@lines = <CAT>;
close (CAT);

open (CAT, ">$BaseDir/$in{'Cat'}") || die "ファイルが開きません!\n,
何処かの構文が間違っています!";
foreach $ereize (@lines){
@catchin=split(/&&/, $ereize);
if("$catchin[0]$catchin[2]$catchin[3]" ne $in{'target'})
{print CAT "$ereize";}}
close (CAT);
print <<"ALPS";

<center><font color=\"#00ff00\" size=6><b>削除処理完了</b></font><p>
<font color=\"#ffff00\" size=5><b>彼方のチェック為た記事を削除しました。</b></font><p><a href=\"golygth.cgi\"><font color=\"#ccffff\" size=5><b>掲示板へ戻る</b></font></a></center></body></html>
ALPS
exit;}

いかがでしょうか,特にそれぞれサブルーチン2つに分かれていますが,特に下の記事の
削除を実行するプログラム,ファイルハンドル名は,N.S.Eのと,自分のとでは,違いますが
プログラムの書き方は,全く同じです。全く同じなのに関わらず1つ違う点がございます。
それが,N.S.Eでは,in{'target'}のラジオボタンがチェックされたのが,消去されますが
自分のは,チェックしたのも消去されずに残ってしまってる所です。

 何故,N.S.Eの書き方と全く同じなのに私のスクリプトでは,記事消去が実行出来ないのでしょうか。
何度も確認して,可笑しい所や構文ミスは,全く見つかりませんでした。それで,実行
出来ない事事態あまりにも不自然過ぎて納得行きません。
もちろん,問題スクリプトも下にコピーします。
御忙しい所,たびたびで済みませんが,どうかアドバイス宜しくお願いします。

問題スクリプトgolygth.cgi

#!/usr/local/bin/perl
$|=1;
require './jcode.pl';
($sec,$min,$hour,$day,$mon,$year,$wday)=localtime(time);
$mon++;
$seirei = ($year+1900);
$wareki = ($year-88);
$BaseDir = "$ENV{'HOME'}/html/search";
$NEWURL= "http://www.amy.hi-ho.ne.jp/cgi-bin/user/nature-create/golygth.cgi";
$newmg = "newmg.dat";
@week = ("日","月","火","水","木","金","土");
$yobi = $week[$wday];
if($man<10){$mon="0$mon";}
if($day<10){$day="0$day";}
if($hour<10){$hour="0$hour";}
if($min<10){$min="0$min";}
if($sec<10){$min="0$sec";}
$date ="$seirei年(平成$wareki年)$mon月$day日  $yobi曜日$hour時$min分$sec秒";
#最高コメント数制限
$maxcment = "105";
#最低コメント数制限
$remaxcment = "52";
#過剰コメント不足の最大数値
$mostsmall = "28";
#過剰コメント超過の最小数値
$mostbig = "128";
#過剰コメント不足の差不足設定エラー数値下限
$ersnall = ($remaxcment-20);
#過剰コメント超過の差不足設定エラー数値上限
$erbig = $maxcment+20;
$dbsmall = $remaxcment-$ersnall;
$dbbig = $erbig-$maxcment;
if($mostsmall>$ersnall){print <<"MOTER";
Content-type: text/html

<html><head><title>過剰コメント不足エラー</title></head>
<body bgcolor=\"#ccffff\">
<center><font color=\"#550000\" size=6><b>過剰コメント不足エラー</b></font></center><p><font color=\"#000055\" size=5><b>過剰コメント不足の設定値が$mostsmallと最低基準値$remaxcmentとの差が$dbsmall以内です。</b></font><p><center><font color=\"#663300\" size=5><b>適切な数値に書き直して下さい!</b></font></center></body></html>
MOTER
exit;
}
if($mostbig<$erbig){print <<"REMOTER";
Content-type: text/html

<html><head><title>過剰コメント超過エラー</title></head>
<body bgcolor=\"#ffff99\">
<center><font color=\"#550000\" size=6><b>過剰コメント超過エラー</b></font></center><p><font color=\"#000055\" size=5><b>過剰コメント超過の設定値が$mostbigと最大基準値$maxcmentとの差が$dbbig以内です。</b></font><p><center><font color=\"#663300\" size=5><b>適切な数値に書き直して下さい!</b></font></center></body></html>
REMOTER
exit;
}

#1を選択で新規記事は,リスト最上段,それ以外は,リスト最下段
$enty ="1";
#一度に掲載する記事数
$maxmsg ="4";
#パスワード名
$password="jgtyhj88";




if ($ENV{'REQUEST_METHOD'} eq "POST")
{
read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});
}
else{$buffer = $ENV{'QUERY_STRING'};}
@pairs = split(/&/, $buffer);


foreach $pair (@pairs)
{
($name, $value) = split(/=/, $pair);

$value =~ tr/+/ /;
$value =~ s/  / /g;
$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
$value =~s/<!--(.|\n)*-->//g;
$value =~s/\*//g;
$value =~ s/</&lt;/g;
$value =~ s/>/&gt;/g;
$value =~ s/\r\n/<br>/g;
$value =~ s/\n//g;
$in{$name} = $value;
}
&jcode'h2z_sjis(*value,'sjis');
&jcode'convert(*value,'sjis');

if($in{'action'} eq "delete"){
&cutplay;

}
if($in{'submit'} eq "仮実行"){
&erpass;
&passck;
}
if ($in{'submit'} eq '登録') {
&check;
&toppage;}


else {&toppage;}





sub toppage{
if($in{'action'} eq "repage"){
&rever;}
if($in{'action'} eq "passch"){&passck;}
open (SSTBOOK, "$BaseDir/$newmg") ||die "ファイルが開きません!\n,
何処かの構文が間違っています!";
@Data=<SSTBOOK>;
close SSTBOOK;
$cnturl = @Data;

print "Content-type: text/html\n\n";

print "<html>\n";
print "<head>\n";
print "<title>進性能掲示板(V-up.スクリプト)</title>\n";
print "</head>\n";
print "<body bgcolor=\"orange\">\n";
print "<p>\n";
print "<table bgcolor=\"black\" border=5>\n";
print "<tr>\n";
print "<th>\n";
print "<font color=\"orange\"size=5>\n";
print "<b>進性能掲示板(V-up.スクリプト)</b>\n";
print "</font>\n";
print "</th>\n";
print "</tr>\n";
print "<tr>\n";
print "<td>\n";
print "<font color=\"yellow\"size=4>(注意!)此の試験実行掲示板のコメント文字数は,$remaxcment文字以上$maxcment文字以内の範囲に制限されていますので,その範囲内の文字数で御記入願います。<br>
現在時刻:$date</font>\n";
print "</td>\n";
print "</tr>\n";
print "<tr>\n";
print "<th>\n";
print "<center>\n";
print "<a href=\"/nature-create/search/index.html\">\n";
print "<font color=\"yellow\"size=4>MISTUBA SEARCHPAGE</font>\n";
print "</a>\n";
print "</center>\n";
print "</th>\n";
print "</tr>\n";
print "<tr>\n";
print "<th>\n";
print "<center>\n";
print "<a href=\"/cgi-bin/user/nature-create/golygth.cgi?action=repage\">\n";
print "<font color=\"yellow\"size=4>変更.削除</font>\n";
print "</a>\n";
print "</center>\n";
print "</th>\n";
print "</tr>\n";
print "</table>\n";
print "</center>\n";
print "<p>\n";
print "<form method=POST action=\"golygth.cgi\" >\n";
print "<p>\n";
print "<table bgcolor=\"#ffcc99\" border=5>\n";
print "<tr>\n";
print "<th>\n";
print "<font color=\"navy\"size=4>\n";
print "<b>登録者名</b>\n";
print "</font>\n";
print "</th>\n";
print "</tr>\n";
print "</table>\n";
print "<p>\n";
print "<input name=\"yourname\" size=45>\n";
print "<p>\n";
print "<table bgcolor=\"#ffcc99\" border=5>\n";
print "<tr>\n";
print "<th>\n";
print "<font color=\"navy\"size=4>\n";
print "<b>Eメールアドレス</b>\n";
print "</font>\n";
print "</th>\n";
print "</tr>\n";
print "</table>\n";
print "<p>\n";
print "<input name=\"mail\" size=45>\n";
print "<p>\n";
print "<table bgcolor=\"#ffcc99\" border=5>\n";
print "<tr>\n";
print "<th>\n";
print "<font color=\"navy\"size=4>\n";
print "<b>登録者のホームページ名</b>\n";
print "</font>\n";
print "</th>\n";
print "</tr>\n";
print "</table>\n";
print "<p>\n";
print "<input name=\"hpagename\" size=60>\n";
print "<p>\n";
print "<table bgcolor=\"#ffcc99\" border=5>\n";
print "<tr>\n";
print "<th>\n";
print "<font color=\"navy\"size=4>\n";
print "<b>ホームページのURL</b>\n";
print "</font>\n";
print "</th>\n";
print "</tr>\n";
print "</table>\n";
print "<p>\n";
print "<input name=\"gurl\" value=\"http://\" size=60>\n";
print "<p>\n";
print "<table bgcolor=\"#ffcc99\" border=5>\n";
print "<tr>\n";
print "<th>\n";
print "<font color=\"navy\"size=4>\n";
print "<b>コメント</b>\n";
print "</font>\n";
print "</th>\n";
print "</tr>\n";
print "</table>\n";
print "<p>\n";
print "<textarea name=\"coment\" rows=4 cols=60 wrap=\"soft\"></textarea>\n";
print "<p>\n";
print "<center>\n";
print "<input type=submit name=\"submit\" value=\"登録\">\n";
print "<p>\n";
print "<input type=reset value=\"リセット\">\n";
print "</center>\n";
print "</form>\n";
print "<hr size=5>\n";
print "<center>\n";
print "<font color=\"#330066\" size=5>\n";
print "<b>此れ迄の書き込み:$cnturl件が登録されています。</b>\n";
print "</font>\n";
print "</center>\n";
print "<hr size=5>\n";
if($enty eq "0"){@Data=reverse(@Data);}
foreach $match(@Data){
@catchin=split(/&&/, $match);
print "<a href=\"mailto:$catchin[0]\">\n";
print "<font color=\"#006600\" size=4>$catchin[1]</font>\n";
print "</a>\n";
print "<font color=\"#000066\" size=3>:$catchin[2]</font>\n";
print "<br>\n";
print "<a href=\"$catchin[3]\" target=\"new\">\n";
print "<font color=\"#990066\" size=3>$catchin[4]</font>\n";
print "</a>\n";
print "<br>\n";
print "<font color=\"#330000\" size=3>$catchin[5]</font>";
print "<hr size=5>\n";
}
print "</body>\n";
print "</html>\n";
exit;}
sub rever{



print <<"MARCAR";
Content-type: text/html

<html><head><title>変更.削除ROOM</title></head>
<body bgcolor=\"#00ff00\">
<center><font color=\"#550000\" size=6><b>変更.削除ROOM</b></font></center><p>
<font color=\"#000055\" size=5><b>パスワードを御記入下さい</b></font><br>
<form method=POST action="golygth.cgi" >
<input type=text name="password" size=8 maxlangth=8><p><center><input type=submit name="submit" value="仮実行"><p><input type=reset value=\"リセット\"></form></center><p><a href="golygth.cgi"><font color=\"#663300\" size=5><b>掲示板へ戻る</b></font></a></center></body></html>
MARCAR
exit;}
sub erpass{if($in{'password'} ne "$password")
{

print <<"ERPS";
Content-type: text/html

<html><head><title>パスワードが違います!</title></head>
<body bgcolor=\"#339966\">
<center><font color=\"#550000\" size=6><b>パスワードが違います!</b></font><p>
<font color=\"#000033\" size=5><b>パスワードが違いますので,もう一度<a href=\"/cgi-bin/user/nature-create/golygth.cgi?action=repage\"><font color=\"#440000\" size=5>変更.削除</a></font>の部屋に御戻りに成り,パスワードを入れ直して下さい。</b></font><p><a href=\"golygth.cgi\"><font color=\"#333300\" size=5><b>掲示板へ戻る</b></font></a></center></body></html>
ERPS
exit;}}
sub passck{
open (CAT, "$BaseDir/$newmg") || die "ファイルが開きません!\n,
何処かの構文が間違っています!";
@Catdata=<CAT>;
close CAT;
$caturl = @Catdata;
print "Content-type: text/html\n\n";
print "<html>\n";
print "<head><title>パスワードが一致しました。</title><head></head>\n";
print "<body bgcolor=\"#66ff00\">\n";
print "<center>\n";
print "<font color=\"#550000\" size=6><b>パスワードが一致しました。</b></font>\n";
print "<p>\n";
print "<font color=\"#000033\" size=5><b>パスワードが一致しました。消去したい記事にチェックを入れてサブミットして下さい。</b></font>\n";
print "<p>\n";
print "<a href=\"golygth.cgi\">\n";
print "<font color=\"#333300\" size=5><b>掲示板へ戻る</b></font>\n";
print "</a>\n";
print "</center>\n";
print "<hr size=5>\n";
print "<font color=\"#000066\" size=5><b>現在の掲載記事($caturl 件)</b></font>\n";
print "<hr size=5>\n";
print "<form method=POST action=\"golygth.cgi\">\n";
print "<input type=hidden name=\"action\" value=\"delete\">\n";
print "<input type=hidden name=\"Cat\" value=\"$newmg\">\n";
if($enty eq "0"){@Catdata=reverse(@Catdata);}
foreach $rematch(@Catdata){
@catchin=split(/&&/, $rematch);
print "<input type=radio name=\"target\" value=\"$catchin[0]$catchin[2]$catchin[3]\">\n";
print "<a href=\"mailto:$catchin[0]\">\n";
print "<font color=\"#006600\" size=4>$catchin[1]</font>\n";
print "</a>\n";
print "<font color=\"#000066\" size=3>:$catchin[2]</font>\n";
print "<br>\n";
print "<a href=\"$catchin[3]\" target=\"new\">\n";
print "<font color=\"#990066\" size=3>$catchin[4]</font>\n";
print "</a>\n";
print "<br>\n";
print "<font color=\"#330000\" size=3>$catchin[5]</font>";
print "<hr size=5>\n";
}

print "<center>\n";
print "<input type=submit name=\"submit\" value=\"削除実行\">\n";
print "</form>\n";
print "</center>\n";
print "</body>\n";
print "</html>\n";

exit;}
sub cutplay{
print "Content-type: text/html\n\n";
print <<"ALPS";
<html><head><title>削除処理完了</title><meta http-equiv="refresh" content="5; url=$NEWURL "></head><body bgcolor=\"#ff0000\">
ALPS


open (CAT, "$BaseDir/$in{'Cat'}") || die "ファイルが開きません!\n,
何処かの構文が間違っています!";
@lines = <CAT>;
close (CAT);

open (CAT, ">$BaseDir/$in{'Cat'}") || die "ファイルが開きません!\n,
何処かの構文が間違っています!";
foreach $ereize (@lines){
@catchin=split(/&&/, $ereize);
if("$catchin[0]$catchin[2]$catchin[3]" ne $in{'target'})
{print CAT "$ereize";}}
close (CAT);
print <<"ALPS";

<center><font color=\"#00ff00\" size=6><b>削除処理完了</b></font><p>
<font color=\"#ffff00\" size=5><b>彼方のチェック為た記事を削除しました。</b></font><p><font color=\"aqua\" size=4><b>
$in{'target'}</b></font><br><font color=\"aqua\" size=4><b>$in{'Cat'}</b></font><p><a href=\"golygth.cgi\"><font color=\"#ccffff\" size=5><b>掲示板へ戻る</b></font></a></center></body></html>
ALPS
exit;}

sub check{
if ($in{'yourname'} eq "") {&noname;}
sub noname{print <<"NONAME";
Content-type: text/html

<html><head><title>名前が記入されていません!</title></head>
<body bgcolor=\"#ccff99\">
<center><font color=\"#550000\" size=6><b>名前が記入されていません!</b></font><p><font color=\"#000055\" size=5><b>名前をフォームに記入為無ければ登録出来ません。</b></font><p><table bgcolor=\"#000000\" border=5><tr><th><a href=\"golygth.cgi\"><font color=\"#ccccff\" size=5>掲示板へ戻る</font></a></th></tr><tr><th><font color=\"#00ff00\" size=5>$date</th></tr></table></center></body></html>
NONAME
 exit;
}
$smallloss = $remaxcment-$mostsmall;
$bigloss = $mostbig-$maxcment;
$wordcnt = length($in{'coment'});
$wordbit = $wordcnt/2;
$overtop = $wordbit-$maxcment;
$overdown = $remaxcment-$wordbit;
if ($wordbit>$mostbig) {print <<"MOROVER";
Content-type: text/html

<html><head><title>かなりコメント数が$overtop個もオーバーしました!</title></head>
<body bgcolor=\"\#cc0000\">
<font color=\"\#ffff66\" size=5><b>彼方の記入されたコメント数は $wordbit個で,当フォームは,基準値の$remaxcment~$maxcment個よりコメント数が$bigloss個以上も多い場合に時に当ページが出力されてしまいます。</b>
</font><p>
<font color=\"\#ccffcc\" size=5>そのコメント数は基準の$remaxcment~$maxcment個に$overtop個ものかなりのオーバーです。 </font>
</body></html>
MOROVER
exit;}
if ($wordbit>$maxcment) { print <<"OVER";
Content-type: text/html

<html><head><title>コメント数が$overtop個越えています!</title></head>
<body bgcolor=\"\#003399\">
<font color=\"\#ffff66\" size=5><b>彼方の記入されたコメント数は $wordbit個です。</b>
</font><p>
<font color=\"\#ccffcc\" size=5>そのコメント数は基準の$remaxcment~$maxcment個より$overtop個オーバーしています。</font>
</body></html>
OVER
exit;}

if($wordbit>0) {if($wordbit<$mostsmall) {print <<"MORDOWN";
Content-type: text/html

<html><head><title>かなりコメント数が$overdown個も足りません!</title></head>
<body bgcolor=\"\#110000\">
<font color=\"\#ffff66\" size=5><b>彼方の記入されたコメント数は $wordbit個で,当フォームは,基準値の$remaxcment~$maxcment個よりコメント数が$smallloss個以上も少ない時に当ページが出力されてしまいます。</b>
</font><p>
<font color=\"\#ccffcc\" size=5>そのコメント数は基準の$remaxcment~$maxcment個に$overdown個ものかなりの不足です。 </font>
</body></html>
MORDOWN
exit;}

if ($wordbit<$remaxcment) {print <<"DOWN";
Content-type: text/html

<html><head><title>コメント数が$overdown個足りません!</title></head>
<body bgcolor=\"\#660000\">
<font color=\"\#ffff66\" size=5><b>彼方の記入されたコメント数は $wordbit個です。</b>
</font><p>
<font color=\"\#ccffcc\" size=5>そのコメント数は基準の$remaxcment~$maxcment個に$overdown個不足しています。 </font>
</body></html>
DOWN
exit;}
}

elsif ($in{'coment'} eq "") {print <<"NOCMT";
Content-type: text/html

<html><head><title>コメントが記入されていません!</title></head>
<body bgcolor=\"#ffffcc\">
<center><font color=\"#550000\" size=6><b>コメントが記入されていません!</b></font><p><font color=\"#000055\" size=5><b>コメントをフォームに記入為無ければ登録出来ません。</b></font><p><table bgcolor=\"#000000\" border=5><tr><th><a href=\"golygth.cgi\"><font color=\"#ccccff\" size=5>掲示板へ戻る</font></a></th></tr><tr><th><font color=\"#00ff00\" size=5>$date</th></tr></table></center></body></html>
NOCMT
 exit;}

&resit;
sub resit{
if (-e "$BaseDir/$newmg") {
open (SSTBOOK, ">>$BaseDir/$newmg") || die "ファイルが開きません!\n,
何処かの構文が間違っています!";
print SSTBOOK "$in{'mail'}&&$in{'yourname'}&&$date&&$in{'gurl'}&&$in{'hpagename'}&&$in{'coment'}\n";
close SSTBOOK;}

#掲載メッセージの処理
if (-e "$BaseDir/$newmg") {open (NEW, "$BaseDir/$newmg") || die "ファイルが開きません!\n,
何処かの構文が間違っています!";
@lines = <NEW>;
close NEW;}
unshift(@lines,"$in{'mail'}&&$in{'yourname'}&&$date&&$in{'gurl'}&&$in{'hpagename'}&&$in{'coment'}\n");
splice(@lines,$maxmsg);
open (NEW, ">$BaseDir/$newmg") || die "ファイルが開きません!\n,
何処かの構文が間違っています!";
flock(NEW,6);
foreach(@lines){
print NEW;}
close NEW;
print <<"REPLAY";
Content-type: text/html

<html><head><title>$in{'yourname'}さん:書き込みを御受け致しました。</title><meta http-equiv="refresh" content="5; url=$NEWURL "></head>
<body bgcolor=\"\#cc66ff\">
<font color=\"\#660000\" size=5><b>$in{'yourname'}さん,彼方の記入なされたコメント数は,$wordbit個でコメント数規定に合致しました。</b></font><br><font color=\"\#ffff66\" size=5><b>それに伴い書き込みを御受け致しました。どうもありがとうございました。</b>
<p>
<font color=\"\#ccffcc\" size=5>御帰りのページは<a href=\"$NEWURL \">こちら</a>でございます。</font>
</body></html>
REPLAY
exit1;}
exit;}
__END__