手把手做一个PHP 投票系统

阅读更多

一个 基本的投票系统 即 根据一个主题 以提供投票选项为条件选出正确的选择项 (一个或多个),然后对投票选项进行分析和调查等等。

为了使得一个投票系统更完善和合理,可以增加注册用户 控制IP的投票次数和权限等功能。

一个基本的投票系统 流程图可以如下

手把手做一个PHP 投票系统_第1张图片

 

 

步骤:

1。创建一个数据库,通过数据库可以来存储投票的主题,内容信息,以及投票的结果,通过数据库来存储注册用户的信息以及控制Ip等辅助配置功能。

2.创建用户注册和登录模块,通过email地址来激活注册的用户,只有成功激活的用户才可以进行投票

3。创建投票主题和投票内容浏览模块。其中IP不能重复投票。通过某种图像分析图来分析投票的结果。

4.后台管理模块,添加投票主题内容和选项,并可以设计投票分为单选或多选。

支持图片功能 可以后期加上。

 

创建如下的数据库

 

SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";


/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;

--
-- 数据库: `xhvote_gbk`
--

-- --------------------------------------------------------

--
-- 表的结构 `xh_config`
--

CREATE TABLE IF NOT EXISTS `xh_config` (
  `username` varchar(100) NOT NULL COMMENT '管理员名字',
  `password` varchar(100) NOT NULL COMMENT '管理员密码',
  `webname` varchar(100) NOT NULL,
  `weburl` varchar(100) DEFAULT NULL,
  `systemurl` varchar(100) DEFAULT NULL,
  `restrictip` int(11) DEFAULT NULL COMMENT '是否限制投票的IP',
  `allowview` int(11) DEFAULT NULL COMMENT '是否允许用户查看投票结果',
  `refusetime` int(11) DEFAULT NULL COMMENT '限制某个ip多长时间以后才可以再次投票',
  `getuserinfo` int(11) DEFAULT NULL COMMENT '是否获取用户系统信息',
  PRIMARY KEY (`username`)
) ENGINE=MyISAM DEFAULT CHARSET=gbk COMMENT='系统配置表';

-- --------------------------------------------------------
INSERT INTO `xh_config` (`username`, `password`, `webname`, `weburl`, `systemurl`, `restrictip`, `allowview`, `refusetime`, `getuserinfo`) VALUES
('admin', '21232f297a57a5a743894a0e4a801fc3', '雪晖在线', 'http://www.xhway.net', 'http://localhost:8081/xhvote_gbk/', 0, 1, 12, 1);

--
-- 表的结构 `xh_ip`
--

