Server : nginx/1.22.1 System : Linux iZwz9daxib3w3i063fw434Z 3.10.0-1127.19.1.el7.x86_64 #1 SMP Tue Aug 25 17:23:54 UTC 2020 x86_64 User : www ( 1000) PHP Version : 5.6.40 Disable Function : passthru,exec,system,putenv,chroot,chgrp,chown,shell_exec,popen,proc_open,pcntl_exec,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,imap_open,apache_setenv Directory : /www/wwwroot/www.jkmold.com/phpcms/modules/vote/ |
<?php defined('IN_PHPCMS') or exit('No permission resources.'); class index { function __construct() { pc_base::load_app_func('global'); $this->vote = pc_base::load_model('vote_subject_model');//投票标题 $this->vote_option = pc_base::load_model('vote_option_model');//投票选项 $this->vote_data = pc_base::load_model('vote_data_model'); //投票统计的数据模型 $this->username = param::get_cookie('_username'); $this->userid = param::get_cookie('_userid'); $this->groupid = param::get_cookie('_groupid'); $this->ip = ip(); $siteid = isset($_GET['siteid']) ? intval($_GET['siteid']) : get_siteid(); define("SITEID",$siteid); } public function init() { $siteid = SITEID; $page = intval($_GET['page']); if($page<=0){ $page = 1; } include template('vote', 'list_new'); } /** * 投票列表页 */ public function lists() { $siteid = SITEID; $page = intval($_GET['page']); if($page<=0){ $page = 1; } include template('vote', 'list_new'); } /** * 投票显示页 */ public function show(){ $type = intval($_GET['type']);//调用方式ID $subjectid = abs(intval($_GET['subjectid'])); if(!$subjectid) showmessage(L('vote_novote'),'blank'); //取出投票标题 $subject_arr = $this->vote->get_subject($subjectid); $siteid = $subject_arr['siteid']; //增加判断,防止模板调用不存在投票时js报错 wangtiecheng if(!is_array($subject_arr)) { if(isset($_GET['action']) && $_GET['action'] == 'js') { exit; } else { showmessage(L('vote_novote'),'blank'); } } extract($subject_arr); //显示模版 $template = $template ? $template: 'vote_tp'; //获取投票选项 $options = $this->vote_option->get_options($subjectid); //新建一数组用来存新组合数据 $total = 0; $vote_data =array(); $vote_data['total'] = 0 ;//所有投票选项总数 $vote_data['votes'] = 0 ;//投票人数 //获取投票结果信息 $infos = $this->vote_data->select(array('subjectid'=>$subjectid),'data'); //循环每个会员的投票记录 foreach($infos as $subjectid_arr) { extract($subjectid_arr); $arr = string2array($data); foreach($arr as $key => $values){ $vote_data[$key]+=1; } $total += array_sum($arr); $vote_data['votes']++ ; } $vote_data['total'] = $total ; //取出投票时间,如果当前时间不在投票时间范围内,则选项变灰不可选 if(date("Y-m-d",SYS_TIME)>$todate || date("Y-m-d",SYS_TIME)<$fromdate){ $check_status = 'disabled'; $display = 'display:none;'; }else { $check_status = ''; } //JS调用 if($_GET['action']=='js'){ if(!function_exists('ob_gzhandler')) ob_clean(); ob_start(); //$template = 'submit'; $template = $subject_arr['template']; //根据TYPE值,判断调用模版 switch ($type){ case 3://首页、栏目页调用 $true_template = 'vote_tp_3'; break; case 2://内容页调用 $true_template = 'vote_tp_2'; break; default: $true_template = $template; } include template('vote',$true_template); $data=ob_get_contents(); ob_clean(); exit(format_js($data)); } //SEO设置 $SEO = seo(SITEID, '', $subject, $description, $subject); //前台投票列表调用默认页面,以免页面样式错乱. if($_GET['show_type']==1){ include template('vote', 'vote_tp'); }else { include template('vote', $template); } } /** * 处理投票 */ public function post(){ $subjectid = intval($_POST['subjectid']); if(!$subjectid) showmessage(L('vote_novote'),'blank'); //当前站点 $siteid = SITEID; //判断是否已投过票,或者尚未到第二次投票期 $return = $this->check($subjectid); switch ($return) { case 0: showmessage(L('vote_voteyes'),"?m=vote&c=index&a=result&subjectid=$subjectid&siteid=$siteid"); break; case -1: showmessage(L('vote_voteyes'),"?m=vote&c=index&a=result&subjectid=$subjectid&siteid=$siteid"); break; } if(!is_array($_POST['radio'])) showmessage(L('vote_nooption'),'blank'); $time = SYS_TIME; $data_arr = array(); foreach($_POST['radio'] as $radio){ $radio = intval($radio); $data_arr[$radio]='1'; } $new_data = array2string($data_arr);//转成字符串存入数据库中 //添加到数据库 $this->vote_data->insert(array('userid'=>$this->userid,'username'=>$this->username,'subjectid'=>$subjectid,'time'=>$time,'ip'=>$this->ip,'data'=>$new_data)); //查询投票奖励点数,并更新会员点数 $vote_arr = $this->vote->get_one(array('subjectid'=>$subjectid)); pc_base::load_app_class('receipts','pay',0); receipts::point($vote_arr['credit'],$this->userid, $this->username, '','selfincome',L('vote_post_point')); //更新投票人数 $this->vote->update(array('votenumber'=>'+=1'),array('subjectid'=>$subjectid)); showmessage(L('vote_votesucceed'), "?m=vote&c=index&a=result&subjectid=$subjectid&siteid=$siteid"); } /** * * 投票结果显示 */ public function result(){ $siteid = SITEID; $subjectid = abs(intval($_GET['subjectid'])); if(!$subjectid) showmessage(L('vote_novote'),'blank'); //取出投票标题 $subject_arr = $this->vote->get_subject($subjectid); if(!is_array($subject_arr)) showmessage(L('vote_novote'),'blank'); extract($subject_arr); //获取投票选项 $options = $this->vote_option->get_options($subjectid); //新建一数组用来存新组合数据 $total = 0; $vote_data =array(); $vote_data['total'] = 0 ;//所有投票选项总数 $vote_data['votes'] = 0 ;//投票人数 //获取投票结果信息 $infos = $this->vote_data->select(array('subjectid'=>$subjectid),'data'); //循环每个会员的投票记录 foreach($infos as $subjectid_arr) { extract($subjectid_arr); $arr = string2array($data); foreach($arr as $key => $values){ $vote_data[$key]+=1; } $total += array_sum($arr); $vote_data['votes']++ ; } $vote_data['total'] = $total ; //SEO设置 $SEO = seo(SITEID, '', $subject, $description, $subject); include template('vote','vote_result'); } /** * * 投票前检测 * @param $subjectid 投票ID * @return 返回值 (1:可投票 0: 多投,时间段内不可投票 -1:单投,已投票,不可重复投票) */ public function check($subjectid){ //查询本投票配置 $siteid = SITEID; $subject_arr = $this->vote->get_subject($subjectid); if($subject_arr['enabled']==0){ showmessage(L('vote_votelocked'),"?m=vote&c=index&a=result&subjectid=$subjectid&siteid=$siteid"); } if(date("Y-m-d",SYS_TIME)>$subject_arr['todate']){ showmessage(L('vote_votepassed'),"?m=vote&c=index&a=result&subjectid=$subjectid&siteid=$siteid"); } //游客是否可以投票 if($subject_arr['allowguest']==0 ){ if(!$this->username){ showmessage(L('vote_votenoguest'),"?m=vote&c=index&a=result&subjectid=$subjectid&siteid=$siteid"); }elseif($this->groupid == '7'){ showmessage('对不起,不允许邮件待验证用户投票!',"?m=vote&c=index&a=result&subjectid=$subjectid&siteid=$siteid"); } } //是否有投票记录 $user_info = $this->vote_data->select(array('subjectid'=>$subjectid,'ip'=>$this->ip,'username'=>$this->username),'*','1',' time DESC'); if(!$user_info){ return 1; } else { if($subject_arr['interval']==0){ return -1; } if($subject_arr['interval']>0){ $condition = (SYS_TIME - $user_info[0]['time'])/(24*3600)> $subject_arr['interval'] ? 1 : 0; return $condition; } } } } ?>