文章教程

6.3在线投票管理系统开发

9/17/2020 9:45:44 PM 人评论 次浏览

6.3 在线投票管理系统开发

对投票管理系统来说需要重点设计的页面是开始投票页面vote.php和投票结果页面voteok.php。计算投票页面voteadd.php是一个动态页面,没有相应的静态页面效果,只有累加投票次数的功能。

6.3.1 开始投票页面功能

开始投票页面vote.php主要是用来显示投票的主题和投票的内容,让用户进行投票,然后传递到voteadd.php页面进行计算。

详细的操作步骤如下:


01 打开刚创建的vote.php页面,输入网页标题“开始投票页面”,执行菜单栏“文件”→“保存”命令将网页保存。

02 在刚创建背景图像的单元格中,执行菜单栏“插入”→“表单”→“表单”命令,再执行菜单“插入”→“表格”命令,在表单中插入一个3行2列的表格,并在表格中执行菜单栏“插入”→“表单”→“单选按钮”插入一个“单选按钮”,选择“单选按钮”并在“属性”面板中将它命名为ID,如图6-19所示。

alt

图6-19 设置“单选按钮”名称

03 执行菜单栏“插入”→“表单”→“按钮”命令插入两个按钮,一个是用来提交表单的按钮命名为“投票”,另外一个是用来查看投票结果的按钮命名为“查看”,效果如图6-20所示。

alt

图6-20 投票首页的效果图

04 单击“应用程序”面板中“绑定”标签上的alt按钮,在弹出的下拉菜单中选择“记录集(查询)”选项,在打开的“记录集”对话框中输入设定值,如图6-21所示。

alt

图6-21 “记录集”对话框

05 绑定记录集后,将记录集中的字段插入至vote.php网页的适当位置,如图6-22所示。

alt

图6-22 记录集的字段插入至vote.php网页

06 单击“单选按钮”将字段ID绑定到单选按钮上,绑定后在“单选按钮”的属性面板中的“选定值”中添加了插入ID字段的相应代码为<?php echo $row_Rsvote['ID']; ?>,如图6-23所示。

alt

图6-23 插入字段到单选按钮

07 加入“服务器行为”中“重复区域”的命令,单击vote.php页面中的表格,如图6-24所示。

alt

图6-24 选择记录行

08 单击“应用程序”面板群组中的“服务器行为”标签上的alt按钮,在弹出的下拉菜单中选择“重复区域”选项,在打开的“重复区域”对话框中设定一页显示Rsvote记录集中的所有记录,如图6-25所示。

alt

图6-25 “重复区域”对话框

09 单击“确定”按钮回到编辑页面,会发现先前所选取的区域左上角出现了一个“重复”的灰色标签,这表示已经完成设置。

alt

图6-26 设置重复后的效果

10 在vote.php页面中,将鼠标放在表格中,在“标签选择器”上单击<form>标签,并在“属性”面板设置表单form1的“动作”为设置投票数据增加的页面voteadd.php,“方法”为POST,如图6-27所示。

alt

图6-27 设置表单动作

下面简单介绍一下PHP $_GET变量和$_POST变量。


1.$_GET变量

$_GET变量是一个数组,内容是由HTTP GET方法发送的变量名称和值。$_GET变量用于收集来自method="get"的表单中的值。从带有GET方法的表单发送的信息,对任何人都是可见的(会显示在浏览器的地址栏),并且对发送的信息量也有限制(最多100个字符)。

在使用$_GET变量时,所有的变量名和值都会显示在URL中。所以在发送密码或其他敏感信息时,不应该使用这个方法。不过,正因为变量显示在URL中,因此可以在收藏夹中收藏该页面,在某些情况下这是很有用的。


2.$_POST变量

$_POST变量是一个数组,内容是由HTTP POST方法发送的变量名称和值。

$_POST变量用于收集来自method="post"的表单中的值。从带有POST方法的表单发送的信息,对任何人都是不可见的(不会显示在浏览器的地址栏),并且对发送信息的量也没有限制。

应该在任何可能的时候对用户输入进行验证。客户端的验证速度更快,并且可以减轻服务器的负载。不过,任何流量很高以至于不得不担心服务器资源的站点,也有必要担心站点的安全性。如果表单访问的是数据库,就非常有必要采用服务器端的验证。在服务器验证表单的一种好的方式是:把表单传给它自己,而不是跳转到不同的页面。这样用户就可以在同一张表单页面得到错误信息。用户也就更容易发现错误了。


11 单击页面中的“查看”按钮,切换至“标签检查器”选项卡,单击“行为”面板下的按钮,在弹出的下拉菜单中选择“转到URL”选项,如图6-28所示。

alt

图6-28 选择“转到URL”

12 打开的“转到URL”对话框,在URL文本框中输入要转到的文件voteok.php,如图6-29所示。然后单击“确定”按钮,完成”转到URL”设置。

alt

图6-29 输入”转到URL”的文件地址

6.3.2 计算投票页面功能

