我们先来看看数据库结构.,但是每一个IP只能投一次
分类:热门资源

php简单 在线投票系统 源码下载,上次要和你一家公合作他们说要我写一个简单的投票系统,但是每一个IP只能投一次,好了下面就是我写的一个最最简单的投票系统了,是用php实现的.

好了,html 页面的css与js都写好了下面我们来看看数据库与php程序是如何实现的吧,我们先来看看数据库结构.

先来创建数据库.有两个一个记录投票次数与相关信息一个是记录IP.

CREATE TABLE IF NOT EXISTS `su_mon_vote` ( `id` int(11) NOT NULL auto_increment, `v1` varchar(100) default NULL, `v2` varchar(200) NOT NULL, `v3` varchar(200) NOT NULL, `v4` varchar(200) NOT NULL, `v5` varchar(200) NOT NULL, `v6` varchar(200) NOT NULL, `name` varchar(50) NOT NULL, `tel` varchar(50) NOT NULL, `email` varchar(50) NOT NULL, `address` varchar(200) NOT NULL, `vip` varchar(20) NOT NULL, `vdate` datetime NOT NULL, PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=gb2312 AUTO_INCREMENT=6 ;上面的结构是随便写的没注意数据库其它方面报.好下面我们来看看php程序是怎么判断调查的吧.

CREATE TABLE IF NOT EXISTS `lj_vote` ( `id` int(8) NOT NULL auto_increment, `v_type` int(4) default '1', `v_caption` varchar(500) default NULL COMMENT '此处可以放图片地址也可以是文章说明', `v_hits` int(8) NOT NULL default '0' COMMENT '投票次数', `v_ip` text COMMENT '投票IP为唯一,永远只有一次机会', `v_name` varchar(50) default NULL COMMENT '作品的作者', `v_id` int(4) default NULL COMMENT '唯一编号', PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=gb2312 AUTO_INCREMENT=21 ;

if(empty($_COOKIE[cook])){mysql_connect('localhost','root','mailangel') or die('database server no exists!');mysql_select_db('vot') or die('database error!');mysql_query(SET NAMES 'gbk');//set document charset encode$name=get_value(name,'post');$tel=get_value(tel,'post');$email=get_value(email,'post');$add=get_value(address,'post');$vip=get_real_ip();$date=date(Y-m-d h:i:s);$value=$_SERVER['HTTP_HOST'];$array=array();for($i=1;$i=6;$i++){$v='v'.$i;$v=get_value($v,'post');$array[$i-1]=$v;if(empty($v)){alert('对不起,你还有选项未选!','');}}if( strlen($name)100 || strlen($name)3 ) {alert('用户名长度3-20','');}elseif( strlen($tel)15 || strlen($tel)7){alert('请输入正确的电话号码!','');}elseif( strlen($email)50 || strlen($email)10 ) {alert('对不起,你的邮箱地址不正确!','');}elseif( strlen($add)100 || strlen($add)10 ){alert('地址长度10-100字符!','');}$sql=Insert into su_mon_vote(v1,v2,v3,v4,v5,v6,name,email,address,vip,vdate,tel) value( ;$sql=$sql.'.$array[0].','.$array[1].','.$array[2].','.$array[3].','.$array[4].','.$array[5].','$name',;$sql=$sql.'$email','$add','$vip','$date','$tel');//mysql_query($sql) or die($sql.mysql_error());if( mysql_query($sql)){setcookie(cook, $value, time()+7200, /);alert('答题成功,谢谢你的参与!','index.html');}else{alert('系统忙...请稍后再试','');}}else{print 答题失败,一人只能参加一次答题!,a href=# onclick=history.back();点击返回/a;}

记录IP的数据库.

function get_value($para,$para2){//获取参数的值if( 'post'==$para2 ){return addslashes(isset($_POST[$para])?$_POST[$para]:'');}else{return addslashes(isset($_GET[$para])?$_GET[$para]:'');}}function alert($str,$para){//提示设置函数,if( ''== $para){exit(scriptalert('$str');history.back();/script);}else{exit(scriptalert('$str');location='$para';/script);}}function get_real_ip(){$ip=false;if(!empty($_SERVER[HTTP_CLIENT_IP])){$ip = $_SERVER[HTTP_CLIENT_IP];}if (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {$ips = explode (, , $_SERVER['HTTP_X_FORWARDED_FOR']);if ($ip) { array_unshift($ips, $ip); $ip = FALSE; }for ($i = 0; $i count($ips); $i++) {if (!eregi (^(10|172.16|192.168)., $ips[$i])) {$ip = $ips[$i];break;}}}return ($ip ? $ip : $_SERVER['REMOTE_ADDR']);}?

CREATE TABLE IF NOT EXISTS `lj_ip` ( `id` int(8) NOT NULL auto_increment, `v_ip` varchar(50) default NULL, `v_time` datetime default NULL, PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=gb2312 AUTO_INCREMENT=4 ;

嗯.好了数据都准备好了我们就来看php 是怎么实现投票的吧.

?php$value=$_SERVER['HTTP_HOST'];$vote1=isset($_POST['a'])?$_POST['a']:'';$vote2=isset($_POST['b'])?$_POST['b']:'';$ip=get_real_ip();if( empty($vote1) || empty($vote2) ){exit(scriptalert('你还有未选择项目');history.back();/script);}else{$re=mysql_query(select v_ip from lj_ip where v_ip='$ip') or die('error');if( mysql_num_rows($re) ){exit(对不起,你己经投票了,a href=# onclick=/history.back();/点击返回/a);}else{mysql_query(update lj_vote set v_hits=v_hits+1 where v_name='$vote1') or die('a');mysql_query(update lj_vote set v_hits=v_hits+1 where v_name='$vote2') or die('b');mysql_query(insert into lj_ip(v_ip,v_time) value('$ip','.date(Y-m-d h:i:s).')) or die('ip');exit(scriptalert('恭喜你,己成功投票');history.back();/script);}}function show_hits($value){$result=mysql_query(select * from lj_vote where v_name='$value') or die('error');return@mysql_num_rows($result);}function get_real_ip(){$ip=false;if(!empty($_SERVER[HTTP_CLIENT_IP])){$ip = $_SERVER[HTTP_CLIENT_IP];}if (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {$ips = explode (, , $_SERVER['HTTP_X_FORWARDED_FOR']);if ($ip) { array_unshift($ips, $ip); $ip = FALSE; }for ($i = 0; $i count($ips); $i++) {if (!eregi (^(10|172/.16|192/.168)/., $ips[$i])) {$ip= $ips[$i];break;}}}return ($ip ? $ip : $_SERVER['REMOTE_ADDR']);}

好了就OK了,投票系统不完成了,投票的htm页面我就没写了自己写一下吧.?

申明:本站原创转载请注明:

本文由威尼斯在线注册平台发布于热门资源,转载请注明出处:我们先来看看数据库结构.,但是每一个IP只能投一次

上一篇:复制代码 代码如下 下一篇:威尼斯正规官网是个矛盾. 下面部分东西是抄袭了别人的东西,php的下载页面
猜你喜欢
热门排行
精彩图文