金沙澳门官网7817网址PHP投票系统防刷票判别流程解析

本文实例讲述了PHP+MySQL实现的简单投票系统,更多关于PHP相关内容感兴趣的读者可查看本站专题,1.articlePublish.html 发布文章页面,文章发布系统,本文实例为大家分享了php实现文章发布系统、用户投票系统的具体代码,简易的实现文章发布系统,一定要注意session的注销,以下的流程图中

<?php
mysql_connect("localhost","root","");
mysql_select_db("vote");
mysql_query("set names utf8");
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd">
<html lang="en">
 <head>
<meta http-equiv="Content-Type" content="text/html; charset=utf8">
<title>Insert title here</title>
</head>
<body bgcolor="#ccc">
 <form name="article" method="post" action="articlePublishDo.php" style="margin:5px 500px;">
   <h1>发布新闻系统</h1>
  标题:<input type="text" name="title"/><br/>
  内容:<textarea cols=30 rows=5 name="content"></textarea><br/><br/>
   <input type="submit" value="发布新闻"/>
 </form>
</body>
</html>
/**
  * @data 文章发布
  *    文章详情散列表中递增ID,讲文章发布者ID写入投票用户集合中,设置投票时间为一周
  *    讲文章内容写入文章散列中,讲文章写入文章评分有序集合和文章发布有序集合中
  * @author Lorne
  * @date 2017-03-03
  */
  public function post_article($user){
    $VOTE_SCORE = 24;
    $redis = $this -> redis;
    $key= "queue";
    $ONE_WEEK_IN_SECONDS= 7*86400;
    $redis -> multi($key);
    //生成新的文章id
    $article_id = $redis -> incr("article:",$key);

    //文章已投票用户名单
    $voted = "voted:".$article_id;
    $this->redis->sadd($voted,$user,$key);
    //设置过期时间(为1周)
    $this->redis->expipre($voted,$ONE_WEEK_IN_SECONDS,$key);

    //获取现在的时间
    $now =time();
    $article = "article:".$article_id;
    $data = ['title'=>'测试1','link'=>'www.hahaha.com','poster'=>$user,'tine'=>$now,'votes'=>1];
    //$data = json_encode($data);
    $redis -> hmset($article,$data,$key);

    //将文章添加到根据时间排序有序集合和根据评分排序有序结合中
    $this -> redis -> zadd("score:",1,$article,$key);
    $this -> redis -> zadd("time:",$now,$article,$key);

    $redis -> exec($key);
  }


/**
  * @data 用户投票
  *    获取文章的ID,用户ID,判断该篇文章是否已经过了投票时间,再判断用户是否已经投过票
  *    写入文章对应投票用户表中(voted:文章ID),对应的文章评分加,文章详情内容中的votes统计加1
  * @author Lorne
  * @date 2017-03-03
  */
  public function article_vote(){
    $ONE_WEEK_IN_SECONDS= 7*86400;
    $article = "article:3";
    $user = "user:7777";

    $redis = $this -> redis;
    $key= "queue";
    $cutoff = time() - $ONE_WEEK_IN_SECONDS;
    //文章发布时间和投票截止日期对比
    if($redis->zscore('time:',$article,$key) < $cutoff){
      var_dump("该文章已过投票时间!");exit;
    }
    $article_id = explode(':',$article)['1'];
    if($redis->sadd('voted:'.$article_id,$user,$key)){
      $redis -> zincrby('score:',$article,1,$key);
      $redis -> hincrby($article,'votes',1,$key);
    }else{
      var_dump("您已经投过票了!");exit;
    }
  }


/**
  * @data 文章列表分页
  *    对文章评分有序集合或者时间发布有序集合做分页处理,获取文章ID后,去文章详情散列表中查询该文章详情
  * @author Lorne
  * @date 2017-03-03
  */
  public function get_articles($page =1,$orders =''){
    $redis = $this->redis;
    $db = "queue";
    //$orders = "time:";
    $per_page = 3;
    $start = ($page-1)*$per_page;
    $end = $start + $per_page -1;
    $ids = $redis -> zrevrange($orders,$start,$end,$db);
    foreach($ids as $key=>$val){
      $data = $redis -> hgetall($val,$db);
      $data['id'] = $val;
      $articles[] = $data;
    }
    return $articles;
  }


