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/member/ |
<?php /** * 管理员后台会员审核操作类 */ defined('IN_PHPCMS') or exit('No permission resources.'); pc_base::load_app_class('admin', 'admin', 0); pc_base::load_sys_class('format', '', 0); class member_verify extends admin { private $db, $member_db; function __construct() { parent::__construct(); $this->db = pc_base::load_model('member_verify_model'); $this->_init_phpsso(); } /** * defalut */ function init() { include $this->admin_tpl('member_init'); } /** * member list */ function manage() { $status = !empty($_GET['s']) ? $_GET['s'] : 0; $where = array('status'=>$status); $page = isset($_GET['page']) ? intval($_GET['page']) : 1; $memberlist = $this->db->listinfo($where, 'regdate DESC', $page, 10); $pages = $this->db->pages; $member_model = getcache('member_model', 'commons'); include $this->admin_tpl('member_verify'); } function modelinfo() { $userid = !empty($_GET['userid']) ? intval($_GET['userid']) : showmessage(L('illegal_parameters'), HTTP_REFERER); $modelid = !empty($_GET['modelid']) ? intval($_GET['modelid']) : showmessage(L('illegal_parameters'), HTTP_REFERER); $memberinfo = $this->db->get_one(array('userid'=>$userid)); //模型字段名称 $this->member_field_db = pc_base::load_model('sitemodel_field_model'); $model_fieldinfo = $this->member_field_db->select(array('modelid'=>$modelid), "*", 100); //用户模型字段信息 $member_fieldinfo = string2array($memberinfo['modelinfo']); //交换数组key值 foreach($model_fieldinfo as $v) { if(array_key_exists($v['field'], $member_fieldinfo)) { $tmp = $member_fieldinfo[$v['field']]; unset($member_fieldinfo[$v['field']]); $member_fieldinfo[$v['name']] = $tmp; unset($tmp); } } include $this->admin_tpl('member_verify_modelinfo'); } /** * pass member */ function pass() { if (isset($_POST['userid'])) { $this->member_db = pc_base::load_model('member_model'); $uidarr = isset($_POST['userid']) ? $_POST['userid'] : showmessage(L('illegal_parameters'), HTTP_REFERER); $where = to_sqls($uidarr, '', 'userid'); $userarr = $this->db->listinfo($where); $success_uids = $info = array(); foreach($userarr as $v) { $status = $this->client->ps_member_register($v['username'], $v['password'], $v['email'], $v['regip'], $v['encrypt']); if ($status > 0) { $info['phpssouid'] = $status; $info['password'] = password($v['password'], $v['encrypt']); $info['regdate'] = $info['lastdate'] = $v['regdate']; $info['username'] = $v['username']; $info['nickname'] = $v['nickname']; $info['email'] = $v['email']; $info['regip'] = $v['regip']; $info['point'] = $v['point']; $info['groupid'] = $this->_get_usergroup_bypoint($v['point']); $info['amount'] = $v['amount']; $info['encrypt'] = $v['encrypt']; $info['modelid'] = $v['modelid'] ? $v['modelid'] : 10; if($v['mobile']) $info['mobile'] = $v['mobile']; $userid = $this->member_db->insert($info, 1); if($v['modelinfo']) { //如果数据模型不为空 //插入会员模型数据 $user_model_info = string2array($v['modelinfo']); $user_model_info['userid'] = $userid; $this->member_db->set_model($info['modelid']); $this->member_db->insert($user_model_info); } if($userid) { $success_uids[] = $v['userid']; } } } $where = to_sqls($success_uids, '', 'userid'); $this->db->update(array('status'=>1, 'message'=>$_POST['message']), $where); //phpsso注册失败的用户状态直接置为审核期间phpsso已注册该会员 $fail_uids = array_diff($uidarr, $success_uids); if (!empty($fail_uids)) { $where = to_sqls($fail_uids, '', 'userid'); $this->db->update(array('status'=>5, 'message'=>$_POST['message']), $where); } //发送 email通知 if($_POST['sendemail']) { $memberinfo = $this->db->select($where); pc_base::load_sys_func('mail'); foreach ($memberinfo as $v) { sendmail($v['email'], L('reg_pass'), $_POST['message']); } } showmessage(L('pass').L('operation_success'), HTTP_REFERER); } else { showmessage(L('operation_failure'), HTTP_REFERER); } } /** * delete member */ function delete() { if(isset($_POST['userid'])) { $uidarr = isset($_POST['userid']) ? $_POST['userid'] : showmessage(L('illegal_parameters'), HTTP_REFERER); $message = stripslashes($_POST['message']); $where = to_sqls($uidarr, '', 'userid'); $this->db->delete($where); showmessage(L('delete').L('operation_success'), HTTP_REFERER); } else { showmessage(L('operation_failure'), HTTP_REFERER); } } /** * reject member */ function reject() { if(isset($_POST['userid'])) { $uidarr = isset($_POST['userid']) ? $_POST['userid'] : showmessage(L('illegal_parameters'), HTTP_REFERER); $where = to_sqls($uidarr, '', 'userid'); $res = $this->db->update(array('status'=>4, 'message'=>$_POST['message']), $where); //发送 email通知 if($res) { if($_POST['sendemail']) { $memberinfo = $this->db->select($where); pc_base::load_sys_func('mail'); foreach ($memberinfo as $v) { sendmail($v['email'], L('reg_reject'), $_POST['message']); } } } showmessage(L('reject').L('operation_success'), HTTP_REFERER); } else { showmessage(L('operation_failure'), HTTP_REFERER); } } /** * ignore member */ function ignore() { if(isset($_POST['userid'])) { $uidarr = isset($_POST['userid']) ? $_POST['userid'] : showmessage(L('illegal_parameters'), HTTP_REFERER); $where = to_sqls($uidarr, '', 'userid'); $res = $this->db->update(array('status'=>2, 'message'=>$_POST['message']), $where); //发送 email通知 if($res) { if($_POST['sendemail']) { $memberinfo = $this->db->select($where); pc_base::load_sys_func('mail'); foreach ($memberinfo as $v) { sendmail($v['email'], L('reg_ignore'), $_POST['message']); } } } showmessage(L('ignore').L('operation_success'), HTTP_REFERER); } else { showmessage(L('operation_failure'), HTTP_REFERER); } } /* * change password */ function _edit_password($userid, $password){ $userid = intval($userid); if($userid < 1) return false; if(!is_password($password)) { showmessage(L('password_format_incorrect')); return false; } $passwordinfo = password($password); return $this->db->update($passwordinfo,array('userid'=>$userid)); } private function _checkuserinfo($data, $is_edit=0) { if(!is_array($data)){ showmessage(L('need_more_param'));return false; } elseif (!is_username($data['username']) && !$is_edit){ showmessage(L('username_format_incorrect'));return false; } elseif (!isset($data['userid']) && $is_edit) { showmessage(L('username_format_incorrect'));return false; } elseif (empty($data['email']) || !is_email($data['email'])){ showmessage(L('email_format_incorrect'));return false; } return $data; } private function _checkpasswd($password){ if (!is_password($password)){ return false; } return true; } private function _checkname($username) { $username = trim($username); if ($this->db->get_one(array('username'=>$username))){ return false; } return true; } /** *根据积分算出用户组 * @param $point int 积分数 */ private function _get_usergroup_bypoint($point=0) { $groupid = 2; if(empty($point)) { $member_setting = getcache('member_setting'); $point = $member_setting['defualtpoint'] ? $member_setting['defualtpoint'] : 0; } $grouplist = getcache('grouplist'); foreach ($grouplist as $k=>$v) { $grouppointlist[$k] = $v['point']; } arsort($grouppointlist); //如果超出用户组积分设置则为积分最高的用户组 if($point > max($grouppointlist)) { $groupid = key($grouppointlist); } else { foreach ($grouppointlist as $k=>$v) { if($point >= $v) { $groupid = $tmp_k; break; } $tmp_k = $k; } } return $groupid; } /** * 初始化phpsso * about phpsso, include client and client configure * @return string phpsso_api_url phpsso地址 */ private function _init_phpsso() { pc_base::load_app_class('client', '', 0); define('APPID', pc_base::load_config('system', 'phpsso_appid')); $phpsso_api_url = pc_base::load_config('system', 'phpsso_api_url'); $phpsso_auth_key = pc_base::load_config('system', 'phpsso_auth_key'); $this->client = new client($phpsso_api_url, $phpsso_auth_key); return $phpsso_api_url; } /** * check uername status */ public function checkname_ajax() { $username = isset($_GET['username']) && trim($_GET['username']) ? trim($_GET['username']) : exit(0); $username = iconv('utf-8', CHARSET, $username); $status = $this->client->ps_checkname($username); if($status == -4) { //deny_register exit('0'); } $status = $this->client->ps_get_member_info($username, 2); if (is_array($status)) { exit('0'); } else { exit('1'); } } /** * check email status */ public function checkemail_ajax() { $email = isset($_GET['email']) && trim($_GET['email']) ? trim($_GET['email']) : exit(0); $status = $this->client->ps_checkemail($email); if($status == -5) { //deny_register exit('0'); } $status = $this->client->ps_get_member_info($email, 3); if(isset($_GET['phpssouid']) && isset($status['uid'])) { if ($status['uid'] == intval($_GET['phpssouid'])) { exit('1'); } } if (is_array($status)) { exit('0'); } else { exit('1'); } } } ?>