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/message/ |
<?php defined('IN_PHPCMS') or exit('No permission resources.'); pc_base::load_app_class('foreground','member');//加载foreground 应用类. 自动判断是否登陆. pc_base::load_sys_class('format', '', 0); pc_base::load_sys_class('form', '', 0); class index extends foreground { function __construct() { parent::__construct(); $this->message_db = pc_base::load_model('message_model'); $this->message_group_db = pc_base::load_model('message_group_model'); $this->message_data_db = pc_base::load_model('message_data_model'); $this->_username = param::get_cookie('_username'); $this->_userid = param::get_cookie('_userid'); $this->_groupid = get_memberinfo($this->_userid,'groupid'); pc_base::load_app_func('global'); //定义站点ID常量,选择模版使用 $siteid = isset($_GET['siteid']) ? intval($_GET['siteid']) : get_siteid(); define("SITEID",$siteid); } public function init() { $page = isset($_GET['page']) ? intval($_GET['page']) : 1; $where = array('send_to_id'=>$this->_username,'replyid'=>'0'); $infos = $this->message_db->listinfo($where,$order = 'messageid DESC',$page, 10); $infos = new_html_special_chars($infos); $pages = $this->message_db->pages; include template('message', 'inbox'); } /** * 发送消息 */ public function send() { //判断当前会员,是否可发,短消息. $this->message_db->messagecheck($this->_userid); if(isset($_POST['dosubmit'])) { $username = $this->_username; $tousername = safe_replace($_POST['info']['send_to_id']); $r = $this->db->get_one(array('username'=>$tousername)); if(!$r) showmessage(L('user_not_exist','','member')); if($tousername==$username){ showmessage(L('not_myself','','message')); } $subject = new_html_special_chars($_POST['info']['subject']); $content = new_html_special_chars($_POST['info']['content']); $this->message_db->add_message($tousername,$username,$subject,$content,true); showmessage(L('operation_success'),HTTP_REFERER); } else { $show_validator = $show_scroll = $show_header = true; include template('message', 'send'); } } /* *判断收件人是否存在 */ public function public_name() { $username = isset($_GET['username']) && trim($_GET['username']) ? (pc_base::load_config('system', 'charset') == 'gbk' ? iconv('utf-8', 'gbk', trim($_GET['username'])) : trim($_GET['username'])) : exit('0'); $member_interface = pc_base::load_app_class('member_interface', 'member'); if ($username) { $username = safe_replace($username); //判断收件人不能为自己 if($username == $this->_username){ exit('0'); } $data = $member_interface->get_member_info($username, 2); if ($data!='-1') { exit('1'); } else { exit('0'); } } else { exit('0'); } } /** * 发件箱 */ public function outbox() { $where = array('send_from_id'=>$this->_username,'del_type'=>'0'); $page = isset($_GET['page']) && intval($_GET['page']) ? intval($_GET['page']) : 1; $infos = $this->message_db->listinfo($where,$order = 'messageid DESC',$page, $pages = '8'); $infos = new_html_special_chars($infos); $pages = $this->message_db->pages; include template('message', 'outbox'); } /** * 收件箱 */ public function inbox() { $where = array('send_to_id'=>$this->_username,'folder'=>'inbox'); $page = isset($_GET['page']) && intval($_GET['page']) ? intval($_GET['page']) : 1; $infos = $this->message_db->listinfo($where,$order = 'messageid DESC',$page, $pages = '8'); $infos = new_html_special_chars($infos); if (is_array($infos) && !empty($infos)) { foreach ($infos as $infoid=>$info){ $reply_num = $this->message_db->count(array("replyid"=>$info['messageid'])); $infos[$infoid]['reply_num'] = $reply_num; } } $pages = $this->message_db->pages; include template('message', 'inbox'); } /** * 群发邮件 */ public function group() { //查询自己有权限看的消息 $where = array('typeid'=>1,'groupid'=>$this->_groupid,'status'=>1); $page = isset($_GET['page']) && intval($_GET['page']) ? intval($_GET['page']) : 1; $infos = $this->message_group_db->listinfo($where,$order = 'id DESC',$page, $pages = '8'); $infos = new_html_special_chars($infos); $status = array(); if (is_array($infos) && !empty($infos)) { foreach ($infos as $info){ $d = $this->message_data_db->select(array('userid'=>$this->_userid,'group_message_id'=>$info['id'])); if(!$d){ $status[$info['id']] = 0;//未读 红色 }else { $status[$info['id']] = 1; } } } $pages = $this->message_group_db->pages; include template('message', 'group'); } /** * 删除收件箱-短消息 * @param intval $sid 短消息ID,递归删除(修改状态为outbox) */ public function delete() { if((!isset($_GET['messageid']) || empty($_GET['messageid'])) && (!isset($_POST['messageid']) || empty($_POST['messageid']))) { showmessage(L('illegal_parameters'), HTTP_REFERER); } else { if(is_array($_POST['messageid'])){ foreach($_POST['messageid'] as $messageid_arr) { $messageid_arr = intval($messageid_arr); $this->message_db->update(array('folder'=>'outbox'),array('messageid'=>$messageid_arr,'send_to_id'=>$this->_username)); } showmessage(L('operation_success'), HTTP_REFERER); } } } /** * 删除发件箱 - 短消息 * @param intval $sid 短消息ID,递归删除( 修改状态为del_type =1 ) */ public function del_type() { if((!isset($_POST['messageid']) || empty($_POST['messageid']))) { showmessage(L('illegal_parameters'), HTTP_REFERER); } else { if(is_array($_POST['messageid'])){ foreach($_POST['messageid'] as $messageid_arr) { $messageid_arr = intval($messageid_arr); $this->message_db->update(array('del_type'=>'1'),array('messageid'=>$messageid_arr,'send_from_id'=>$this->_username)); } showmessage(L('operation_success'), HTTP_REFERER); } } } /** * 查看短消息 - 对当前用户是否有权限查看 */ public function check_user($messageid,$where){ $username = $this->_username; $messageid = intval($messageid); if($where=="to"){ $result = $this->message_db->get_one(array("send_to_id"=>$username,"messageid"=>$messageid)); }else{ $result = $this->message_db->get_one(array("send_from_id"=>$username,"messageid"=>$messageid)); } if(!$result){//不是当前用户的消息,不能查看 showmessage('请勿非法访问!', HTTP_REFERER);echo '0'; } } /** * 查看短消息 */ public function read() { if((!isset($_GET['messageid']) || empty($_GET['messageid'])) && (!isset($_POST['messageid']) || empty($_POST['messageid']))) return false; $messageid = $_GET['messageid'] ? $_GET['messageid'] : $_POST['messageid']; $messageid = intval($messageid); //判断是否属于当前用户 $check_user = $this->check_user($messageid,'to'); //查看过修改状态 为 0 $this->message_db->update(array('status'=>'0'),array('messageid'=>$messageid)); //查询消息详情 $infos = $this->message_db->get_one(array('messageid'=>$messageid)); if($infos['send_from_id']!='SYSTEM') $infos = new_html_special_chars($infos); //过滤一下 $info['send_from_id'] = safe_replace($infos['send_from_id']); $info['send_to_id'] = safe_replace($infos['send_to_id']); //查询回复消息 $where = array('replyid'=>$infos['messageid']); $reply_infos = $this->message_db->listinfo($where,$order = 'messageid ASC',$page, $pages = '10'); $show_validator = $show_scroll = $show_header = true; include template('message', 'read'); } /** * 查看自己发的短消息 */ public function read_only() { $messageid = $_GET['messageid'] ? $_GET['messageid'] : $_POST['messageid']; $messageid = intval($messageid); if(!$messageid || empty($messageid)){ showmessage('请勿非法访问!', HTTP_REFERER); } //判断是否属于当前用户 $check_user = $this->check_user($messageid,'from'); //查询消息详情 $infos = $this->message_db->get_one(array('messageid'=>$messageid)); $infos = new_html_special_chars($infos); //查询回复消息 $where = array('replyid'=>$infos['messageid']); $reply_infos = $this->message_db->listinfo($where,$order = 'messageid ASC',$page, $pages = '10'); $show_validator = $show_scroll = $show_header = true; include template('message', 'read_only'); } /** * 查看系统短消息 */ public function read_group(){ if((!isset($_GET['group_id']) || empty($_GET['group_id'])) && (!isset($_POST['group_id']) || empty($_POST['group_id']))) return false; //查询消息详情 $infos = $this->message_group_db->get_one(array('id'=>$_GET['group_id'])); $infos = new_html_special_chars($infos); if(!is_array($infos))showmessage(L('message_not_exist'),'blank'); //检查查看表是否有记录,无则向message_data 插入浏览记录 $check = $this->message_data_db->select(array('userid'=>$this->_userid,'group_message_id'=>$_GET['group_id'])); if(!$check){ $this->message_data_db->insert(array('userid'=>$this->_userid,'group_message_id'=>$_GET['group_id'])); } include template('message', 'read_group'); } /** * 回复短消息 */ public function reply() { if(isset($_POST['dosubmit'])) { $messageid = intval($_POST['info']['replyid']); //判断当前会员,是否可发,短消息. $this->message_db->messagecheck($this->_userid); //检查此消息是否有权限回复 $this->check_user($messageid,'to'); $info = array(); $info['send_from_id'] = $this->_username; $info['message_time'] = SYS_TIME; $info['status'] = '1'; $info['folder'] = 'inbox'; $info['content'] = safe_replace($_POST['info']['content']); $info['subject'] = safe_replace($_POST['info']['subject']); $info['replyid'] = intval($_POST['info']['replyid']); //回复人ID进行安全处理 $send_to_id = safe_replace($_POST['info']['send_to_id']); if(empty($send_to_id)) { showmessage(L('user_noempty'),HTTP_REFERER); } else { $info['send_to_id'] = $send_to_id; } $messageid = $this->message_db->insert($info,true); if(!$messageid) return FALSE; showmessage(L('operation_success'),HTTP_REFERER); } else { $show_validator = $show_scroll = $show_header = true; include template('message', 'send'); } } } ?>