/**
  * @data 文章添加组和移除组
  *    讲该文章加入不同的分组中,或者从个分组中移除该篇文章
  * @author Lorne
  * @date 2017-03-03
  */
  public function add_remove_group($article_id,$to_add = [],$to_remove = []){
    $redis = $this->redis;
    $db = "queue";
    $article = "article:".$article_id;
    foreach($to_add as $key=>$val){
      $redis -> sadd('group:'.$val,$article,$db);
    }
    foreach($to_remove as $key=>$val){
      $redis -> srem('grouo:'.$val,$article,$db);
    }
  }


/**
  * @data 组集合中的文章根据评分或者时间分页排序
  *    
  * @author Lorne
  * @date 2017-03-03
  */
  public function get_grouop_articles($orders = "time:"){
    $redis = $this -> redis;
    $db = "queue";
    $group = '开发';
    $key = $orders.$group;
    if($redis -> exists($key,$db)){
      $argument = 2;
      $data = $redis -> zinterstore($key,$argument,['group:'.$group,$orders],$db);
      //$this -> expire($key,60,$db);
    }
    return $this->get_articles(2,$key);
  }

你只怕感兴趣的小说:

  • php投票系统之扩大与删除投票(助理馆员篇)
  • PHP+MySQL达成的简要投票系统实例
  • PHP+MySQL投票系统的设计和落到实处分享
  • PHP+MYSQL的篇章管理连串(一)
  • PHP+MYSQL的篇章管理连串(二)
  • 金沙澳门官网7817网址,PHP+MYSQL会员系统的开采实例教程
  • 简单易行的php信息宣布连串教程
  • 10款PHP开源百货店系统集中介绍
  • PHP完结轻便的情报公布种类实例
  • php
    redis落成小说发表系列(用户投票系统)
<html>
<head><title>手机系统调查问卷</title>
<style type="text/css">
<!--
span{
  width:600px;
  height:100px;
  background-color:write;
  postion:relative;
  border:1px #cccccc solid;
}
div{
  width:60px;
  height:1px;
  background-color:blue;
  postion:absolute;
  bottom:0;
}
-->
</style>
</head>
<body>
你现在使用的手机是什么系统?
<form id="form1" method="POST" action="count.php">
<input type="radio" name="phone" value="1"> Android安卓
<input type="radio" name="phone" value="2"> Symbian塞班
<br>
<input type="radio" name="phone" value="3"> iphone苹果
<input type="radio" name="phone" value="4"> Google谷歌
<br>
<input type="radio" name="phone" value="5"> Winphone微软
<input type="radio" name="phone" value="6"> 其它
<br>
<input type="submit" value="提交">
</form>

当前票数:<br>
<?php
include 'connect.php';
$sql="select answer from countone";
$rs=mysql_query($sql);
$total=mysql_num_rows($rs);
$sql="select * from countone where answer=1";
$rs=mysql_query($sql);
$android=mysql_num_rows($rs);
$sql="select * from countone where answer=2";
$rs=mysql_query($sql);
$symbian=mysql_num_rows($rs);
$sql="select * from countone where answer=3";
$rs=mysql_query($sql);
$iphone=mysql_num_rows($rs);
$sql="select * from countone where answer=4";
$rs=mysql_query($sql);
$google=mysql_num_rows($rs);
$sql="select * from countone where answer=5";
$rs=mysql_query($sql);
$winphone=mysql_num_rows($rs);
$sql="select * from countone where answer=6";
$rs=mysql_query($sql);
$other=mysql_num_rows($rs);
?>
<table border="0">
<th>android</th><th>Symbian</th><th>iphone</th><th>Google</th><th>winphone</th><th>other</th>
<tr>
<td><?php echo $android ?>票</td>
<td><?php echo $symbian ?>票</td>
<td><?php echo $iphone ?>票</td>
<td><?php echo $google ?>票</td>
<td><?php echo $winphone ?>票</td>
<td><?php echo $other ?>票</td>
</tr>
<tr>
<td><?php for ($i=1;$i<=$android/$total+1;$i=$i+0.1){  echo "<div></div>"; } ?></td>
<td><?php for ($i=1;$i<=$symbian/$total+1;$i=$i+0.1){  echo "<div></div>"; } ?></td>
<td><?php for ($i=1;$i<=$iphone/$total+1;$i=$i+0.1){  echo "<div></div>"; } ?></td>
<td><?php for ($i=1;$i<=$google/$total+1;$i=$i+0.1){  echo "<div></div>"; } ?></td>
<td><?php for ($i=1;$i<=$winphone/$total+1;$i=$i+0.1){ echo "<div></div>"; } ?></td>
<td><?php for ($i=1;$i<=$other/$total+1;$i=$i+0.1){ echo "<div></div>"; } ?></td>
</tr>
</table>

