PHP设计在线投票系统

2014-12-31 15:56吴春艳
电脑知识与技术 2014年35期
关键词:类库IP地址代码

吴春艳

摘要:在线投票是目前做网上调查时非常实用的功能。该文介绍了PHP设计投票管理系统的设计方法和实现思路,并给出了具体的实现代码。

关键词:PHP;库;数据库

中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2014)35-8429-02

Designing Online Voting with PHP Programming Language

WU Chun-yan

(Henan Traffic and Senior Technical school, Zhumadian 463000, China)

Abstract:The voting system is very popular in on survey.The article introduce the way and the realized thread with php programming language,and it provides the detailed codes.

Key words: PHP; library; database

1 概述

投票系统可以实现在线投票、在线查看投票的结果。该文在对投票系统中的关键技术,如动态生成投票主题及选项、通过3D饼形图分析投票结果、有效地限制投票次数等方面进行了介绍。

2 数据库设计

PHP设计程序时,往往采用MySQL作为后台数据库。目前MySQL是完全网络化的跨平台的关系数据管理系统,具用体积小,速度快,源码开放,安全性高等特点。本系统数据库名称tp,主要涉及两张表。

2.1 投票主题表tpzt,如表1所示

2.2 单项投票选项数据表dxtpxx,如表2所示

3 程序实现

3.1 动态生成投票主题和选项

通过Web页面来实现主题及选项的添加,实际上是将表单中的数据添加至数据库表中。部分程序代码如下。

<? Php

$cx=”select * from tpzt”

$jg=mysql_query($cx);

While($myrow=mysql_fetch_array($result)){

?>

If ($submiit=”单选” and $files[‘tppic][‘name]!=””) { //判断是否单选,并且有图片上传

$tptp=$_FILES[‘tppic][‘size];

3.2 通过3D饼形图分析投票结果

使用3D饼形图能够比较直观地展示投票结果,3D饼图的创建使用的是jpgraph类库。Jpgraph是一个强大的绘图组件,能根据用户的需要绘制任意图形。用户只要提供用户数据,就可以调用绘图函数把处理的数据填进去自动绘制。另外jpgraph需要类库的支持,如果用户 jpgraph类库仅对当前有效,只需将jpgraph压缩包下的src文件夹中的全部文件复制到网站所在目录的文件夹中即可。

应用jpgraph创建3D饼形图时,首先需要连结数据库,应用include_once语句引用指定的文件,然后编写代码实现投票数量的统计,最后创建Graph对象,设置字体及图例的字体和画布的位置,将图形输出。关键代码如下。

<?php

Include(“conn/conn.php”)

Include_once(“jpgraph/jpgraph/jpgraph_pie.php”)

Include_once(“jpgraphp/jpgraph_3d.php”);

$query=mysql_0uery(“select sum(tbx) as tpm from tbdx where tbzt=$GET[votezt]”);

$graph=new PieGraph(650,300),auto);

$graph→SetShadow( ); //创建画布阴影

$graph→title→Set(“应用3D饼形图统计优秀负责人”);

$graph→title→SetFont(FF_SIMSUN,FS_BOLD);

$graph→legend→SetFont(FF-SIMSUN,FS_NORMAL); //设置图例字体

$p2=new PiePlot3D($resultes) //创建3D饼形图对象

$p2→SetLegends($vote_content);

.?>

3.3 使用Cookie投票限制

Cookie是一种能够让网站服务器把少量数据储存到客户端的硬盘或内存,或是从客户端的硬盘读取数据的一种技术。使用Cookie控制重复投票的原理是:当用户使用投票系统时,系统将判断当前客户端的Cookie的值是否为空,若为空则可以进行投票。关键代码如下。

While(list($name,$value)=each($_post)){

$k+=$name;

If(is_numeric($name)==true) {

Mysql_qurery(“update tpdx set tps= tps+1 where tp tbid=”$name””);

}

If($k=0)

Echo “”;

}

Else { if ($v_flag=0) {

$sql=”update tp_jl set tp_jls=tp_jls+1 where tp_jlh=$r”;

Mysql_query($sql,$conn);

$_SESSION[tp]=1

3.5 使用IP 限制投票

Cookie和Session都是对投票的时间间隔进行控制,并没有真正完全对重复投票进行控制,通过IP地址可以限制重复投票,它的主要原理:当用户在在客户端投票时,先获取得IP地址,如果该IP地址存在,则说明 已经进行过投票。关键的代码如下。

$ip=getenv(“REMMOTE_ADDR”); //获取客户端的IP地址

If($submit==true) {

If(tb_pb_h==””) {

Echo“alert(‘没有选择)windows.lcation.href=tp.php?tp_zt=$_POST[tpzt]

猜你喜欢
类库IP地址代码
铁路远动系统几种组网方式IP地址的申请和设置
用Java编写客户机/服务器端应用程序
Python在数据可视化中的应用
创世代码
创世代码
创世代码
创世代码
IP地址切换器(IPCFG)
数据结构课程教学改革方案和应用效果
数据结构可视化类库的设计与实现