PHP网上调查系统

head titlesurvey/title /head body form method=POST action=survey.php
pinput type=radio value=0 name=vote考查项目生机勃勃/p pinput type=radio
name=vote value=1侦察项目二/p pinput type=radio name=vote
value=2考察项目三/p pinput type=radio name=vote value=3侦察项目四/p
pinput type=radio name=vote value=4考察项目五/p pinput type=hidden
name=go value=1 pinput type=submit value=提交 name=B1/p a
href=survey.php?result=1查看结果/a /form /body /html

PHP互连网考查系统
那是二个简约的投票程序,对于刚同志学PHP和恋人的话是八个特不错的入门程序。在这里间给我们介绍一下,希望能对爱大家具有利于。
该类别是由以下多少个公文组成的:有HTML考察表单的survey.htm,完成考查功用的survey.php,记录考察项目标data.txt和笔录考察结果的survey.txt.此中data.txt和survey.txt大家可以用NOTEPAD分别创造之,并传到程序目录下。文件data.txt中存的是要举办考察的类型,注意每一种门类应占意气风发行;而survey.txt则足以是三个什么内容也远非的空文件。
Survey.htm的代码能够如如下所示: html head titlesurvey/title /head body
form method=POST action=survey.php pinput type=radio value=0
name=vote考察项目生龙活虎/p pinput type=radio name=vote value=1调查项目二/p
pinput type=radio name=vote value=2侦察项目三/p pinput type=radio
name=vote value=3考察项目四/p pinput type=radio name=vote
value=4考察项目五/p pinput type=hidden name=govalue=1 pinput type=submit
value=提交 name=B1/p a href=survey.php?result=1查看结果/a /form /body
/html
注意文件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
centerfont color=red您已投过票了,多谢您的涉企!/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 trtdlifont face=Verdana size=2; echo $dataf[$i]/font/tdtd
align=leftfont face=Verdana size=2; echo img src=/$imag/ height=20
width=$scla align=middle;/*出口条形码图*/ printf(%.1f, $stat[$i]);
echo %/font/tdtd font face=Verdana size=2; /*出口本栏目投票的数量*/ echo
$single_vote[$i]/font; echo /td/tr; } echo /tablep; echo font
face=Verdana size=2总投票的数量:$tot_votes /font; } ? 表达:
在那处为了堤防壹位多投是选用记录以来的一个人投票者的IP的主意来兑现的,而方今的一人投票的IP地址是WEB客户机在对服务器发出恳求时存款和储蓄在景况变量REMOTE_ADDPRADO中的.
笔者也是二个初大家,关于那篇随笔只怕有无数错误和不当之处迎接各位建议宝贵的思想和提议。多谢!
Personal Homepage: Email:wangyy@363.net

只顾文件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 centerfont
color=red您已投过票了,谢谢您的参与!/font/center; 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 table cellpadding=10; 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 trtdlifont face=Verdana size=2; echo dataf/font/tdtd align=leftfont
face=Verdana size=2; echo img src=/imag/ height=20 width=scla
align=middle ;/*出口条形码图*/ printf(%.1f, stat); echo %/font/tdtd
align=centerfont face=Verdana size=2; /*出口本栏目投票的数量*/ echo
single_vote/font; echo /td/tr; } echo /tablep; echo font face=Verdana
size=2总投票的数量:tot_votes /font; } ?

证实:在那处为了以免壹个人多投是利用记录以来的一人投票者的IP的措施来兑现的,而近年来的一个人投票的IP地址是WEB客商机在对服务器发出要求时存款和储蓄在意况变量REMOTE_ADDR中的。

发表评论

电子邮件地址不会被公开。 必填项已用*标注