当前位置:首页 期刊杂志

基于PHP+MySQL的在线投票网站设计

时间:2024-07-28

陈晓阳 牛余朋 关 放 王 潇 李 健

(中国人民解放军96630部队)

基于PHP+MySQL的在线投票网站设计

陈晓阳 牛余朋 关 放 王 潇 李 健

(中国人民解放军96630部队)

本文基于PH P+M y SQ L动态网站设计组合,以优秀课程投票评选为实际应用背景,设计了集用户管理、数据校验、资格审查、得票统计等功能于一体的在线投票网站,对设计过程进行了详细阐述,采用的设计方法对其他投票网站设计具有一定参考价值。

投票网站;动态网站;PH P

1 引言

投票活动一直以来是收集大众意见、进行民意调研的一种重要方式。一般来讲,传统投票方式收据收集过程较为复杂、票数统计任务繁重,相对于传统投票方式,在线投票方式则具有便捷、高效、低成本等诸多优点。随着互联网技术发展和普及,在线投票方式逐渐受到越来越多的用户青睐,已经逐渐取代传统投票,成为意见收集方式的主流。本文以优秀课程投票评选为实际应用背景,设计了一个简单的在线投票网站,所采用的设计过程可供其他同类网站参考。

2 实际背景

本网站设计的实际背景是:某单位前期组织了8次授课,为了评选优秀授课课程,该单位组织全部所属人员对优秀授课课程进行网上投票。全体人员每人均有1票,选择8次授课中的1次进行投票,选票一经投出,不能再做修改。

3 工作流程

投票网站的工作流程如图1所示,页面首次载入后,由于表单输入为空(用户尚未输入),因此后台数据库中的已有的投票数据将被读取并进行显示,并提示用户在表单中输入投票数据。当用户将自己的投票数据(包含用户的用户名、证件号码和投票去向三项数据)填写到表单中并进行提交后,网站将对用户输入的投票数据的正确性进行判定,共包含图1所示的8个判断环节,如果任何一个环节用户输入数据不正确,相应的提示信息将被给出,并要求用户对投票数据进行修改后进行重新输入提交。如果用户提交投票数据正确,则用户提交的投票数据将写入到网站后台数据库中,写入完毕后,后台数据库中投票数据将被重新读取,并在页面上显示提交投票数据后的最新得票情况。

图1 投票网站工作流程

4 页面布局

图2 页面布局示意图

网站主页的页面布局如图2所示,页面标题位于主页最上方,向下分别为投票说明和内容区,版权信息位于整个页面的最下方。内容区中包含用户输入区、提示信息和展示区。投票者在用户输入区中的表单中输入投票数据进行提交,相应的提示信息在其下方进行显示。展示区包含每次课程的缩略图,点击任一缩略图后可以进入到该次课程的视频录像播放页面,方便用户观看课程,每个缩略图下为课程名称和该课程的目前的得票情况。

5 数据库设计

图3 投票信息数据库表

图4 预先录入的测试用户信息

本文使用phpMyAdmin工具进行MySQL数据库操作,一定程度上避免了输入复杂的SQL语句。

如图3所示,网站使用的投票信息数据库表votedata共有4个字段,分别为ID(记录ID)、Name(投票人姓名)、Number(投票人证件号码)和VoteTo(投票去向)。ID和VoteTo采用INT数据类型,Name和Number采用VARCHAR数据类型。投票前,预先使用phpMyAdmin将投票人的信息录入到数据库中,每条记录的VoteTo字段都默认设置为空。如图4所示,本文录入了10个投票人的信息供测试使用。

6 功能实现

用户输入区采用表单提交的方式,代码如下:

投票人:

证件号码:

支持课程:

数据提交后,后台程序读取用户的输入,并判断是否输入全部为空。

$RVoter=$_POST['Voter'];

$RNumber=$_POST['Number'];

$RTheme=$_POST['Theme'];

if(($RVoter=='')&&($RNumber=='')&&($RTheme=='')){

$BlankCheck=0;

$MESSAGE="在上方填写姓名和XX证号后,填入您支持的去向号码,即可投出您手中的宝贵一票";

}

else{

$BlankCheck=1;

}

如果输入全部为空,则判断是否输入全部为空的变量$BlankCheck会被置0,并且存储提示信息的变量$MESSAGE会将提示输入投票信息的内容载入。否则$Blank-Check置1。这里需要说明的是,页面首次载入时,由于用户没有输入,因此也会出现输入全部为空的情况,提示用户输入投票信息。

当用户输入投票信息并点击提交后,则程序首先需要连接数据库,然后才能读取数据库内的数据,连接数据库的代码如下:

//数据库连接()

$dbhost='localhost';

$dbuser='root';

$dbpassword='';

$connection=mysql_connect($dbhost,$dbuser,$dbpass-word);

if(!$connection)

{

exit('连接失败');

}

$dbname='vote';

mysql_select_db($dbname,$connection);

连接数据库成功后,用户所提交的投票信息是否正确将被检查。以检查是否已投票为例说明检查过程,代码如下:对于未投票的用户,变量$row3为空,此时程序会继续检查用户的输入去向是否为空。但如果用户已经投票则变量$row3非空,这代表当前试图进行投票的用户已经投过票,因此$MESSAGE会载入提示用户勿重复投票的信息。

//VoteCheck检查是否已经投票

$sql3="SELECT*FROM`votedata`WHERE`Name`=' $RVoter'AND`Number`='$RNumber'AND`VoteTo`IS NOT NULL";

$result3=mysql_query($sql3);

if($result3)

{ $row3=mysql_fetch_array($result3);

if($row3)

{

$MESSAGE="您已投票,勿重复投票";

}

else{

//VoteToBlank检查投票去向是否为空

VoteToBlank(); }

如果全部检查均通过,则$Check置1,用户的投票数据会被写入到数据库中,如下:

if($Check==1){

//投票数据写入

$sql4="UPDATE `votetest`.`votedata`SET `Vote-To`='$RTheme'WHERE`votedata`.`Name`='$RVoter'";

$result4=mysql_query($sql4);

}

对页面重新载入,即可看到投票后的结果,投票过程中的页面显示和后台数据库记录分别如图5和图6所示。

7 结语

本文设计的投票网站,在后台数据库预先录入用户信息的前提下,可在数据提交过程中通过进行数据比对,对投票者投票资格进行审查,校验用户提交投票数据的正确性,得票情况在用户投票后可实时更新显示。本文所设计的投票网站整体结构简单清晰,经测试能够较好地满足实际应用需求,可通过进一步的修改完善,满足其他类似投票任务的需求,具备一定的可扩展性。

[1]李银矿,古丽米拉,郭斌.基于PH P技术的开放实验室管理系统的设计与实现[J].电脑与电信,2012(10):2 6-2 8.

[2]余光华.基于MySQL的网络教育平台系统的分析与设计[J].电脑与电信,2011(6):47-48.

Online Voting Website Design Based on PHP+MySQL

Chen Xiaoyang Niu Yupeng Guan Fang Wang Xiao Li Jian
(Army 96630 of PLA)

Based on the combination of PHP+MySQL dynamic web design,with example of course voting,this paper designs the online voting site with functions of user management,data validation,qualification examination,and votes statistics.In this paper,the design process is described in detail.The design method used for other voting website design has a certain reference value.

online voting;dynamic website;PHP

TP311.52

A

1008-6609(2016)10-0064-03

陈晓阳(19 8 9-),男,山东泰安人,硕士,工程师,研究方向为通讯技术。

免责声明

我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!