123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197 |
- <?php
- //增加投票
- function AddVote($voteid,$vote){
- global $empire,$dbtbpre,$public_r;
- $voteid=(int)$voteid;
- if(empty($voteid))
- {
- printerror("NotVote","history.go(-1)",1);
- }
- $lasttime=getcvar('lastvotetime');
- if($lasttime)
- {
- if(time()-$lasttime<$public_r['revotetime'])
- {
- printerror("VoteOutTime","history.go(-1)",1);
- }
- }
- $r=$empire->fetch1("select voteid,voteip,votetext,voteclass,doip,dotime from {$dbtbpre}enewsvote where voteid='$voteid'");
- if(empty($r['voteid'])||empty($r['votetext']))
- {
- printerror("NotVote","history.go(-1)",1);
- }
- $re=DoVote($r,$vote);
- $sql=$empire->query("update {$dbtbpre}enewsvote set votetext='".addslashes($re['votetext'])."',voteip='$re[voteip]',votenum=votenum+".$re['votetotal']." where voteid='$voteid'");
- if($sql)
- {
- esetcookie("lastvotetime",time(),time()+3600*24);//设置最后发表时间
- printerror("VoteSuccess","../tool/vote/?voteid=".$voteid,1);
- }
- else
- {
- printerror("DbError","history.go(-1)",1);
- }
- }
- //添加信息投票
- function AddInfoVote($classid,$id,$vote){
- global $empire,$dbtbpre,$class_r,$public_r;
- $classid=(int)$classid;
- $id=(int)$id;
- if(empty($id)||empty($classid)||!$class_r[$classid]['tbname'])
- {
- printerror("NotVote","history.go(-1)",1);
- }
- $lasttime=getcvar('lastivotetime');
- if($lasttime)
- {
- if(time()-$lasttime<$public_r['revotetime'])
- {
- printerror("VoteOutTime","history.go(-1)",1);
- }
- }
- $pubid=ReturnInfoPubid($classid,$id);
- $r=$empire->fetch1("select id,voteip,votetext,voteclass,doip,dotime from {$dbtbpre}enewsinfovote where pubid='$pubid' limit 1");
- if(empty($r['id'])||empty($r['votetext']))
- {
- printerror("NotVote","history.go(-1)",1);
- }
- $re=DoVote($r,$vote);
- $sql=$empire->query("update {$dbtbpre}enewsinfovote set votetext='".addslashes($re['votetext'])."',voteip='$re[voteip]',votenum=votenum+".$re['votetotal']." where pubid='$pubid' limit 1");
- if($sql)
- {
- esetcookie("lastivotetime",time(),time()+3600*24);//设置最后发表时间
- printerror("VoteSuccess","../public/vote/?classid=$classid&id=$id",1);
- }
- else
- {
- printerror("DbError","history.go(-1)",1);
- }
- }
- //处理投票
- function DoVote($r,$vote){
- //投票期限
- if($r['dotime']<>"0000-00-00")
- {
- $endtime=to_date($r['dotime']);
- if($endtime<time())
- {
- printerror("VoteOutDate","history.go(-1)",1);
- }
- }
- //IP限制
- if(empty($r['voteip']))
- {
- $r['voteip']='|';
- }
- $ip=egetip();
- if($r['doip'])
- {
- if(strstr($r['voteip'],'|'.$ip.'|'))
- {
- printerror("ReVote","history.go(-1)",1);
- }
- $r['voteip']=$r['voteip'].$ip."|";
- }
- $VoteField="::::::";
- $VoteRecord="\r\n";
- $vote_r=explode($VoteRecord,$r['votetext']);
- $new_vote_total=0;
- if($r['voteclass'])//多选
- {
- $vote_count=count($vote);
- if(empty($vote_count))
- {
- printerror("EmptyChangeVote","history.go(-1)",1);
- }
- for($j=0;$j<$vote_count;$j++)
- {
- $new_vote_total++;
- $v_r=explode($VoteField,$vote_r[$vote[$j]-1]);
- if(empty($v_r[0]))
- {
- continue;
- }
- $vote_num=$v_r[1]+1;
- $vote_r[$vote[$j]-1]=$v_r[0].$VoteField.$vote_num;
- }
- }
- else//单选
- {
- if(empty($vote))
- {
- printerror("NotChangeVote","history.go(-1)",1);
- }
- $v_r=explode($VoteField,$vote_r[$vote-1]);
- if(empty($v_r[0]))
- {
- printerror("NotChangeVote","history.go(-1)",1);
- }
- $vote_num=$v_r[1]+1;
- $vote_r[$vote-1]=$v_r[0].$VoteField.$vote_num;
- $new_vote_total=1;
- }
- for($n=0;$n<count($vote_r);$n++)
- {
- $new_votetext.=$vote_r[$n].$VoteRecord;
- }
- $new_votetext=substr($new_votetext,0,strlen($new_votetext)-2);//去掉最后的字符
- //返回数组
- $re['votetotal']=(int)$new_vote_total;
- $re['votetext']=$new_votetext;
- $re['voteip']=addslashes($r['voteip']);
- return $re;
- }
- //评分
- function AddInfoPfen($add){
- global $empire,$dbtbpre,$class_r;
- $id=(int)$add['id'];
- $classid=(int)$add['classid'];
- $fen=(int)$add['fen'];
- $doajax=(int)$add['doajax'];
- if(!$id||!$classid||!$class_r[$classid]['tbname'])
- {
- $doajax==1?ajax_printerror('','','ErrorUrl',1):printerror('ErrorUrl','',1);
- }
- //连续发表
- if(getcvar('lastforfenid')==$classid.'n'.$id)
- {
- $doajax==1?ajax_printerror('','','ReDoForPl',1):printerror('ReDoForPl','',1);
- }
- //字段
- $fnum=$empire->gettotal("select count(*) as total from {$dbtbpre}enewsf where tbname='".$class_r[$classid]['tbname']."' and (f='infopfen' or f='infopfennum')");
- if(empty($fnum))
- {
- $doajax==1?ajax_printerror('','','ErrorUrl',1):printerror('ErrorUrl','',1);
- }
- if($fen<1)
- {
- $fen=1;
- }
- if($fen>5)
- {
- $fen=5;
- }
- $sql=$empire->query("update {$dbtbpre}ecms_".$class_r[$classid]['tbname']." set infopfen=infopfen+$fen,infopfennum=infopfennum+1 where id='$id' and classid='$classid' limit 1");
- if($sql)
- {
- esetcookie('lastforfenid',$classid.'n'.$id,time()+30*24*3600); //最后发布
- if($doajax==1)
- {
- $nr=$empire->fetch1("select infopfen,infopfennum from {$dbtbpre}ecms_".$class_r[$classid]['tbname']." where id='$id' and classid='$classid' limit 1");
- $infopfen=$nr[infopfennum]?round($nr[infopfen]/$nr[infopfennum]):0;
- ajax_printerror($infopfen,RepPostVar($add['ajaxarea']),'AddInfoPfen',1);
- }
- else
- {
- printerror('AddInfoPfen',EcmsGetReturnUrl(),1);
- }
- }
- else
- {
- $doajax==1?ajax_printerror('','','DbError',1):printerror('DbError','',1);
- }
- }
- ?>
|