PHP新手上路(九)_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文本文件需要有写权限。   

时间: 2024-10-15 16:24:39

PHP新手上路(九)_php基础的相关文章

PHP新手入门学习方法_php基础

经常在某些论坛和QQ群里看到一些朋友会问"怎样才能学好PHP,怎样才能学好***语言 ",但别人回答最多的是:最"简单"的开始.这个简单也许真的不简单,呵呵.下面我想分享一下自己学习的一些过程. 每个人的学习方式不同,写这篇文章的目的是分享一下自己的学习过程,仅供参考,不要一味的用别人的学习方法,找对自己有用的学习方式 经常在某些论坛和QQ群里看到一些朋友会问"怎样才能学好PHP,怎样才能学好***语言 ",但别人回答最多的是:从最"简

【大数据新手上路】“零基础”系列课程--如何通过大数据开发套件Data IDE玩转大数据

免费开通大数据服务:https://www.aliyun.com/product/odps 老板每天都要出这些业务数据(销售总额.总交易量.总点击次数.总加入购物车次数.总加入收藏夹次数...),我得想个一劳永逸的方法了- 幸好,我有数加神器大数据开发套件Data IDE,搞定业务工作流调度,每日定时自动执行任务,分分钟输出计算结果. 妈妈再也不用担心我焦头奋战了-- 本教程是一个大数据开发套件Data IDE零基础教程,通过Data IDE将多源异构的数据集导入云端MaxCompute,进行计

一贴学会PHP 新手入门教程_php基础

一贴学会PHP 系统长度32678字节,除去标点,还可以打一万字,如果写满,那也不短了.但是-本着,变态的简单,流畅到底的适合广大浮躁的MJJ们浏览的原则,我尽量精简的有效的实用的阐述PHP的学习之道. 本文适宜受众:熟练HTML,但是对PHP等动态语言一无所知,却在用dedecms或discuz等php程序的人.当然,还要你有想学PHP的兴趣.毕竟纵使再简单也需要学习的动力,兴趣无疑是最好的.不熟悉电脑操作,绝对路径,相对路径等东西的请上火星. 前提准备:态度:认真,细心,不浮躁.时间:仅需两

【大数据新手上路】“零基础”系列课程--Flume收集网站日志数据到MaxCompute

免费开通大数据服务:https://www.aliyun.com/product/odps 概述:大数据时代,谁掌握了足够的数据,谁就有可能掌握未来,而其中的数据采集就是将来的流动资产积累. 任何规模的企业,每时每刻都在产生大量的数据,但这些数据如何归集.提炼始终是一个困扰.而大数据技术的意义确实不在于掌握规模庞大的数据信息,而在于对这些数据进行智能处理,从中分析和挖掘出有价值的信息,但前提是如何获取大量有价值的数据. 相信很多做过网站管理的人对网站访问日志(Access Log)应该不会陌生,

【大数据新手上路】“零基础”系列课程--日志服务(Log Service)采集 ECS 日志数据到 MaxCompute

随着公司业务的增多,云服务器 ECS 上的日志数据越来越多,存储开销越来越大,受限于日志的大小和格式,分析的速度非常缓慢,导致海量数据在沉睡,不知道发挥作用,如何能将这些数据进行归集.提炼和智能化的处理始终是一个困扰.通过日志服务投递日志数据到MaxCompute便可以让用户按照不同的场景和需求.以不同的方式复用数据,充分发挥日志数据的价值. 使用日志服务投递日志数据到MaxCompute具有如下优势: 使用非常简单.用户只需要完成2步配置即可以把日志服务Logstore的日志数据迁移到MaxC

【大数据新手上路】“零基础”系列课程--MySQL 数据整库迁移到 MaxCompute

随着公司业务的增多,云数据库 RDS 下的 MySQL 数据库的表越来越多,想要把它全部迁移到 MaxCompute 中进行计算分析,但又愁要配置太多次同步任务.如何能将大量的数据表一次性上传到 MaxCompute 中呢?通过大数据开发套件的整库迁移功能,便可快速完成 MySQL 数据整库迁移到 MaxCompute,从而节省同步时间,提高工作效率. 下面介绍一个适用于中小企业用户,高效率低成本的数据同步方案: 对于自建或云数据库 RDS 的 MySQL 数据库中的数据,都可以通过整库迁移功能

我的论坛源代码(九)_php基础

<html> <head> <title>Untitled Document</title> <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> <STYLE type=text/css> P {FONT-FAMILY: normal; FONT-SIZE: 9pt; LINE-HEIGHT: 14pt} DI

杏林同学录(九)_php基础

班级成员留言簿管理: class/notebook/delnote.php <?php session_start(); if(!session_is_registered("superlogin"))//检查是否注册 { echo "<a href='../../superadmin.php'>请重新进行管理员登陆<BR>"; exit; } include ("../config.php"); if($del==

PHP常用代码大全(新手入门必备)_php基础

1.连接MYSQL数据库代码 <?php $connec=mysql_connect("localhost","root","root") or die("不能连接数据库服务器: ".mysql_error()); mysql_select_db("liuyanben",$connec) or die ("不能选择数据库: ".mysql_error()); mysql_query

PHP新手上路基础教程目录

基础教程 PHP新手上路基础入门教程目录清单,本教程由网页教学网收集整理希望对初学PHP的朋友有所帮助,当您转载时别忘了加上本站的连接,谢谢! PHP新手上路基础简介 为什么要选择PHP 从一个简单的程序来了解PHP PHP入门之数据类型 建设一个简单交互的网站(一) 用include和require进行模块化,从HTML到PHP 建设一个简单交互的网站(二) 计数器 反馈表单 站内搜索引擎 建设一个简单交互的网站(三) 密码验证 建设一个简单交互的网站(四) 文件上传 建设一个简单交互的网站(