一聚教程网:一个值得你收藏的教程网站

最新下载

热门教程

PHP编写的网上调查投票系统

时间:2008-04-17 编辑:简简单单 来源:一聚教程网

head>
survey



 

调查项目一


 

调查项目二


 

调查项目三


 

调查项目四


 

调查项目五


 


 


  查看结果



 

注意文件data.txt中的调查项目与上面的调查项目在个数和排列顺序必须保持一致,否则会出错或调查的结果不准确。同时为了将调查结果显示成条形图形式,应该准备若干种不同颜色的条形图片。如:0.gif,1.gif,2.gif,3.gif,4.gif等。
以下是实现调查功能的survey.php代码:

以下为引用的内容:
    data="data.txt";
    votes="survey.txt";
    dataf=file(data);        /*读出调查项目文件中的项目*/
     file_votes=fopen(votes, "r");
  line_votes=fgets(file_votes, 255);  /*读出已经记录的调查结果*/
  fclose(file_votes);
  single_vote=explode("|", line_votes); /* 并将数据按指定的字串切开,再将字串传回到数组变量中  */
   if (result!=1)         /*如果已经接受了调查*/
   {
    file_votes=file(votes, "r");
    if (REMOTE_ADDR == file_votes[1])                           /*检查是不是同一个人*/
      {
       echo "

您已投过票了,谢谢您的参与!
";
       exit;
      }
    /*如果IP不重复,则执行以下程序*/
    ficdest=fopen(votes, "w");
    for (i=0; i<=count(dataf)-1; i++)
      {
         if (i == vote)
         {                                 /*判断选择了哪个项目*/ Chinaz.com

          single_vote+=1;
         }
             fputs(ficdest, "single_vote|"); /*将数据写回文件*/
      }
       fputs(ficdest, "\nREMOTE_ADDR");/* //写入投票者IP*/
    fclose(ficdest);
    result=1; /*投票成功*/
  }
  /*写入投票结果后并显示投票结果*/
  if (result==1)
  {
   echo "

";
   for (i=0; i<=count(dataf)-1; i++)
    {
     /*取得投票总数*/
     tot_votes+=single_vote;
    }
   for (i=0; i<=count(dataf)-1; i++)
    {
     imag=strval(i).".gif";/*判断用哪种条形图片来显示统计结果*/
      stat=single_vote/tot_votes*100;  /*计算百分比*/
     scla=stat*5;/*条形图和放大倍数,这里是安百分数的5倍的相素的宽度来显示的*/
     echo "";
   }
   echo "
  • ";
         echo "dataf
  • ";
         echo " ";/*输出条形码图*/
         printf("%.1f", "stat");
         echo "%
    ";
         /*输出本栏目投票数*/
         echo "single_vote
    ";
         echo "

    ";
       echo "总投票数:tot_votes ";
    }
    ?> 

    说明:
    在这里为了防止一人多投是采用记录最近的一位投票者的IP的方法来实现的,而最近的一位投票的IP地址是WEB客户机在对服务器发出请求时存储在环境变量REMOTE_ADDR中的。

    热门栏目