</body>
</html>

articlePublish.html:

本文实例为大家大快朵颐了php达成小说揭露系列、用户投票系统的切实可行代码,供大家参照他事他说加以考察,具体内容如下

眼下,我做了二个娱乐门户的投票系统,也是被刷票搞的一点办法也想不出来,一切可用的章程都用了。但都不是太杰出,最后,研商出来了上边包车型客车艺术,笔者做成了流程图与大家大快朵颐。
看不懂流程的也休想钻牛角了,本人也不做太多无聊的分解,当然,那一个流程只是二个大要的历程,中间还只怕有大多的推断,主要利用的依然session。因为何验证码什么的,那你别用在网络投票系统中来呢,未有人去评释,一看就烦了。依然那句话,我的WEB开拓笔记中写的全都以一些简易的理念性的东西,若是想周密,可以和煦扩大。自个儿平素临时间解释。
以下的流程图中,应当要留心session的撤除,也即是三个session用完事后,必须求记得注销,不然照旧会被刷票机绕过。
金沙澳门官网7817网址 1

链接mysql:

基础知识计算:

利用php+redis,简易的贯彻文章表露系统,用户投票,小说分组,分页排序。

盼望本文所述对大家PHP程序设计具备协理。

1.articlePublish.html 揭橥小说页面
提交到articlePublishDo.php页面,实行写入数据库

   
redis是一个高质量的key-value存款和储蓄系统,最为分布的5大体系:string(字符串)、list(链表)、set(集合)、zset(sorted
set
–有序集结)和hash(哈希类型),和memcache分化的是redis会周期性的把立异的多少写入磁盘也许把修改操作写入追加的记录文件,并且在此基础上落到实处了master-slave(主从)同步。

正文实例陈诉了PHP+MySQL完结的简约投票系统。分享给大家供我们参考,具体如下:

articleDelete.php:

您可能感兴趣的稿子:

  • php投票系统之扩展与删除投票(管理员篇)
  • PHP+MySQL完结的轻便投票系统实例
  • PHP+MySQL投票系统的安排和贯彻分享
  • PHP投票系统防刷票决断流程深入分析
  • PHP+MYSQL的篇章管理种类(一)
  • PHP+MYSQL的篇章处理类别(二)
  • PHP+MYSQL会员系统的开拓实例教程
  • 粗略的php音信发布系统教程
  • 10款PHP开源商铺系统聚集介绍
  • PHP实现轻巧的资源消息公布体系实例

写的多少啰嗦,有一些笨但很实用

<?php
 header("content-type:text/html;charset=utf8");
 $arr=$_POST;
 $id=(int)$arr['id'];
 require_once 'init.php';
 $sql="update article set title = '$arr[title]',content = '$arr[content]' where id = '$id'";
 //echo $sql;
 $re=mysql_query($sql);//执行sql语句
 //echo $re;
 if($re){
  echo "修改成功";
  echo "<a href='articleList.php'>返回文章列表</a>";
 }else{
  echo "修改失败";
  echo "<a href='articleList.php'>返回文章列表</a>";
 }
 mysql_close();//关闭数据库

    方今进一步喜欢用上redis,有一拍即合者一齐多多沟通啊。