【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を入力すると自分専用のメッセージボックスに入室できます。<br>";
$HTML .= "<form action='$ProgramName' method='post'>";
$HTML .= "■G-ID<br>";
$HTML .= "<input type='text' name='G_ID' maxlength='12' size='16'><br>";
$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><br>";
$HTML .= "<a href='#w'>書込</a> <a href='#l'>メッセージ一覧</a><br>";
#□ヘッダメッセージ
if($Header ne ''){
$HTML .= "<hr color='$LinkColor'>";
$HTML .= "$Header<br>";
$HTML .= "<hr color='$LinkColor'>";
$HTML .= "<br>";
}
$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/<br>//;
$AddItem1 =~ s/<br>//;
#□1ページの最大件数分出力した場合
if($NowLine > $MaxLine || length($HTML) > 3500){
$NextPage = $NowPage + 1;
$HTML .= "<a href='$HtmlName-$NextPage.html'>次のページ></a><br>";
$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("アップロードファイル不変情報データを読み込めません<br>$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<br>";
}else{
$HTML .= "$SName<br>";
$HTML .= "[$AddItem1]$DE<br>";
}
$Flag = '1';
}
#□着メロ感想
if($HCode eq '2' && ($Case eq $HCode2 || $Case eq 'all')){
$HTML .= "$SName<br>";
$HTML .= "[<a href='../../../../n.cgi?n=$AddItem1'>♪$AddItem2/$RNameさん</a>]$DE<br>";
$Flag = '1';
}
#□公開ファイル一覧
if($Case eq 'public' || $Case eq 'all'){
if($HCode eq '3' && $HCode2 eq 'public'){
$HTML .= "$SName<br>";
$HTML .= "[<a href='../../../../f.cgi?n=$AddItem1'>$Mark$AddItem2/$RNameさん</a>]$DE<br>";
$Flag = '1';
}
if($HCode eq '4' && $HCode2 eq 'public'){
$HTML .= "$SName<br>";
$HTML .= "[<a href='../../../../f.cgi?n=$AddItem1'>$Mark$AddItem2/${Extension}File(${FileSize}Byte)</a>]$DE<br>";
$Flag = '1';
}
}
#□非公開ファイル一覧
if($Case eq 'private' && $in{'G_ID'} eq &checkNo($in{'No'})){
if($HCode eq '3' && $HCode2 eq 'private'){
$HTML .= "$SName<br>";
$HTML .= "[<a href='../../../../f.cgi?n=$AddItem1'>$Mark$AddItem2/$RNameさん</a>]$DE<br>";
$Flag = '1';
}
if($HCode eq '4' && $HCode2 eq 'private'){
$HTML .= "$SName<br>";
$HTML .= "[<a href='../../../../f.cgi?n=$AddItem1'>$Mark$AddItem2/${Extension}File(${FileSize}Byte)</a>]$DE<br>";
$Flag = '1';
}
}
#□アップロードファイル一覧
if($Case eq 'uploadfile' && $in{'G_ID'} eq &checkNo($in{'No'})){
if($HCode eq '4'){
$HTML .= "$SName<br>";
$HTML .= "[<a href='../../../../f.cgi?n=$AddItem1'>$Mark$AddItem2/${Extension}File(${FileSize}Byte)</a>]$DE<br>";
$Flag = '1';
}
}
#□着メロDL履歴
if($Case eq 'dlhistory' && $in{'G_ID'} eq &checkNo($in{'No'})){
if($HCode eq '5'){
$HTML .= "$SName<br>";
$HTML .= "[<a href='../../../../c.cgi?n=$AddItem1&G_ID=$in{'G_ID'}'>♪$AddItem2/$AddItem3</a>]$DE<br>";
$Flag = '1';
}
}
#□メッセージ出力が行われた場合
if($Flag eq '1'){
if($Message ne ''){
$HTML .= "$Message<br>";
}
$HTML .= "$WTime<br>";
$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<br>[$Waon全$Total件]</font><hr color='$LineColor'>";
return $HTML;
}
###################################################################
#▼htmlフッタ出力
#(引数:なし)
###################################################################
sub html_Footer{
my($HTML);
$HTML .= "<br><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<br><input type='text' name='G_ID' size='16' maxlength='12'><br>";
$HTML .= "■タイトル<br><input type='text' name='AddItem1' size='20' maxlength='30'><br>";
$HTML .= "■メッセージ内容<br><textarea name='Message' cols='30' rows='3'></textarea><br>";
$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<br>";
}
$HTML .= "<br>";
$HTML .= "<hr color='$LineColor'>";
$HTML .= "<br>";
if($Case ne 'uploadfile'){
$HTML .= "<hr color='$LineColor'>";
$HTML .= "<marquee>このメッセージボックスのURLは$FakeURL/?b=$in{'No'}&Case=$Caseです。</marquee><br>";
}
$HTML .= "<hr color='$LineColor'>";
$HTML .= "<div align=right>システム作成:りょうた</div>";
$HTML .= "</html>";
return $HTML;
}

更新者:りょうた 2008-07-06 (日) 10:10:55
作成者:りょうた 2004-07-31 (土) 14:15:44

■キーワード検索


KeyWiki Ver 0.6.9
(c) 2004 Ryota