⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 vote.cgi

📁 1.支持多用户模式。 2.在线申请友情连接在线开通。 3.申请EMAIL回复功能。 4.条型图投票百分比显示。 5.为用户提供滚动JAVAs cript更新代码
💻 CGI
字号:
#!/usr/bin/perl
#------------------------------------------------------#
#                 本程序为Yuzi工作室提供               #
#              Yuzi调查引擎2000多用户版v1.16           #
#------------------------------------------------------#
require "setup.cgi";
######################
## 以下部分不需修改 ##
######################
$cgiurl="vote.cgi";
$ym=&myurl;
mkdir("$filepath",0777);
mkdir("$filepath/data",0777);
unless(-f "$filepath/data/list"){
open(TMP,">$filepath/data/list")||die $!;
close(TMP);
chmod(0666,"$filepath/data/list");
}
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/<!--(.|\n)*-->//g;
$value =~ s/\|//g;
$value =~ s/>/&gt;/g;
$value =~ s/</&lt;/g;
$FORM{$name} = $value;
}
#########
$id= $FORM{'id'};
$menu= $FORM{'menu'};
$topic= $FORM{'topic'};
$mail= $FORM{'mail'};
$id=~ s/\.\.//g;
open(DATA, "$filepath/data/$id.cgi");
@data = <DATA>;
close(DATA);
print "Content-type: text/html\n\n";
if($menu eq "addtopic"){&addtopic; exit;}
if ($menu eq "add_topic") { &add_topic; }
elsif ($menu eq "showvote") { &showvote; }
elsif ($menu eq "others") { &others; }
elsif ($menu eq "yuzi") { &yuzi; }
elsif ($menu eq "vote") { &vote; }
elsif ($menu eq "results") { &results; }
elsif ($menu eq "delete") { &delete; }
else {
print "<html><head><title>调查引擎</title><body>\n";
print "<a href=\"vote.cgi?menu=addtopic\">免费申请</a>\n";
foreach $line(@data) {
($topic, $num, $others) = split(/\|/, $line);
print "<a href=vote.cgi?menu=showvote&id=$id>$topic</a><br>";
}
print "</body></html>\n";
exit;
}
sub addtopic {
print <<EOF;
<HTML><HEAD><TITLE>调查引擎申请</TITLE><META HTTP-EQUIV=Content-Type CONTENT=text/html; charset=gb2312><style>td {font-size:9pt;line-height:13pt;}</style></HEAD><BODY BGCOLOR=#FFFFFF><TABLE WIDTH=90% BORDER=0 ALIGN=center><TR BORDERCOLOR=#FFFFFF><TD><TABLE BORDER=0 ALIGN=center><TR><TD><form method=POST><input type=hidden name=menu value=add_topic><TABLE BORDER=1 CELLPADDING=1 ALIGN=center CELLSPACING=0 CLASS=f9 BGCOLOR=e6e6e6 BORDERCOLORDARK=#FFFFFF BORDERCOLOR=#FFFFFF><TR VALIGN=top BGCOLOR=#999999><TD CLASS=p9 COLSPAN=3 align=center><SPAN CLASS=f9><FONT COLOR=#FFFFFF>调查引擎申请</FONT></SPAN></TD></TR><TR><TD CLASS=p9><FONT COLOR=#333333>问题:</FONT></TD><TD CLASS=p9><INPUT TYPE=text name=topic SIZE=20></TD><TD CLASS=p9>&nbsp;</TD></TR>
EOF
for ($i = 1; $i < 10; $i++) {
print "<TR><TD CLASS=p9><FONT COLOR=#333333>选择$i:</FONT></TD><TD CLASS=p9><INPUT TYPE=text NAME=$i SIZE=20 VALUE=></TD></TR>\n";
}
print <<EOF;
<tr ALIGN=center><TD CLASS=p9>允许他人提出自己的选择吗?</TD><TD CLASS=p9><input type=radio name=others value=yes>是<input type=radio name=others value=no CHECKED>否</TD></tr>
<TR><TD CLASS=p9>您的用户名:</TD><TD CLASS=p9><input type=text name=id></TD></tr>
<tr><TD CLASS=p9>您的Email地址:</TD><TD CLASS=p9><input type=text name=mail></TD></tr>
<tr ALIGN=center><TD CLASS=p9 COLSPAN=3><INPUT TYPE=submit VALUE=确定></TD></tr></TABLE></FORM></TD></tr></TABLE></TD></tr></TABLE>
<center><span style='FONT-SIZE: 9pt'>→→→ <a href=cjyh.cgi target=_blank>超级用户管理</a> ←←←<br><br>服务提供:<a href=$zyurl target=_blank>$zynames</a> 程序制作:<a href=http://www.yuzi.net target=_blank>Yuzi工作室</a>
</td></tr></table>
</center></body></html>
EOF
exit;
}
sub add_topic {
unless ($FORM{'topic'}) {&errorview("对不起,您没有填入问题!");exit;}
unless ($FORM{'id'}) {&errorview("对不起,您没有填入用户名!");exit;}
if(!($mail=~ /.*\@.*\..*/)){&errorview("您的Email输入错误!");exit(0);}
if ( -e "$filepath/data/$id.cgi"){&errorview("对不起,用户名已被别人注册! 换一个吧!");exit;}
if ($FORM{'others'} eq "no") {
$j = 0;
for ($i = 0; $i < 10; $i++) { if ($FORM{$i}) { $j++; } }
if ($j == 0) {&errorview("您至少要填入1个选择!");exit;}
}
($i, $lastnum, $j) = split(/\|/, $data[$#data]);
$lastnum++;
open (FILE,">>$filepath/data/$id.cgi");
print FILE "$FORM{'topic'}|$lastnum|$FORM{'others'}\n";
close(FILE);
$FORM{'topic'} = $lastnum;
open (FILE,">$filepath/data/$id.dat");
$num = 0;
for ($i = 0; $i < 10; $i++) {
if ($FORM{$i}) {
print FILE "$FORM{$i}|0|$num|\n";
$num++;
}
}
close(FILE);
open (FILE,">>$filepath/data/list");
print FILE "$id\n";
close(FILE);
print "<html><head><title></title>\n";
print "<body bgcolor=\"#FCF8E2\">\n";
print "<p> </p><p align=\"center\"><strong>你已经成功申请了调查引擎</strong></p><p align=\"center\"><span style='FONT-SIZE: 9pt'>我们免费为您的调查引擎提供了一个比较好记的地址,请您试试<br><a href=$ym/vote.cgi?menu=showvote&id=$id target=_blank>$ym/vote.cgi?menu=showvote&id=$id</a><br><br>我们也为您的调查引擎提供了一段比较好记代码,请将以下代码复制到您的主页<textarea rows=5 name=yuzi cols=50><SCRIPT src=$ym/vote.cgi?menu=yuzi&id=$id></SCRIPT></textarea></p>\n";
print "<table align=\"center\" bgColor=\"#79BCFF\" border=\"0\">";
print "    <td bgColor=\"#FFFFFF\" align=\"center\"><p align=\"center\"><span style=\"FONT-SIZE: 9pt\">本页面采用Web在线自动更新CGI程式设计,程式制作“<a href=http://www.yuzi.net target=_blank>Yuzi工作室</a>”</span></td>\n";
open (OUTMAIL,"| $mailprg") || die "Mail system error";
print OUTMAIL "To: $FORM{mail}\n";
print OUTMAIL "Subject: 调查引擎系统开通通知!\n";
print OUTMAIL "您好!\n";
print OUTMAIL "\n";
print OUTMAIL "  恭喜! 您已经成功的申请了$zynames($zyurl)的调查引擎系统, 非常感谢您使用$zynames的服务!\n";
print OUTMAIL "\n";
print OUTMAIL " * 我们免费为您的调查引擎提供了一个比较好记的地址,请您试试\n";
print OUTMAIL "URL: $ym/vote.cgi?menu=showvote&id=$id\n";
print OUTMAIL "\n";
print OUTMAIL " * 我们也为您的调查引擎提供了一段比较好记代码,请将以下代码复制到您的主页\n";
print OUTMAIL "<SCRIPT src=$ym/vote.cgi?menu=yuzi&id=$id></SCRIPT>\n";
print OUTMAIL "\n";
print OUTMAIL " * 最后, 有几点注意事项请您牢记\n";
print OUTMAIL "1、不得使用本调查引擎系统建立任何包含色情、非法、以及危害国家安全的内容的调查引擎;\n";
print OUTMAIL "2、不得在本系统用户所拥有的调查引擎内发布任何色情、非法、或者危害国家安全的调查引擎;\n";
print OUTMAIL "3、以上规则违者责任自负,本站有权删除该类用户或者内容,并追究其法律责任。\n";
print OUTMAIL "\n";
print OUTMAIL "\n";
print OUTMAIL "免费调查引擎服务由 $zynames($zyurl) 提供 程序制作:Yuzi工作室(http://www.yuzi.net)\n";
print OUTMAIL "\n\n";
close(OUTMAIL);
}
sub others {
open (FILE, ">$filepath/data/$id.cgi");
foreach $line(@data) {
($topic, $num, $others) = split(/\|/,$line);
print FILE "$topic|$num|$FORM{$num}|\n";
}
close(FILE);
}
sub showvote {
foreach $line(@data) {
($topic,$num,$others) = split(/\|/, $line);
if ($num == $FORM{'topic'}) { last }
}
if ($others eq "yes\n") {
$yuziqt="<input type=radio name=choice value=add_choice><input type=text size=8 name=new_choice>";
}
open(FILE,"$filepath/data/$id.dat");
@lines = <FILE>;
close(FILE);
foreach $line(@lines) {
($choice, $x, $numx) = split(/\|/, $line);
$yuzidm="$yuzidm<INPUT name=choice type=radio value=$numx>$choice<BR>";
}
print "<html><head><title>$topic</title></head><body>\n";
print "<style>
td {font-size:9pt;line-height:13pt;}
</style>\n";
print "<TABLE border=0 cellPadding=0 cellSpacing=0 width=155><TR><TD class=p1><form method=POST><input type=hidden name=menu value=vote><input type=hidden name=id value=$id><TABLE align=center border=1 borderColorDark=#ffffff borderColorLight=#999999 cellPadding=2 cellSpacing=0 width=90%><TBODY><TR bgColor=#d5dbe6><TD align=middle class=p1>$topic</TD></TR><TR bgColor=#f8f9fc vAlign=center><TD align=left class=p1><TABLE border=0 cellPadding=0 cellSpacing=0 width=100%><TBODY><TR><TD class=p1 width=70%>$yuzidm$yuziqt<TD align=right class=p1 vAlign=center width=30%><input type=submit value=投票></FORM><BR><form method=POST><input type=hidden name=menu value=results><input type=hidden name=id value=$id><input type=submit value=结果></form></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE></TD></TR></TABLE>\n";
exit;
}
sub vote {
if($FORM{'choice'} eq "" ){&errorview("对不起,您没有做出选择!");exit;}
open (FILE, "$filepath/data/$id.ip");
@ips = <FILE>;
close(FILE);
foreach $ip(@ips) {
chomp($ip);
if ($ip eq $ENV{'REMOTE_ADDR'}) {&errorview("一个人只能投一次票哦!");exit;}
}
open (FILE, "$filepath/data/$id.dat");
@choices = <FILE>;
close(FILE);
if ($FORM{'choice'} eq "add_choice") {
unless ($FORM{'new_choice'}) {
&errorview("你正尝试加入一个其他的选择, 但你并没有在表单中填入一个选择!");exit;}
chomp($choices[$#choices]);
($x,$y,$last) = split(/\|/, $choices[$#choices]);
$last++;
open (FILE, ">>$filepath/data/$id.dat");
print FILE "$FORM{'new_choice'}|1|$last|\n";
close(FILE);
open (FILE, ">>$filepath/data/$id.ip");
print FILE "$ENV{'REMOTE_ADDR'}\n";
close(FILE);
&results;
}
open (FILE, ">$filepath/data/$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/data/$id.ip");
print FILE "$ENV{'REMOTE_ADDR'}\n";
close(FILE);
&results;
}
sub results {
foreach $line(@data) {
($topic, $num, $others) = split(/\|/, $line);
if ($num eq $FORM{'topic'}) { last }
}
print "<html><head><title>$topic</title><style type=text/css>TD{FONT-SIZE:9pt}</style></head><body>\n";
print "<body bgcolor=\"#FCF8E2\">\n";
print "<center><strong>$topic</strong>\n";
print "<center><table border=\"0\" width=80%><tr><td>\n";
print "<table cols=\"3\"><tr><td bgcolor=\"#b1a68b\" width=30%><center><font color=\"#FFFFFF\"><b>选择</b></td>\n";
print "<td bgcolor=\"#b1a68b\" width=40%><center><font color=\"#FFFFFF\"><b>百分比</b></center></td>\n";
print "<td bgcolor=\"#b1a68b\" width=15%><center><font color=\"#FFFFFF\"><b>%</b></center></td>\n";
print "<td bgcolor=\"#b1a68b\" width=15%><center><font color=\"#FFFFFF\"><b>票数</b></center></td></tr>\n";
open (FILE, "$filepath/data/$id.dat");
@lines = <FILE>;
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 "<tr><td bgcolor=\"#ffefc8\">$topic</td>";
print "<td bgcolor=\"#ffefc8\"><IMG height=9 src=$imagurl/red.gif width=$percent%></td>";
print "<td align=\"center\" bgcolor=\"#ffefc8\">$percent</td>";
print "<td align=\"center\" bgcolor=\"#ffefc8\">$votes</td></tr>\n";
}
print "</table></td></tr></table></center>\n";
print "<table border=0 width=70%><tr><td width=50%><font color=#0000ff>*</font><span style='FONT-SIZE: 9pt'>目前共有 <strong>$i</strong> 张投票。</td><span style='FONT-SIZE: 9pt'><td width=50% align=right><a href=vote.cgi?menu=addtopic target=_blank>申请调查引擎</a></td></tr></table><br>服务提供:<a href=$zyurl target=_blank>$zynames</a> 程序制作:<a href=http://www.yuzi.net target=_blank>Yuzi工作室</a></span></body></html>\n";
exit;
}
sub yuzi{
foreach $line(@data) {
($topic,$num,$others) = split(/\|/, $line);
if ($num == $FORM{'topic'}) { last }
}
if ($others eq "yes\n") {
$yuziqt="<input type=radio name=choice value=add_choice><input type=text size=8 name=new_choice>";
}
open(FILE,"$filepath/data/$id.dat");
@lines = <FILE>;
close(FILE);
foreach $line(@lines) {
($choice,$x,$numx) = split(/\|/,$line);
$yuzidm="$yuzidm<INPUT name=choice value=$numx type=radio>$choice<BR>";
}
print <<EOF;
document.write("<TABLE border=0 cellPadding=0 cellSpacing=0 width=155><TR><TD><form action=$ym/vote.cgi method=post target=_blank><input type=hidden name=menu value=vote><input type=hidden name=id value=$id><TABLE align=center border=1 borderColorDark=#ffffff borderColorLight=#999999 cellPadding=2 cellSpacing=0 width=90%><TBODY><TR bgColor=#d5dbe6><TD align=middle>$topic</TD></TR><TR bgColor=#f8f9fc vAlign=center><TD align=left><TABLE border=0 cellPadding=0 cellSpacing=0 width=100%><TBODY><TR><TD width=70%>$yuzidm$yuziqt<TD align=right vAlign=center width=30%><input type=submit value=投票></FORM><BR><form action=$ym/vote.cgi method=POST target=_blank><input type=hidden name=menu value=results><input type=hidden name=id value=$id><input type=submit value=结果></form></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE></TD></TR></TABLE>");
EOF
}
sub myurl
{
local $myurl,$server_port;
if ($ENV{'SERVER_PORT'} ne '80') { $server_port=$ENV{'SERVER_PORT'};}
$fullcgiurl = "http://$ENV{'SERVER_NAME'}$server_port$ENV{'SCRIPT_NAME'}";
$myurl=substr($fullcgiurl,0,rindex($fullcgiurl,"/"));
return $myurl;
}
######################### END OF SCRIPT #########################

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -