【b.cgiの編集履歴】
G-System
/ b.cgi
■キーワード内容
#!/usr/bin/perl ######################################################### #■概要:メッセージボックスhtml出力 ######################################################### require 'cgi-bin/lib/util.pl'; require 'cgi-bin/lib/common.pl'; require 'cgi-bin/lib/default.pl'; &parseInput(); &default(); ################################################################## #◆初期設定 $ProgramName = 'b.cgi'; $SaveDir = 'cgi-files'; $in{'No'} = $in{'n'}; $Case = $in{'Case'}; $G_ID = $in{'G_ID'}; $NowLine = 1; $MaxLine = 10; $NowPage = 1; $MaxPage = 10; ################################################################## #◆ユーザNoが空の場合メッセージボックス入り口出力 if($in{'No'} eq ''){ if($in{'G_ID'} eq ''){ $HTML .= &simpleHeader("メッセージボックス入り口"); $HTML .= "ここで自分のG-IDを入力すると自分専用のメッセージボックスに入室できます。 "; $HTML .= "<form action='$ProgramName' method='post'>"; $HTML .= "■G-ID "; $HTML .= "<input type='text' name='G_ID' maxlength='12' size='16'> "; $HTML .= "<hr color='#FFFFFF' size='1'>"; $HTML .= "<input type='submit' value='入室'>"; $HTML .= &simpleFooter(); print $HTML; exit; }else{ $in{'No'} = &checkG_ID($in{'G_ID'}); } } ################################################################## #◆表示区分引数調整とチェック if($Case eq ''){ $Case = 'all'; } if(!($Case eq 'all' || $Case eq 'msg' || $Case eq 'self' || $Case eq 'mmf' || $Case eq 'ma3' || $Case eq 'ma5' || $Case eq 'upl' || $Case eq 'uploadfile' || $Case eq 'public' || $Case eq 'private' || $Case eq 'dlhistory')){ &Error("Caseの値が不正です。"); } ################################################################## #◆htmlファイル名設定 if($in{'G_ID'} eq '' || $Case eq 'all'){ $HtmlName = $in{'No'}; }else{ $HtmlName = $in{'No'}.'-'.$in{'G_ID'}; } ################################################################## #◆カウントアップ $AccessCount = &CounterPlus("$USRCNT/access/$in{'No'}.dat"); ################################################################## #◆更新判定とユーザ情報展開 $FilePath = "$SaveDir/user/html_messagebox/$Case/$HtmlName.html"; #□メッセージボックスが一時間更新されていなかった場合 if( !(-e "$FilePath") || substr(&getLocalTime(),0,10) != substr(&getFileLastUpdate($FilePath),0,10)){ #□ユーザNo存在チェック &checkNo($in{'No'}); #□ファイル変数展開 &splitFileData('USRMAS',$in{'No'}); &splitFileData('USRMBI',$in{'No'}); &splitFileData('USRMSG',$in{'No'}); #□メッセージボックスhtmlを生成 &makehtml(); } print "Location: $BaseURL/cgi-files/user/html_messagebox/$Case/$HtmlName.html\n\n"; exit; ################################################################## #◆メッセージボックスhtml生成 sub makehtml{ #□項目設定 $Waon = &getName($Case); if($BoxTitle eq ''){ $BoxTitle = "$Name★メッセージボックス"; } #□html色と壁紙設定 $BackColor = '#000044' unless $BackColor; $TextColor = '#EEFFFF' unless $TextColor; $LineColor = '#FFFFFF' unless $LineColor; $TitleColor = '#EEFFFF' unless $TitleColor; $LinkColor = '#AADDFF' unless $LinkColor; $ALinkColor = $LinkColor if $LinkColor; $ALinkColor = '#88AAFF' unless $LinkColor; $VLinkColor = $LinkColor if $LinkColor; $VLinkColor = '#88AAFF' unless $LinkColor; # $BackGround = $BGURL if($BackColor eq '' && $TextColor eq '' && $LinkColor eq '' && $LineColor eq '' && $TitleColor eq ''); #□メッセージボックスデータ読み込み if(-e "$USRMBX/$in{'No'}.dat"){ @Record = &fread("$USRMBX/$in{'No'}.dat"); @Record = reverse(@Record); $Total = $#Record + 1; }else{ $Total = 0; } $FilePath = "$SaveDir/user/html_messagebox/$Case/$HtmlName.html"; open(HTML, "> $FilePath") || &Error("$FilePathを作成できません"); $HTML = &html_Header(); $HTML .= "<a href='../../../../b.cgi?n=$in{'No'}&Case=$Case'>更新</a> <a href='../../../../cgi-bin/user/setup.cgi?No=$in{'No'}'>楽屋入口</a> "; $HTML .= "<a href='#w'>書込</a> <a href='#l'>メッセージ一覧</a> "; #□ヘッダメッセージ if($Header ne ''){ $HTML .= "<hr color='$LinkColor'>"; $HTML .= "$Header "; $HTML .= "<hr color='$LinkColor'>"; $HTML .= " "; } $HTML .= "<a name='l'>"; $HTML .= "<hr color='$LineColor'>"; $HTML .= "<font color='$TitleColor'>メッセージ一覧</font>"; $HTML .= "<hr color='$LineColor'>"; #□メッセージデータが存在する場合 if($Total != 0){ #□メッセージ出力ループ foreach $Record (@Record){ ($MNo,$HCode,$HCode2,$WTime,$RNo,$RName,$SNo,$SName,$Message,$AddItem1,$AddItem2,$AddItem3,$ip,$Browser) = split(/\t/,$Record); #□変数調整 $SName =~ s/ //; $AddItem1 =~ s/ //; #□1ページの最大件数分出力した場合 if($NowLine > $MaxLine || length($HTML) > 3500){ $NextPage = $NowPage + 1; $HTML .= "<a href='$HtmlName-$NextPage.html'>次のページ></a> "; $HTML .= &html_Footer(); print HTML $HTML; close(HTML); #□ページ数カウント $NowPage++; #□最大ページ分出力した場合、ループ脱出 if($NowPage > $MaxPage){ last; } open(HTML, "> $SaveDir/user/html_messagebox/$Case/$HtmlName-$NextPage.html"); $HTML = &html_Header(); $NowLine = 0; } #□アップロードファイル関連の場合 if($HCode eq '3' || $HCode eq '4'){ &splitFileData('UPLFIN',$AddItem1) || next; #&Error("アップロードファイル不変情報データを読み込めません $AddItem1"); if($Extension eq 'mmf'){ $Mark = '♪'; }elsif($Extension eq 'jpg' || $Extension eq 'gif'){ $Mark = '◆'; } } #□変数調整(共通出力用) if($SNo ne ''){ $SName = "<a href='../../../../b.cgi?n=$SNo'>$SName</a>"; } if($RNo eq $SNo){ $SName = "□[$SName]"; }else{ $SName = "■[$SName]"; } if($HCode2 eq 'self' || $HCode2 eq 'mmf' || $HCode2 eq 'ma3' || $HCode2 eq 'ma5' || $HCode2 eq 'public'){ $LogName = "&LogName=log$HCode2"; } $DE = "<a href='../../../../cgi-bin/user/delete.cgi?MNo=$MNo&No=$RNo$LogName'>DE</a>"; #□通常メッセージ if($HCode eq '1' && ($Case eq 'msg' || $Case eq 'all')){ if($AddItem1 eq ''){ $HTML .= "$SName$DE "; }else{ $HTML .= "$SName "; $HTML .= "[$AddItem1]$DE "; } $Flag = '1'; } #□着メロ感想 if($HCode eq '2' && ($Case eq $HCode2 || $Case eq 'all')){ $HTML .= "$SName "; $HTML .= "[<a href='../../../../n.cgi?n=$AddItem1'>♪$AddItem2/$RNameさん</a>]$DE "; $Flag = '1'; } #□公開ファイル一覧 if($Case eq 'public' || $Case eq 'all'){ if($HCode eq '3' && $HCode2 eq 'public'){ $HTML .= "$SName "; $HTML .= "[<a href='../../../../f.cgi?n=$AddItem1'>$Mark$AddItem2/$RNameさん</a>]$DE "; $Flag = '1'; } if($HCode eq '4' && $HCode2 eq 'public'){ $HTML .= "$SName "; $HTML .= "[<a href='../../../../f.cgi?n=$AddItem1'>$Mark$AddItem2/${Extension}File(${FileSize}Byte)</a>]$DE "; $Flag = '1'; } } #□非公開ファイル一覧 if($Case eq 'private' && $in{'G_ID'} eq &checkNo($in{'No'})){ if($HCode eq '3' && $HCode2 eq 'private'){ $HTML .= "$SName "; $HTML .= "[<a href='../../../../f.cgi?n=$AddItem1'>$Mark$AddItem2/$RNameさん</a>]$DE "; $Flag = '1'; } if($HCode eq '4' && $HCode2 eq 'private'){ $HTML .= "$SName "; $HTML .= "[<a href='../../../../f.cgi?n=$AddItem1'>$Mark$AddItem2/${Extension}File(${FileSize}Byte)</a>]$DE "; $Flag = '1'; } } #□アップロードファイル一覧 if($Case eq 'uploadfile' && $in{'G_ID'} eq &checkNo($in{'No'})){ if($HCode eq '4'){ $HTML .= "$SName "; $HTML .= "[<a href='../../../../f.cgi?n=$AddItem1'>$Mark$AddItem2/${Extension}File(${FileSize}Byte)</a>]$DE "; $Flag = '1'; } } #□着メロDL履歴 if($Case eq 'dlhistory' && $in{'G_ID'} eq &checkNo($in{'No'})){ if($HCode eq '5'){ $HTML .= "$SName "; $HTML .= "[<a href='../../../../c.cgi?n=$AddItem1&G_ID=$in{'G_ID'}'>♪$AddItem2/$AddItem3</a>]$DE "; $Flag = '1'; } } #□メッセージ出力が行われた場合 if($Flag eq '1'){ if($Message ne ''){ $HTML .= "$Message "; } $HTML .= "$WTime "; $HTML .= "<hr size='1'>"; $NowLine++; $Flag = '0'; } } } $HTML .= &html_Footer(); print HTML $HTML; close(HTML); } ################################################################### #▼htmlヘッダ出力 #(引数:タイトル) ################################################################### sub html_Header{ my($HTML); $HTML .= "<html>"; $HTML .= "<head><title>$BoxTitle</title></head>"; $HTML .= "<BODY TEXT='$TextColor' BGCOLOR='$BackColor' LINK='$LinkColor' ALINK='$ALinkColor' VLINK='$VLinkColor' BACKGROUND='$BackGround'>"; $HTML .= "<font style='font-weight:bold;'>"; $HTML .= "<hr color='$LineColor'>"; $HTML .= "<font color='$TitleColor'>$BoxTitle [$Waon全$Total件]</font><hr color='$LineColor'>"; return $HTML; } ################################################################### #▼htmlフッタ出力 #(引数:なし) ################################################################### sub html_Footer{ my($HTML); $HTML .= " <form action='../../../../cgi-bin/user/write.cgi' method='post'>"; $HTML .= "<a name='w'>"; $HTML .= "<hr color='$LineColor'>"; $HTML .= "<font color='$TitleColor'>メッセージを書き込む</font>"; $HTML .= "<hr color='$LineColor'>"; $HTML .= "■G-ID <input type='text' name='G_ID' size='16' maxlength='12'> "; $HTML .= "■タイトル <input type='text' name='AddItem1' size='20' maxlength='30'> "; $HTML .= "■メッセージ内容 <textarea name='Message' cols='30' rows='3'></textarea> "; $HTML .= "<input type='hidden' name='RNo' value='$in{'No'}'>"; $HTML .= "<input type='hidden' name='HCode' value='1'>"; $HTML .= "<input type='submit' value='送信'>"; $HTML .= "</form>"; $HTML .= "<hr color='$LineColor'>"; #□フッターメッセージ if($Footer ne '' && $NowPage == 1){ $HTML .= "$Footer "; } $HTML .= " "; $HTML .= "<hr color='$LineColor'>"; $HTML .= " "; if($Case ne 'uploadfile'){ $HTML .= "<hr color='$LineColor'>"; $HTML .= "<marquee>このメッセージボックスのURLは$FakeURL/?b=$in{'No'}&Case=$Caseです。</marquee> "; } $HTML .= "<hr color='$LineColor'>"; $HTML .= "<div align=right>システム作成:りょうた</div>"; $HTML .= "</html>"; return $HTML; }
■G-ID
KeyWiki
Ver 0.6.9
(c) 2004
Ryota