%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /home/rappan/www/cgi_link/
Upload File :
Create Path :
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]&nbsp;"; }
			else{ $page .= "<a href=\"$view_cgi?mode=$QUERY{'mode'}&num=$numw\">[$iww]</a>&nbsp;"; }
			$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;
}

Zerion Mini Shell 1.0