|
<?php
//一个简单而快速的投票程序,无需数据库与GD的支持,
//本程序维护极其方便,只需在data.dat中加入想要投票的栏目,每行一项内容便可。
//结果会在votes.dat中以“数字|数字|……”方式存储,并在最后存下最近一
//次投票者的IP,以防一人多投。
//本程序源代码:webmaster@phpvault.com,由小东瓜注释修改(dongua@21cn.com)
//欢迎免费使用,请保留本版权信息
/* 投票栏目名,可带路径 */
$data="data.dat";
/* 记录投票结果文件名,可带路径 */
$votes="votes.dat";
//图形文件名,这里的图形建议用单一颜色的矩形较好,因为投票结果要横向缩放
$path_img="red.gif";
/* 投票项目名 */
$poll_name="您喜欢我的哪个栏目?";
///////////////////////////////
// NOTHING TO CHANGE BELOW //
///////////////////////////////
$dataf=file("data.dat");
if ($go !=1) {
/* 显示投票程序的radio*/
echo "<font color=red><i>$poll_name</i></font><br>\n";
echo "<form method=post>";
for ($i=0; $i<=count($dataf)-1; $i++) {
echo "<input type=radio name=\"vote\" value=\"$i\"> $dataf[$i]<br>\n";
}
echo "<input type=hidden name=go value=1>";
echo "<p><input type=Submit value=投票>";
echo "</form>";
echo "<a href='vote.php?result=1&go=1'>查看结果</a>";
}
else {
$file_votes=fopen($votes, "r");
$line_votes=fgets($file_votes, 255);
$single_vote=explode("|", $line_votes);
fclose($file_votes);
//写入投票结果
if ($result!=1) {
$file_votes=file($votes, "r");
//IP地址重复
if ($REMOTE_ADDR == $file_votes[1]) {
echo "<center><font color=red>您已投过票了,谢谢您的参与!</font></center>";
exit;
}
$ficdest=fopen($votes, "w");
for ($i=0; $i<=count($dataf)-1; $i++) {
if ($i == $vote) {
$single_vote[$i]+=1;
}
fputs($ficdest, "$single_vote[$i]|");
}
fclose($ficdest);
$ficdest=fopen($votes, "a");
fputs($ficdest, "\n$REMOTE_ADDR");
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++) {
$stat[$i]=$single_vote[$i]/$tot_votes*100;
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=\"$path_img\" height=10 width=$stat[$i] 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>";
}
}
?>
按照以上运行,投票界面有,但是不会跳出投票结果?
这样写是不是更明确,请各位大哥指教! |
|