</font></center>"; exit; } /*如果 IP 不重复,则执行以下程序*/
$ficdest=fopen($votes, "w");
for ($i=0; $i<=count($dataf)-1; $i++)
{ if ($i == $vote)
{/*判断选择了哪个项目*/ $single_vote[$i]+=1; }
fputs($ficdest, "$single_vote[$i]|"); /*将数据写回文件*/
}
fputs($ficdest, "\n$REMOTE_ADDR");
/* //写入投票者 IP*/ fclose($ficdest); $result=1; /*投票成功*/ }
/*写入投票结果后并显示投票结果*/
if ($result==1)
{ echo "<table cellpadding=10>";
for ($i=0; $i<=count($dataf)-1; $i++)
{ /*取得投票总数*/ $tot_votes+=$single_vote[$i]; }
for ($i=0; $i<=count($dataf)-1; $i++)
{ $imag=strval($i).".gif";/*判断用哪种条形图片来显示统计结果*/
$stat[$i]=$single_vote[$i]/$tot_votes*100;/*计算百分比*/
$scla=$stat[$i]*5;/*条形图和放大倍数,这里是安百分数的 5 倍的相素的宽度来显
示的*/
echo "<tr><td><li><font face=Verdana size=2>";
echo "$dataf[$i]</font></td><td align=left><font face=Verdana
size=2>";
echo "<img src=\"$imag\" height=20 width=$scla
align=middle> ";/*输出条形码图*/
printf("%.1f", "$stat[$i]");
echo "%</font></td><td align=center><font face=Verdana size=2>"; /*
输出本栏目投票数*/
echo "$single_vote[$i]</font>";
echo "</td></tr>"; }
echo "</table><p>";
echo "<font face=Verdana size=2>总投票数:$tot_votes </font>"; } ?>
说明: 在这里为了防止一人多投是采用记录最近的一位投票者的 IP 的方法来实现的,
而最近的一位投票的 IP 地址是 WEB 客户机在对服务器发出请求时存储在环境变量
REMOTE_ADDR 中的. 我也是一个初学者,关于这篇文章可能有许多错误和不当之处欢
迎各位提出宝贵的意见和建议。谢谢!