

/*如果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中的.
我也是一个初学者,关于这篇文章可能有许多错误和不当之处欢迎各位提出宝贵的意见和建议。谢谢!
Personal Homepage:http://bamboo.oso.com.cn
Email:wangyy@363.net