计算投票页面voteadd.php,主要方法是接收vote.php所传递过来的参数然后再进行累加计算。计算投票页面voteadd.php只用于后台计算用,希望投票者在成功投票之后转到投票结果页面voteok.php,只要加入代码header("location:voteok.php");到voteadd.php页面就可以完成对voteadd.php页面的制作,本小节核心代码如下:

alt

UPDATE语句用于在数据库表中修改数据。

语法:

alt

因为SQL对大小写不敏感,所以UPDATE与update等效。

为了让PHP执行上面的语句,我们必须使用mysql_query( )函数。该函数用于向SQL连接发送查询和命令。

6.3.3 显示投票结果页面

显示投票结果页面voteok.php主要是用来显示投票总数结果和各投票的比例结果,静态页面设计效果如图6-30所示。

alt

图6-30 显示结果页面设计效果图

01 单击“应用程序”面板群组中的“绑定”面板上的alt按钮,在弹出的下拉菜单中选择“记录集(查询)”选项,在打开的“记录集”对话框中,设定如图6-31所示。

alt

图6-31 设置“记录集”属性

02 再次单击“应用程序”面板中的“绑定”面板上的alt按钮,接着在弹出的下拉菜单中选择“记录集(查询)”选项,在打开的“记录集”对话框中单击“高级”按钮,进入高级编辑窗口,并在SQL对话框中加入以下代码:

alt

如图6-32所示。

alt

图6-32 “记录集”对话框设置

03 单击“确定”按钮,完成记录集的设置,绑定记录集后,将记录集中的字段插入至voteok.php网页中的适当位置,如图6-33所示。

alt

图6-33 字段的插入

04 单击alt按钮,进入“代码”视图编辑页面,在“代码”视图编辑页面中找到如下代码:

alt

05 按下面步骤修改此段代码。

(1)去掉“/”前面的?>的“/”后面的<?php,得到代码:

alt

(2)把<?php echo和%>之间的代码用括号括上,得到代码:

alt

(3)在代码后面加入*100,得到代码:

alt

(4)在代码前面加入round,在*100前面加入小数点保留位数4,并用()括上,得到代码:

alt

06 代码修改之后,因为控制网页中的长度也是用到这段代码,所以将这段代码进行复制,然后再单击alt按钮,切换到“代码”窗口,选择<img>中的width的值将其代码进行粘贴,因为在图案中没有用到小数点的设置,所以将代码前面round和保留位数4删除,得到代码为:

alt

这样图像就可以根据比例的大小进行宽度的缩放,设置如图6-34所示。

alt

图6-34 设置图像的缩放

07 单击alt按钮,回到“设计”编辑窗口,加入“服务器行为”中“重复区域”的命令,选择voteok.php页面中需要重复的表格,如图6-35所示。

alt

图6-35 选择需要重复的表格

08 单击“应用程序”面板群组中的“服务器行为”标签上的alt按钮,在弹出的下拉菜单中选择“重复区域”选项,在打开的“重复区域”对话框中设定显示Rs记录集中的所有记录,如图6-36所示。

alt

图6-36 “重复区域”对话框

09 单击“确定”按钮回到编辑页面,会发现先前所选取的区域左上角出现了一个“重复”的灰色标签,这表示已经完成设置。

10 单击页面中的“返回”按钮,切换至“标签<input>”标签,再单击“行为”面板上的alt按钮,在弹出的下拉菜单中选择“转到URL”选项,在打开的“转到URL”对话框中的URL文本框输入要转到的文件“vote.php”,如图6-37所示。

alt

图6-37 输入转到URL的文件地址

11 单击“确定”按钮,完成显示结果页面voteok.php的设置,测试浏览效果如图6-38所示。

alt

图6-38 显示投票结果页面的效果图

6.3.4 防止页面刷新功能

一个投票管理系统是要求公平、公正的投票,不允许进行多次投票,所以在设计投票开始系统时有必要加入防止页面刷新的功能。

实现该功能的详细操作步骤如下:


01 打开开始投票页面vote.php,把光标放在表单中,执行菜单栏“插入”→“表单”→“隐藏域”命令,插入一个隐藏字段voteip。

02 单击隐藏域alt图标,打开“属性”面板。设置隐藏域的值为<?php echo$_SERVER['REMOTE_ADDR'];?>取得用户IP地址,如图6-39所示。

alt

图6-39 设置隐藏域的值

03 将实现防止刷新的程序放到voteadd.php页面里面,打开前面制作的计算投票页面voteadd.php,在相应的位置加入代码,如图6-40所示。

alt

图6-40 加入防止刷新的代码

具体的代码分析如下:

alt

04 完成防止页面刷新设置。当用户再次投票时,系统可以根据IP的惟一性进行判断。当用户再次投票的时候,将转到投票失败页面sorry.php,页面设计如图6-41所示。

alt

图6-41 投票失败页面效果图

在sorry.php页面有两个页面链接,“回主页面”链接到vote.php,“查看结果”链接到voteok.php。

教程类别