www.pudn.com > bbs3000afree.zip > vote.cgi


#!/usr/bin/perl 
#------------------------------------------------------# 
#¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡±¾³ÌÐòΪYuzi¹¤×÷ÊÒÌṩ¡¡  ¡¡¡¡¡¡¡¡¡¡# 
#¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡YuziÂÛ̳3000(BBS3000)v4.00¡¡¡¡¡¡¡¡¡¡¡¡# 
#------------------------------------------------------# 
$cgipa=".";  # CGI³ÌÐòÎļþµÄ¾ø¶Ô·¾¶ 
###################### 
## ÒÔϲ¿·Ö²»ÐèÐÞ¸Ä ## 
###################### 
require "$cgipa/setup.cgi"; 
foreach(split(/; /,$ENV{'HTTP_COOKIE'})){($cookie,$value)=split(/=/);$Cookies{$cookie}=$value;} 
if($Cookies{bgcolor}){($color,$bgcolor4,$bgcolor0,$bgcolor,$bgcolor1,$bgcolor2)=split(/_/,$Cookies{bgcolor});} 
$username=$Cookies{username}; 
if ($ENV{'REQUEST_METHOD'} eq "POST") { 
read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'}); 
} 
else { 
$buffer = $ENV{'QUERY_STRING'}; 
} 
@pairs = split(/&/, $buffer); 
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///g; 
$value=~s/\|//g; 
$value=~s/>/>/g; 
$value=~s/?'`ÿ]/){&errorview("IDÖв»Äܺ¬ÓÐÌØÊâ×Ö·û!");} 
$menu=$FORM{'menu'}; 
$topic=$FORM{'topic'}; 
if($menu eq "add_topic"){&add_topic;} 
elsif($menu eq "showvote"){&showvote;} 
elsif($menu eq "vote"){&vote;} 
elsif($menu eq "results"){&results;} 
elsif($menu eq "list"){&list;} 
elsif($menu eq "SCRIPT"){&SCRIPT;} 
else { 
if($username eq ""){&errorview("¶Ô²»Æð£¬Äúµ±Ç°µÄÉí·ÝÊǷÿͣ¡");} 
print "Content-type: text/html\n\n"; 
print <Ìí¼ÓÐÂÒéÌâ 
 
EOF for ($i = 1; $i < 10; $i++) { print "\n"; } print <
Ìí¼ÓÐÂÒéÌâ
ÇëÌîдͶƱµÄÒéÌ⣺ 
Ñ¡Ôñ$i£º
ÔÊÐíËûÈËÌá³ö×Ô¼ºµÄÑ¡ÔñÂð£¿ÊÇ·ñ
EOF exit; } sub add_topic { &origin; if($username eq ""){&errorview("¶Ô²»Æð£¬Äúµ±Ç°µÄÉí·ÝÊǷÿͣ¡");} if($id eq ""){&monitor;} open (FILE, "$filepath/data/prison"); @ips = ; close(FILE); foreach $prison(@ips) { ($prison)=split(/\t/,$prison); if ($prison eq $username) {&errorview("Äú±»×¥½ø¼àÓü£¬ÎÞ·¨Ìí¼ÓÒéÌ⣡");}} unless ($FORM{'topic'}) {&errorview("¶Ô²»Æð£¬ÄúûÓÐÌîÈëÎÊÌ⣡");} if(length($FORM{'topic'}) < 2){&errorview("ÒéÌâ²»ÄÜСÓÚ2¸ö×Ö·û£¡");} $FORM{'topic'}=~s/ /¡¡/g; $j = 0; for ($i = 0; $i < 10; $i++){if ($FORM{$i}){$j++;} } if ($j == 0) {&errorview("ÄúÖÁÉÙÒªÌîÈ룱¸öÑ¡Ôñ£¡");} ($i, $lastnum, $j) = split(/\|/, $data[$#data]); $lastnum++; open(TITLES,">$filepath/vote/$ftime"); print TITLES "$FORM{'topic'}|$ftime|$FORM{'others'}|$username\n"; close(TITLES); $titles=$FORM{'topic'}; $FORM{'topic'} = $lastnum; open (FILE,">$filepath/vote/$ftime.dat"); $num = 0; for ($i = 0; $i < 10; $i++) { if ($FORM{$i}) { print FILE "$FORM{$i}|0|$num|\n"; $num++; }} close(FILE); foreach (@badwords) {$titles =~s/$_/****/gi;} ($ip1,$ip2,$ip3,$ip4)=split(/\./,$from);$badi="$ip1.$ip2.$ip3"; foreach $badip (@badip) {&errorview("¶Ô²»Æð£¡´Ë¶ÎIP±»½ûÖ¹·¢±íÎÄÕ£¡") if($badip eq $badi);exit if($badip eq $badi);} if($Cookies{lasttxt} > $ftime-30){&errorview("Ϊ·ÀÖ¹ÓÐÈËÓóÌÐò¹àË®£¬±¾BBSÏÞÖÆÒ»¸öÈËÁ½´Î·¢Ìû¼ä¸ô±ØÐë´óÓÚ30Ã룡");} print "Set-Cookie:lasttxt=$ftime\n"; &repeat; open(NUMBER,"$filepath/guest/2$username.cgi"); $NUMBER=; close(NUMBER); ($lys,$oldlys,$money,$charm)=split(/\t/,$NUMBER); if($charm < 0){&errorview("ÄúµÄ÷ÈÁ¦Ì«µÍ£¬²»ÄÜ·¢±íÎÄÕ£¡ÇëÁªÏµÉçÇøÇø³¤¡£");} $money=$money+10;$charm=$charm+0.5; open(NUMBER,">$filepath/guest/2$username.cgi"); print NUMBER "$lys"."\t"."$oldlys"."\t"."$money"."\t"."$charm"; close(NUMBER); open(TITLES,"$filepath/list/$id/bbs"); @hastitles=; close(TITLES); open(TITLES,">$filepath/list/$id/bbs"); print TITLES "$ftime\n"; foreach $m (@hastitles) { print TITLES "$m"; } close(TITLES); $peo="$filepath/list/$id/$ftime"; open(TMP,">$peo"); print TMP $titles."\t".$thistime."\t".$username."\t".""."\t".$from."\t0\t".vote."\t--\t".$thistime."\t"."$ftime"."b"."\t0"; close(TMP); chmod(0666,$peo); open(PSD,"$filepath/yhzl/$username.cgi"); $line=; close(PSD); ($rdpassword,$rusername,$rdmail,$rdhome,$rlast,$rdqm,$rdsex,$rdwork,$rdcity,$rdlove,$rfy,$rhf,$tu,$jiao,$iewin,$QQ,$photo,$rating,$levelname,$level,$lastlytime,$lastlytopic,$realname,$birthday,$shengxiao,$blood,$constellation,$character,$belief,$marital,$education,$college)=split(/\t/,$line); if($tu eq ""){$tu=$sec};$rfy++; do "$cgipa/sub/level.cgi"; ($kkk)=split(/\)/,$ENV{'HTTP_USER_AGENT'}); ($bzd,$ie,$win,$me)=split(/;/,$kkk); if($me eq " Win 9x 4.90"){$win=" Windows Me"} elsif($win eq " Windows NT 5.0"){$win=" Windows 2000"} elsif($win eq " Windows NT 5.1"){$win=" Windows XP"}; open(PSD,">$filepath/yhzl/$username.cgi"); print PSD $rdpassword."\t".$username."\t".$rdmail."\t".$rdhome."\t".$rlast."\t".$rdqm."\t".$rdsex."\t".$rdwork."\t".$rdcity."\t".$rdlove."\t".$rfy."\t".$rhf."\t".$tu."\t".$jiao."\t$ie$win\t".$QQ."\t".$photo."\t".$rating."\t".$levelname."\t".$level."\t".$thistime."\t"."$titles\t".$realname."\t".$birthday."\t".$shengxiao."\t".$blood."\t".$constellation."\t".$character."\t".$belief."\t".$marital."\t".$education."\t".$college; close(PSD); open (CHAT,"$filepath/list/$id.cgi"); $line=; close(CHAT); ($bzmc,$secret,$bzrmail,$outurl,$bbsname)=split(/\t/,$line); if($bbsname eq ""){$bbsname="¹«¸æÀ¸";} open(TITLES,"$filepath/postlog/$username.cgi")||&errorview("ϵͳÎÞ·¨½¨Á¢Îļþ£¬Çë¼ì²é $filepath/postlog Ŀ¼ÊôÐÔÊÇ·ñΪ¡°777¡±"); @hastitles=; close(TITLES); open(TITLES,">$filepath/postlog/$username.cgi"); print TITLES "$ftime\t$id\t$bbsname\n"; for($i=0;$i<=18;$i++){$m=@hastitles[$i];print TITLES "$m";} close(TITLES); print "Set-Cookie:del=$ftime\n"; print "Content-type: text/html\n\n"; print " ÄúÒѾ­³É¹¦µØÌí¼ÓÁËÕâ¸öеÄÒéÌ⣬ÇëÉÔºò£¬ÏµÍ³½«×Ô¶¯·µ»Ø......

Èç¹ûϵͳûÓз´Ó¦£¬Çëµã»÷ÕâÀï·µ»Ø£¡\n"; } sub showvote { open(NUMBER,"$filepath/vote/$id"); $line=; close(NUMBER); ($topic,$num,$others) = split(/\|/, $line); if ($others eq "yes") { $yuziqt=""; } open(FILE,"$filepath/vote/$id.dat"); @lines = ; close(FILE); foreach $line(@lines) { ($choice, $x, $numx) = split(/\|/, $line); $yuzidm="$yuzidm$choice
"; } &css; print "$topic\n"; print "
$topic
$yuzidm$yuziqt 
 
\n"; exit; } sub vote { if($username eq ""){&errorview("¶Ô²»Æð£¬Äúµ±Ç°µÄÉí·ÝÊǷÿͣ¡");} if($FORM{'choice'} eq "" ){&errorview("¶Ô²»Æð£¬ÄúûÓÐ×ö³öÑ¡Ôñ£¡");} open (FILE, "$filepath/vote/$id.ip"); @ips = ; close(FILE); foreach $ip(@ips) { chomp($ip); if ($ip eq $username) {&errorview("Ò»¸öÈËÖ»ÄÜͶһ´ÎƱŶ£¡");}} open (FILE, "$filepath/vote/$id.dat"); @choices = ; close(FILE); if ($FORM{'choice'} eq "add_choice") { unless ($FORM{'new_choice'}) { &errorview("ÄúÕý³¢ÊÔ¼ÓÈëÒ»¸öÆäËûµÄÑ¡Ôñ, µ«Äú²¢Ã»ÓÐÔÚ±íµ¥ÖÐÌîÈëÒ»¸öÑ¡Ôñ£¡");} chomp($choices[$#choices]); ($x,$y,$last) = split(/\|/, $choices[$#choices]); $last++; open (FILE, ">>$filepath/vote/$id.dat"); print FILE "$FORM{'new_choice'} $username|1|$last|\n"; close(FILE); open (FILE, ">>$filepath/vote/$id.ip"); print FILE "$username\n"; close(FILE); &results; } open (FILE, ">$filepath/vote/$id.dat"); foreach $choice(@choices) { chomp($choice); ($x,$y,$last) = split(/\|/, $choice); if ($last ==$FORM{'choice'}){$y++;} print FILE "$x|$y|$last|\n"; } close(FILE); open (FILE, ">>$filepath/vote/$id.ip"); print FILE "$username\n"; close(FILE); &results; } sub results { open(NUMBER,"$filepath/vote/$id"); $line=; close(NUMBER); ($topic, $num, $others) = split(/\|/, $line); &css; print "
$topic\n"; print "
\n"; print "\n"; print "\n"; print "\n"; print "\n"; open (FILE, "$filepath/vote/$id.dat"); @lines = ; close(FILE); $i = 0; foreach $line(@lines) { ($topic,$votes,$num) = split(/\|/, $line); $i = $i + $votes; } foreach $line(@lines) { ($topic,$votes,$num) = split(/\|/, $line); if ($i > 0){$percent = sprintf("%.2f",100 * ($votes / $i));} else{$percent = "NA";} print ""; print ""; print ""; print "\n"; } print "
Ñ¡Ôñ
°Ù·Ö±È
%
ƱÊý
$topic$percent$votes
\n"; print "
*Ŀǰ¹²ÓÐ $i ÕÅͶƱ¹Ø±Õ´Ë´°¿Ú

·þÎñÌṩ£º$zyname¡¡³ÌÐòÖÆ×÷£ºYuzi¹¤×÷ÊÒ\n"; exit; } sub SCRIPT{ print "Content-type: text/html\n\n"; open(NUMBER,"$filepath/vote/$id")||print "document.write(\"¸ÃÒéÌâÒѾ­±»É¾³ý£¡\");"; $line=; close(NUMBER); ($topic,$num,$others) = split(/\|/, $line); if ($others eq "yes") { $yuziqt=""; } open (FILE, "$filepath/vote/$id.dat"); @lines = ; close(FILE); $i = 0; foreach $line(@lines) { ($choice,$votes) = split(/\|/, $line); $i = $i + $votes; } foreach $line(@lines) { ($topic,$votes,$num) = split(/\|/, $line); if ($i > 0){$percent = sprintf("%.2f",100 * ($votes / $i));}else{$percent = "NA";} $yuzidm="$yuzidm$topic $votes ƱÊý $percent%"; } print <$yuzidm$yuziqt


Ŀǰ¹²ÓÐ $i ÕÅͶƱ
"); EOF } ######################### END OF SCRIPT #########################