PHP新手上路(九)

建设一个简单交互的网站(五)

8. 投票系统

  在许多时候,我们需要收集上网者和网友们的意见。例如:新版页面与旧版页面的比较;对某一事情的看法;对体育比赛结果的预测等等。这时候,你需要一个非常有效的网上调查系统。使用PHP就可以非常方便地实现你的这一构想。

8.1 投票系统(mypolls.php3):

<?
$status=0;
if(isset($polled)&&($polled=="c-e")){
$status=1;
}
#echo "$status";
if(isset($poll)&&($status==0)){
setcookie("polled","c-e",time()+86400,"/");#time=24h
}
?>
<html>
<head>
<title>新版页面调查</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<style type="text/css">
<!--
.tb { border="1" bordercolor="#009933" cellspacing="0" font-size: 9pt; color: #000000}
.head { font-family: "宋体"; font-size: 12pt; font-weight: bold; color: #009933; text-decoration: none}
.pt9 { font-size: 9pt}
a.p9:link { font-size: 9pt; color: #000000; text-decoration: none}
a.p9:visited { font-size: 9pt; color: #000000; text-decoration: none }
a.p9:hover { font-size: 9pt; color: #FF0000; text-decoration: underline}
a.p9:active { font-size: 9pt; color: #FF0000; text-decoration: underline }
-->
</style>
</head>
<body bgcolor="#FFFFFF">
<div class="head">与旧版页面相比较您觉得新版页面:</div><br>
<?
if(!isset($submit)){
?>
<form action="myPolls.php3" method="get">
<input type="radio" name="poll_voteNr" value="1" checked >
<span class="pt9">信息量更大</span> <br>
<input type="radio" name="poll_voteNr" value="2" >
<span class="pt9">网页更精美</span> <br>
<input type="radio" name="poll_voteNr" value="3" >
<span class="pt9">没什么改进</span> <br>
<input type="radio" name="poll_voteNr" value="4" >
<span class="pt9">其它</span> <br>
<input type="submit" name="submit" value="OK">
<input type="hidden" name="poll" value="vote">
<A HREF="myPolls.php3?submit=OK" class="p9">查看调查结果</A>
</form>
<?
/*
如果想增加其它的选项可直接加上即可
*/
}else{
$descArray=array(1=>"信息量更大",
2=>"网页更精美",
3=>"没什么改进",
4=>"其它"
);
$poll_resultBarHeight = 9; // height in pixels of percentage bar in result table
$poll_resultBarScale = 1; // scale of result bar (in multiples of 100 pixels)
$poll_tableHeader="<table border=1 class="tb">";
$poll_rowHeader="<tr>";
$poll_dataHeader="<td align=center>";
$poll_dataFooter="</td>";
$poll_rowFooter="</tr>";
$poll_tableFooter="</table>";
$coutfile="data.pol";
$poll_sum=0;

// read counter-file
if (file_exists( $coutfile))
{
$fp = fopen( $coutfile, "rt");
while ($Line = fgets($fp, 10))
{
// split lines into identifier/counter
if (ereg( "([^ ]*) *([0-9]*)", $Line, $tmp))
{
$curArray[(int)$tmp[1]] = (int)$tmp[2];
$poll_sum+=(int)$tmp[2];
}
}
// close file
fclose($fp);
}else{//
for ($i=1;$i<=count($descArray);$i++){
$curArray[$i]=0;
}
}
if(isset($poll)){
$curArray[$poll_voteNr]++;
$poll_sum++;
}
echo $poll_tableHeader;

// cycle through all options编历数组
reset($curArray);
while (list($K, $V) = each($curArray))
{
$poll_optionText = $descArray[$K];
$poll_optionCount = $V;
echo $poll_rowHeader;

if($poll_optionText != "")
{
echo $poll_dataHeader;
echo $poll_optionText;
echo $poll_dataFooter;

if($poll_sum)
$poll_percent = 100 * $poll_optionCount / $poll_sum;
else
$poll_percent = 0;
echo $poll_dataHeader;

if ($poll_percent > 0)
{
$poll_percentScale = (int)($poll_percent * $poll_resultBarScale);
}

printf(" %.2f %% (%d)", $poll_percent, $poll_optionCount);

echo $poll_dataFooter;
}

echo $poll_rowFooter;
}

echo "总共投票次数:<font color=red> $poll_sum</font>";
echo $poll_tableFooter;
echo "<br>";
echo "<input type="submit" name="Submit1" value="返回主页" onClick="javascript:location='http://gophp.heha.net/index.html'">";
echo " <input type="submit" name="Submit2" value="重新投票" onClick="javascript:location='http://gophp.heha.net/mypolls.php3'">";
if(isset($poll)){
// write counter file
$fp = fopen($coutfile, "wt");
reset($curArray);
while (list($Key, $Value) = each($curArray))
{
$tmp = sprintf( "%s %dn", $Key, $Value);
fwrite($fp, $tmp);
}
// close file
fclose($fp);
}
}
?>
</body>
</html>

注释:从上面我们可以看出该投票系统的基本过程:
1、打开文件取得数据到数组$curArray(文件不存在则初始化数组$curArray)
2、编历数组,处理数据得到所需值
3、计算百分比,控制统计bar图像宽度
4、将数据保存到"data.pol"中

   这里有一点是需要注意:这里的data.pol文本文件需要有写权限。

(0)

相关推荐

  • PHP新手上路(九)

    建设一个简单交互的网站(五) 8. 投票系统 在许多时候,我们需要收集上网者和网友们的意见.例如:新版页面与旧版页面的比较:对某一事情的看法:对体育比赛结果的预测等等.这时候,你需要一个非常有效的网上调查系统.使用PHP就可以非常方便地实现你的这一构想. 8.1 投票系统(mypolls.php3): <? $status=0; if(isset($polled)&&($polled=="c-e")){ $status=1; } #echo "$stat

  • 垃圾站全教程--之一(新手上路)

    我为什么要在新人栏介绍垃圾站? 因为落伍区都是MJJ老鸟,你帖了他未必看,你辛苦敲半天键盘他可能  我得意的飘. R: 还是为新人提供点东西吧,------而且这里有不少新站长,说句老实话吧,最初做站还是能马上有收益最好.          一:可以坚定你做站的信心,有了第一次的收获,你可能不会轻易放弃          二:可以减少你的前期投入,毕竟有钱人还是不多的,HOHO ,          三:网站建起来并不是一件很容易的事情,需要相当多的专业知识,你不可能短时间搞明白,甚至你可能不知

  • PHP新手上路(十三)

    PHP资源 12. PHP资源 你可以通过web上的众多资源更多的了解PHP3.许多邮件列表和书籍对你都非常有用. 12.1 站点 PHP的爆炸性流行使得一夜之间出现了很多基于PHP的站点,其中不少站点有在线教程.范例代码.技巧和提示等内容. 国内  http://www.phpuser.com/ - PHP中文用户,也就是这里了  http://www.phpx.com/ - 中国PHP联盟  http://www.phpsite.net/ - PHP专门站  http://www.phpch

  • PHP新手上路(十四)

    其他杂项 13.1 生成图像 PHP可以操作处理图像.如果你已经安装了GD库,你甚至可以利用PHP生成图像. <? Header("Content-type: image/gif"); $string=implode($argv," "); $im = imagecreatefromgif("images/button1.gif"); $orange = ImageColorAllocate($im, 220, 210, 60); $px

  • PHP新手上路(二)

    为什么要选择PHP 2. 竞争对手:ASP,mod_perl,JSP 用于实现交互式动态网页的技术有好多,其中CGI又称通用网关接口(Common Gateway Interface),是外部程序和WEB服务器之间的标准编程接口,但是CGI程序带来的缺点实在太多:而Perl很好地解决了CGI中的问题,被用来驱动复杂的WEB技术:微软的ASP(Active Server Pages)的出现,以它容易上手.轻松编写程序和微软件强有力的支持后盾使得ASP一下子成了许专业编程人员和非专业编程人员的宠儿:

  • PHP新手上路(三)

    从一个简单的程序来了解PHP PHP站点的在线教程已经很棒了.而本文的该部分将让你对PHP熟悉一点.我不可能做到没有任何遗漏,我的目的只在于能让你迅速开始你的PHP编程. 3.1 首要条件 你首先必须要有一个正在工作着的支持PHP的web服务器.我假定在你的服务器上所有PHP文件的扩展名为.php3. 3.2 PHP的安装 有关PHP的安装配置,可以查阅网页陶吧上的"PHP安装全攻略"专题文章. 3.3 语法 从语法上看,PHP语言近似于C语言.可以说,PHP是借鉴C语言的语法特征,由

  • PHP新手上路(六)

    建设一个简单交互的网站(二) 5.5 计数器 让我们在首页上加上一个计数器.这个例子已经被讲过多次了,但是还是有利于演示怎样读写文件以及创建自己的函数.counter.inc包含以下代码: <? /* || 一个简单的计数器 */ function get_hitcount($counter_file) { /* 将计数器归零 这样如果计数器还未被使用,初始值将是1 你当然也可以把初始值设成20000来骗人咯 */ $count=0; // 如果存放计数器文件已经存在,读取其中的内容 if (

  • 滑动门,简洁,新手上路制作篇 (小鸽子系列)

    以前回复过几个朋友,关于滑动门的代码,那时我还没有用上IE7,FF,结果,发现只能在IE6下运行,代码也很长;今天又有朋友问我这个,我只好花一点时间,终于把这个东东完成了,希望大家喜欢; 兼容IE7;FF;IE6 代码更简洁,更易读; ▒ 恋婷滑动门技术 //中的onmouseover 改成 onclick; //]]> 流行音乐 美女写真 平面设计 网络学堂 恋爱宝典 Q小鸽子 流行音乐 的内容 美女写真 的内容 平面设计 的内容 网络学堂 的内容 恋爱宝典 的内容 [Q小鸽子] 的内容 [C

  • PHP新手上路(十)

    建设一个简单交互的网站(六) 9. 简易banner动态更替 不知大家有没有发现各大站点上的标头广告banner,我们每次访问这些站点时,都会看到不同的广告图标,或者如果你每次刷新页面时,这些广告banner就会不断地随机更替变换.要实现这种效果虽然用javascript也可以达到(象天极网站的动态变换广告banner就是通过调用javascript来实现的),但是如果我们用PHP的话,我们还可以结合数据库来做数据量很大,如每日一题之类的功能.费话少说,让我们立即来看看如何用PHP来实现bann

  • PHP新手上路(八)

    7. 文件上传 你可以利用PHP实现文件的上传功能,注意客户端的浏览器应该是Netscape3以上或者IE3以上的版本.同时,因为本程序与你的PHP配置文件(PHP3为php3.ini,PHP4为php.in)设置有关.在执行该程序之前请先检查您的PHP配置文件有没有做好如下的设置: 将;upload_tmp_dir该行的注释符,即前面的分号":"去掉,使该行在php.ini文档中起作用.upload_tmp_dir是用来定义上传文件存放的临时路径,在这里你还可以给其定义一个绝对路径,

随机推荐