%PDF- %PDF-
Direktori : /home/rappan/www/cgi_link/ |
Current File : /home/rappan/www/cgi_link/index.cgi |
#!/usr/bin/perl #======================================================================================= # BANNER LINK SYSTEM Script by HAL # Last Update 2007.11.08 #======================================================================================= require 'preset.cgi'; require 'sub.pl'; if ($ENV{'REQUEST_METHOD'} eq "POST") { read(STDIN, $formdata, $ENV{'CONTENT_LENGTH'}); } else { $formdata = $ENV{'QUERY_STRING'}; } @pairs = split(/&/,$formdata); foreach $pair (@pairs) { ($name, $value) = split(/=/, $pair); $value =~ tr/+/ /; $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg; $value =~ s/\n//g; $value =~ s/\,//g; $QUERY{$name} = $value if ($name !~ /^up/); } $QUERY{'seq'} =~ s/\D//g; if($QUERY{'url'} ne ""){ &make_rank($QUERY{'url'}); } if($QUERY{'mode'} eq ""){ $QUERY{'mode'} = 'index'; } # ジャンルタイトル決定 $i = 0; $jtitle = 'Attention'; foreach $modew (@junle_code) { if($QUERY{'mode'} eq $modew){ $jtitle = $junle_str[$i]; } $i++; } &html; #===============================表示HTMLドキュメントを生成=========================== sub html { open(PRE,"$design_file") || &error('FILE OPEN ERROR - design'); @htmls = <PRE>; close(PRE); $html = ""; foreach (@htmls) { $html .= $_; } ($dhead,$heads,$dfoot) = split(/<!--header-->/, $html); if($QUERY{'mode'} eq "index"){ open(IND,"$index_file") || &error('FILE OPEN ERROR - index'); @htmls = <IND>; close(IND); $html = ""; foreach (@htmls) { $html .= $_; } }else{ if($QUERY{'num'} ne ""){ $num = $QUERY{'num'}; } else{ $num = 0; } $next_num = $num + $pmax; $html = $dhead .'<!--header-->' .$dfoot; ($dhead,$sheet,$dfoot) = split(/<!--tr-->/, $html); ($shead,$tsheet,$sfoot) = split(/<!--td-->/, $sheet); if($QUERY{'mode'} eq "rank"){ $log_file = $rank_file; } open(LOG,"$log_file") || &error('FILE OPEN ERROR - log'); @logs = <LOG>; close(LOG); # ソート処理 if($QUERY{'mode'} ne "rank"){ if($sort_ck == 2 || $sort_ck == 3){ @sortw = (); foreach (@logs) { ($cnt,$seq,$site_name,$site_namek,$ad_name,$comm,$url,$bn_url,$janru) = split(/<>/, $_); push(@sortw,"$seq<>$site_namek<>$site_name<>$cnt<>$ad_name<>$comm<>$url<>$bn_url<>$janru<>\n"); } if($sort_ck == 2){ @sorted = sort { $b <=> $a } @sortw; } else{ @sorted = sort { $a <=> $b } @sortw; } @logs = (); foreach (@sorted) { ($seq,$site_namek,$site_name,$cnt,$ad_name,$comm,$url,$bn_url,$janru) = split(/<>/, $_); push(@logs,"$cnt<>$seq<>$site_name<>$site_namek<>$ad_name<>$comm<>$url<>$bn_url<>$janru<>\n"); } }elsif($sort_ck == 1){ @logs = reverse @logs; } } $prev = ""; $i = 0; $j = 0; $sf = 0; foreach (@logs) { ($cnt,$seq,$site_name,$site_namek,$ad_name,$comm,$url,$bn_url,$janru) = split(/<>/, $_); if($bn_url eq ""){ $bn_url = $bn_dir .$nb_img; } elsif(!($bn_url =~ /http:/)){ $bn_url = $bn_dir .$bn_url; } $url = $view_cgi .'?url=' .$seq; $site_name = "<a href=\"$url\" target=\"_blank\">$site_name</a>"; $linkb = "<a href=\"$url\" target=\"_blank\"><img src=\"$bn_url\" border=\"0\"></a>"; if($QUERY{'mode'} eq "rank"){ $f = 1; $i++; }else{ @janrus = split("##",$janru); $f = 0; foreach $value (@janrus) { if($value eq $QUERY{'mode'}){ $f = 1; $i++; last; } } } if($f == 1){ if($pmax == 0 || ($j >= $num && $j < $next_num)){ $tsheetw = $tsheet; if($QUERY{'mode'} eq "rank"){ $tsheetw =~ s/<!--rcnt-->/[ $cnt ]/g; } elsif($cnt >= time()-60*60*24*$new_day){ # NEWマーク処理 $tsheetw =~ s/<!--new-->/<img src="$new_img" align="absmiddle">/g; } $tsheetw =~ s/<!--site_name-->/$site_name/g; $tsheetw =~ s/<!--ad_name-->/$ad_name/g; $tsheetw =~ s/<!--comm-->/$comm/g; $tsheetw =~ s/<!--url-->/$url/g; $tsheetw =~ s/<!--link-->/$linkb/g; $sf++; if($sf == 1){ $prev .= $shead; } $prev .= $tsheetw; if($sf == $table_su){ $prev .= $sfoot; $sf = 0; } } $j++; } } if($sf != $table_su && $sf != 0){ $tsheet =~ s/<!--site_name-->/No DATA/g; $tsheet =~ s/<!--comm-->/No DATA/g; while($sf < $table_su){ $prev .= $tsheet; $sf++; } $prev .= $sfoot; } $html = $dhead .$prev .$dfoot; } $page = ""; if($pmax != 0){ $iw = 0; $p = $i / $pmax; while($iw < $p){ $iww = $iw + 1; $numw = $iw * $pmax; if($num == $numw){ $page .= "[$iww] "; } else{ $page .= "<a href=\"$view_cgi?mode=$QUERY{'mode'}&num=$numw\">[$iww]</a> "; } $iw++; } }else{ $page .= "[ALL]"; } $html =~ s/<!--ken-->/$j/g; $html =~ s/<!--page-->/$page/g; $html =~ s/<!--header-->/$heads/g; $html =~ s/<!--cgi-->/$view_cgi/g; $html =~ s/<!--janru-->/$jtitle/g; $html =~ s/<!--admincgi-->/$admin_cgi/g; $html =~ s/<!--system-->/$systeminfo/g; print "Content-Type: text/html\n\n"; print $html; exit; } #=============================== ランキング処理 =========================== sub make_rank{ $urlw = $_[0]; # ロック開始 if ($lockkey == 1) { &lock1; } elsif ($lockkey == 2) { &lock2; } open(RNK,"$rank_file") || &error('FILE OPEN ERROR - log'); @ranks = <RNK>; close(RNK); open(LOG,"$log_file") || &error('FILE OPEN ERROR - log'); @logs = <LOG>; close(LOG); $f = 0; foreach (@logs) { ($cnt,$seq,$site_name,$site_namek,$ad_name,$comm,$url,$bn_url,$janru) = split(/<>/, $_); if($urlw == $seq){ $f = 1; last; } } if($f != 1){ &error('リンク先は登録されていません'); } $f = 0; @newrlogs = (); foreach (@ranks) { ($cntr,$seqr,$site_namer,$site_namekr,$ad_namer,$commr,$urlr,$bn_urlr,$janrur) = split(/<>/, $_); if($seq == $seqr){ $cntr++; $f = 1; } push(@newrlogs,"$cntr<>$seqr<>$site_namer<>$site_namekr<>$ad_namer<>$commr<>$urlr<>$bn_urlr<>$janrur<>\n"); } if($f != 1){ push(@newrlogs,"1<>$seq<>$site_name<>$site_namek<>$ad_name<>$comm<>$url<>$bn_url<>$janru<>\n"); } @sorted = sort { $b <=> $a } @newrlogs; open(OUT,">$rank_file") || &error('FILE OPEN ERROR - rank'); print OUT @sorted; close(OUT); &unlock; # ロック解除 # リロード処理 print "Location: $url\n\n"; exit; }