CREATE TABLE IF NOT EXISTS `xh_ip` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `sid` int(11) NOT NULL COMMENT '投票系列的主键',
  `ip` varchar(20) DEFAULT NULL COMMENT '用户IP',
  `vtime` datetime DEFAULT NULL COMMENT '用户最后访问时间',
  PRIMARY KEY (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=gbk AUTO_INCREMENT=26 ;

-- --------------------------------------------------------

--
-- 表的结构 `xh_question`
--

CREATE TABLE IF NOT EXISTS `xh_question` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `question` varchar(100) NOT NULL,
  `imgurl` varchar(100) NOT NULL,
  `linkurl` varchar(200) DEFAULT NULL,
  `sid` int(11) NOT NULL,
  `tid` int(11) NOT NULL,
  `ps` int(11) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=gbk AUTO_INCREMENT=233 ;

-- --------------------------------------------------------

--
-- 表的结构 `xh_subject`
--

CREATE TABLE IF NOT EXISTS `xh_subject` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `subject` varchar(40) NOT NULL,
  `qx` datetime NOT NULL COMMENT '主题过期时间',
  PRIMARY KEY (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=gbk AUTO_INCREMENT=33 ;

-- --------------------------------------------------------

--
-- 表的结构 `xh_title`
--

CREATE TABLE IF NOT EXISTS `xh_title` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `title` varchar(40) NOT NULL,
  `sid` int(11) NOT NULL,
  `ms` int(11) NOT NULL,
  `vcount` int(11) NOT NULL,
  `listtype` int(11) NOT NULL,
  `listrows` int(11) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=gbk AUTO_INCREMENT=30 ;

-- --------------------------------------------------------

--
-- 表的结构 `xh_userinfo`
--

CREATE TABLE IF NOT EXISTS `xh_userinfo` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(40) NOT NULL,
  `sex` varchar(6) NOT NULL,
  `idcard` varchar(20) NOT NULL,
  `tel` varchar(20) NOT NULL,
  `address` varchar(50) NOT NULL,
  `email` varchar(30) NOT NULL,
  `content` varchar(100) NOT NULL,
  `sid` varchar(10) NOT NULL,
  `qids` varchar(50) NOT NULL,
  `ip` varchar(20) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=gbk AUTO_INCREMENT=54 ;

 

改写数据库连接

 


 主要的核心逻辑

\r\n";
	echo "\r\n";
	echo "\r\n";
	echo "\r\n";
	echo "\r\n";
	echo "\r\n";
}
function successmsgbox()
{
	echo "";
}
function failmsgbox($msg)
{
	echo "";
}
function logout()
{
	$_SESSION["admin"]="";
	redirect('login.php');	
}
function redirect($url)
{
	die("");
}
function check()
{
	
	if(!isset($_SESSION["admin"]) || $_SESSION["admin"]=="")
	{
		echo "";
	}
}
function successmsg($msg)
{
	echo "\r\n";
	echo "\r\n";
	head();
	echo "【雪晖投票系统】\r\n";
	echo "\r\n";
	echo "\r\n"; 
	echo "\r\n";
	echo "\r\n";
	echo "\r\n";
	echo "\r\n";
	echo "\r\n";
	echo "\r\n";	
}
function errormsg($msg)
{
	echo "\r\n";
	echo "\r\n";
	head();
	echo "【雪晖投票系统】\r\n";
	echo "\r\n";
	echo "\r\n";
	echo "
\r\n"; echo "

\r\n"; echo "点此返回再次操作  进入管理首页\r\n"; //返回时会自动刷新页面 echo "
\r\n"; echo "\r\n"; echo "\r\n"; echo "\r\n"; echo "\r\n"; echo "\r\n"; } function pager($recordcount,$pagesize,$curpage,$pages,$key,$url) {//$recordcount 记录总数 //$pagesize 每页记录数 //$curpage 当前页面号 //$pages 要显示多少个页面 $pages=1 就显示两个页面 $pages=2就显示三个页面 //$key 关键字值 //$url 分页链接到哪个页面 global $outhtml; global $firstcount; $totalpage = max(ceil($recordcount/$pagesize),1); if($curpage<0 || $curpage>$totalpage) $curpage=1; $outhtml = "共 ".$recordcount." 条记录 第 ".$curpage." 页/共 ".$totalpage." 页 每页 ".$pagesize." 条记录 "; $pageno = $curpage; if($pageno<0 || $pageno>$totalpage) $pageno=1; $firstcount=$pagesize*($pageno-1); $outhtml.="<< "; //$showpage = min($pages,$totalpage); //要显示的页面号 if($pages>$totalpage) { $startpage=1; $endpage=min($startpage+$pages,$totalpage); } else { $startpage=max($totalpage-$pages,1); $startpage=min($startpage,$curpage); $endpage=min($startpage+$pages,$totalpage); } if($pageno>1) { $outhtml.="< "; } else { $outhtml.="< "; } for($i=$startpage;$i<=$endpage;$i++) { if($curpage==$i) { $outhtml.="$i "; } else { $outhtml.="$i "; } } if($pageno<$totalpage) { $outhtml.="> "; } else { $outhtml.="> "; } $outhtml.=">> "; } //格式化日期 function mkDate($v) { do { if (empty ($v)) break; $ymdhis = split(' ', trim($v)); if (count($ymdhis) < 1) break; $ymd = split('-', $ymdhis[0]); $his = split(':', $ymdhis[1]); return mktime($his[0], $his[1], $his[2], $ymd[1], $ymd[2], $ymd[0]); } while (false); return time(); } function deldir($dir) { if(!is_dir($dir)){ return false; } $dh=@opendir($dir); while ($file=@readdir($dh)) { if($file!="." && $file!="..") { $fullpath=$dir."/".$file; if(!is_dir($fullpath)) { @unlink($fullpath); } else { deldir($fullpath); } } } @closedir($dh); if(@rmdir($dir)) { return true; } else { return false; } } ?>

 

  • 手把手做一个PHP 投票系统_第2张图片
  • 大小: 27.8 KB
  • poll.zip (13.7 KB)
  • 下载次数: 53
  • xhvote_gbk.zip (48.4 KB)
  • 下载次数: 47
  • 查看图片附件

你可能感兴趣的:(php,vote,投票,Js,Jquery)

\r\n"; echo "

\r\n"; echo "点此返回"; //返回时会自动刷新页面 echo "