搜尋
首頁php教程php手册实例学习PHP之投票程序篇(二)

 

好了,基础的东西已经学完,让我们来进行实战吧!大家先下这个范例程序。然后可以在自己的平台上先试试看。相信这样会得到一点感性认识。
  
  
   在这个应用中一共使用了三个文件vote.phpconfig.php1.gif以及一个保存数据的文件(该文件的名字可以自由设定,在这里我们设为sum.txt),其中vote.php是主程序文件,config.php则用于设置一些经常需要修改的信息。
  
  
   //config.php文件
  
  
     
  
   //title变量设定本html档中的title标记,也就是在浏览器标题栏里出现的标题
  
   $title=读者类型调查表;
  
  
   //设定调查内容。这里用了一个数组,注意用""号把内容括起来
  
   $option= array("学生","工人","农民","知识分子","资本家","流氓");
  
  
   //设定调查结果保存到哪个文件中去
  
   $countfile = "sum.txt";
  
  
   //设定同一机器可以再次投票的时间
  
   $limitdate = time()+60*60*24*365;
  
  
   ?>
  
  
   // vote.php文件
  
  
   /*首先将配置信息装进来,这里我简单说明一下 requireinclude的区别,require通常放在PHP 程序的最前面,PHP 程式在执行前,就会先读入 require 所指定引入的档案,使它变成 PHP 程式网页的一部份。常用的函式,亦可以这个方法将它引入网页中。 include 则一般是放在流程控制的处理区段中。PHP 程式网页在读到 include 的档案时,才将它读进来。这种方式可以把程式执行时的流程简单化。 */
  
  
   config.php";?>
  
     /*下面这部分就是cookie了,它的expire时间在上面的config.php中设置,另外大家可能已经发现了,在这里有两个 if比较语句,第一个是检测是否已经有cookie设置,第二个则是为了避免人家还没有投票程序就把cookie发出去。*/
  
        if (isset($vote) && $vote=="Ready") $status = 1;
  
   else $status=0;
  
   if ($ready=="true")
  
   {
  
   setcookie("vote","Ready",$limitdate);
  
   }
  
   ?>
  
  
  
  
  
  
  
  
   charset=gb2312">
    
  
  
   bgcolor="#FFFFFF">
  
     //读出原来的选票结果,赋给变量$result
  
        if (file_exists ($countfile)){
  
   $result = file($countfile);
  
   }
  
   ?>
  
  
   /*下面是主程序 switch做了三个分支,Case 1、查看结果;Case 2、提交选择;Case 3、生成表   */
  
        switch ($elect) {
  
  
  
   /* 查看结果,实际就是把上面用file()函数读出来的变量显示出来*/
  
   case "查看结果":
  
   echo "";
  
   for($i=0;$ii++){
     echo "tr>"."".$option[$i]."";
     echo ""."img src='1.gif' width='";
     echo "$result[$i]*10";
  
   echo "' height='8'> ";
  
   echo ""."    ".$result[$i]."tr>";
     }
  
   echo "";
  
   break;
  
  
  
   /*把选择结果写入到文件中去,注意要用flock把文件锁住!虽然对投票程序来说这个问题不是特别   突出*/
  
   case "提交":
  
   if ($status == 1){
  
   echo "你已经投过票了";
  
   }elseif($sugest == 0){
  
   echo "you havn't choice";
  
   }else{
  
   if($fp=fopen($countfile,"w")){
  
   if(flock($fp,3)){
  
   for ($i=0; $ii++){
     if ($sugest == $i+1){
  
   $result[$i]=$result[$i]+1;
  
   }else $result[$i]=$result[$i] + 0;
  
   echo $option[$i]."    ".$result[$i]."br>";
     fwrite($fp,$result[$i]." ");
  
   }
  
   }else "投票失败";
  
   }else echo "投票失败";
  
   fclose($fp);
  
   }
  
   break;
  
  
   /*显示投票的表单*/
  
   default:
  
   echo "vote.php' method='post' name='form1'>";
     $sum = count($option);
  
   for ($i=0; $ii++){
     echo "sugest' value=";
     echo $i+1;
  
   if ($i==0) echo " CHECKED";
  
   echo ">".$option[$i]."br>";
     }
  
   echo "";
  
   echo "br>";
     echo "提交'>";
  
   echo "查看结果'>";
  
   echo "";
  
   }
  
   ?>
  
  
  
  
  
  
  
  
  
   这样一个简单的php的投票应用就完成了,说它简单是因为这个程序只完成了投票应用的几个最重要的功能,还有一些细节问题没有去处理。比如文件写失败之后的处理,用户关闭cookie功能的应付办法等等。具体的完善就留给读者朋友来解决了。
  
  



陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
3 週前By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解鎖Myrise中的所有內容
4 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。

SublimeText3 Linux新版

SublimeText3 Linux新版

SublimeText3 Linux最新版

DVWA

DVWA

Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中

Atom編輯器mac版下載

Atom編輯器mac版下載

最受歡迎的的開源編輯器

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。