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 : 7.2.33
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/phpsso_server/api/uc_client_1_5/control/
Upload File :
Current Directory [ Writeable ] Root Directory [ Writeable ]


Current File : /www/wwwroot/www.jkmold.com/phpsso_server/api/uc_client_1_5/control/pm.php
<?php



/*

	[UCenter] (C)2001-2009 Comsenz Inc.

	This is NOT a freeware, use is subject to license terms



	$Id: pm.php 836 2008-12-05 02:25:48Z monkey $

*/



!defined('IN_UC') && exit('Access Denied');



define('PMLIMIT1DAY_ERROR', -1);

define('PMFLOODCTRL_ERROR', -2);

define('PMMSGTONOTFRIEND', -3);

define('PMSENDREGDAYS', -4);



class pmcontrol extends base {



	function __construct() {

		$this->pmcontrol();

	}



	function pmcontrol() {

		parent::__construct();

		$this->load('user');

		$this->load('pm');

	}



	function oncheck_newpm() {

		$this->init_input();

		$this->user['uid'] = intval($this->input('uid'));

		$more = $this->input('more');

		$result = $_ENV['pm']->check_newpm($this->user['uid'], $more);

		if($more == 3) {

			require_once UC_ROOT.'lib/uccode.class.php';

			$this->uccode = new uccode();

			$result['lastmsg'] = $this->uccode->complie($result['lastmsg']);

		}

		return $result;

	}



	function onsendpm() {

		$this->init_input();

		$fromuid = $this->input('fromuid');

		$msgto = $this->input('msgto');

		$subject = $this->input('subject');

		$message = $this->input('message');

		$replypmid = $this->input('replypmid');

		$isusername = $this->input('isusername');

		if($fromuid) {

			$user = $_ENV['user']->get_user_by_uid($fromuid);

			$user = daddslashes($user, 1);

			if(!$user) {

				return 0;

			}

			$this->user['uid'] = $user['uid'];

			$this->user['username'] = $user['username'];

		} else {

			$this->user['uid'] = 0;

			$this->user['username'] = '';

		}

		if($replypmid) {

			$isusername = 1;

			$pms = $_ENV['pm']->get_pm_by_pmid($this->user['uid'], $replypmid);

			if($pms[0]['msgfromid'] == $this->user['uid']) {

				$user = $_ENV['user']->get_user_by_uid($pms[0]['msgtoid']);

				$msgto = $user['username'];

			} else {

				$msgto = $pms[0]['msgfrom'];

			}

		}



		$msgto = array_unique(explode(',', $msgto));

		$isusername && $msgto = $_ENV['user']->name2id($msgto);

		$blackls = $_ENV['pm']->get_blackls($this->user['uid'], $msgto);



		if($fromuid) {

			if($this->settings['pmsendregdays']) {

				if($user['regdate'] > $this->time - $this->settings['pmsendregdays'] * 86400) {

					return PMSENDREGDAYS;

				}

			}

			$this->load('friend');

			if(count($msgto) > 1 && !($is_friend = $_ENV['friend']->is_friend($fromuid, $msgto, 3))) {

				return PMMSGTONOTFRIEND;

			}

			$pmlimit1day = $this->settings['pmlimit1day'] && $_ENV['pm']->count_pm_by_fromuid($this->user['uid'], 86400) > $this->settings['pmlimit1day'];

			if($pmlimit1day || ($this->settings['pmfloodctrl'] && $_ENV['pm']->count_pm_by_fromuid($this->user['uid'], $this->settings['pmfloodctrl']))) {

				if(!$_ENV['friend']->is_friend($fromuid, $msgto, 3)) {

					if(!$_ENV['pm']->is_reply_pm($fromuid, $msgto)) {

						if($pmlimit1day) {

							return PMLIMIT1DAY_ERROR;

						} else {

							return PMFLOODCTRL_ERROR;

						}

					}

				}

			}

		}

		$lastpmid = 0;

		foreach($msgto as $uid) {

			if(!$fromuid || !in_array('{ALL}', $blackls[$uid])) {

				$blackls[$uid] = $_ENV['user']->name2id($blackls[$uid]);

				if(!$fromuid || isset($blackls[$uid]) && !in_array($this->user['uid'], $blackls[$uid])) {

					$lastpmid = $_ENV['pm']->sendpm($subject, $message, $this->user, $uid, $replypmid);

				}

			}

		}

		return $lastpmid;

	}



	function ondelete() {

		$this->init_input();

		$this->user['uid'] = intval($this->input('uid'));

		$id = $_ENV['pm']->deletepm($this->user['uid'], $this->input('pmids'));

		return $id;

	}



	function ondeleteuser() {

		$this->init_input();

		$this->user['uid'] = intval($this->input('uid'));

		$id = $_ENV['pm']->deleteuidpm($this->user['uid'], $this->input('touids'));

		return $id;

	}

	

	function onreadstatus() {

		$this->init_input();

		$this->user['uid'] = intval($this->input('uid'));

		$_ENV['pm']->set_pm_status($this->user['uid'], $this->input('uids'), $this->input('pmids'), $this->input('status'));

	}



	function onignore() {

		$this->init_input();

		$this->user['uid'] = intval($this->input('uid'));

		return $_ENV['pm']->set_ignore($this->user['uid']);

	}



 	function onls() {

 		$this->init_input();

 		$pagesize = $this->input('pagesize');

 		$folder = $this->input('folder');

 		$filter = $this->input('filter');

 		$page = $this->input('page');

 		$folder = in_array($folder, array('newbox', 'inbox', 'outbox', 'searchbox')) ? $folder : 'inbox';

 		if($folder != 'searchbox') {

 			$filter = $filter ? (in_array($filter, array('newpm', 'privatepm', 'systempm', 'announcepm')) ? $filter : '') : '';

 		}

 		$msglen = $this->input('msglen');

 		$this->user['uid'] = intval($this->input('uid'));

		if($folder != 'searchbox') {

 			$pmnum = $_ENV['pm']->get_num($this->user['uid'], $folder, $filter);

 			$start = $this->page_get_start($page, $pagesize, $pmnum);

 		} else {

 			$pmnum = $pagesize;

 			$start = ($page - 1) * $pagesize;

 		}

 		if($pagesize > 0) {

	 		$pms = $_ENV['pm']->get_pm_list($this->user['uid'], $pmnum, $folder, $filter, $start, $pagesize);

	 		if(is_array($pms) && !empty($pms)) {

				foreach($pms as $key => $pm) {

					if($msglen) {

						$pms[$key]['message'] = htmlspecialchars($_ENV['pm']->removecode($pms[$key]['message'], $msglen));

					} else {

						unset($pms[$key]['message']);

					}

					unset($pms[$key]['folder']);

				}

			}

			$result['data'] = $pms;

		}

		$result['count'] = $pmnum;

 		return $result;

 	}



 	function onviewnode() {

  		$this->init_input();

  		$this->user['uid'] = intval($this->input('uid'));

 		$pmid = $_ENV['pm']->pmintval($this->input('pmid'));

 		$type = $this->input('type');

 		$pm = $_ENV['pm']->get_pmnode_by_pmid($this->user['uid'], $pmid, $type);

 		if($pm) {

			require_once UC_ROOT.'lib/uccode.class.php';

			$this->uccode = new uccode();

			$pm['message'] = $this->uccode->complie($pm['message']);

			return $pm;

		}

 	}



 	function onview() {

 		$this->init_input();

 		$this->user['uid'] = intval($this->input('uid'));

		$touid = $this->input('touid');

		$pmid = $_ENV['pm']->pmintval($this->input('pmid'));

		$daterange = $this->input('daterange');

 		if(empty($pmid)) {

	 		$daterange = empty($daterange) ? 1 : $daterange;

	 		$today = $this->time - ($this->time + $this->settings['timeoffset']) % 86400;

	 		if($daterange == 1) {

	 			$starttime = $today;

	 		} elseif($daterange == 2) {

	 			$starttime = $today - 86400;

	 		} elseif($daterange == 3) {

	 			$starttime = $today - 172800;

	 		} elseif($daterange == 4) {

	 			$starttime = $today - 604800;

	 		} elseif($daterange == 5) {

	 			$starttime = 0;

	 		}

	 		$endtime = $this->time;

	 		$pms = $_ENV['pm']->get_pm_by_touid($this->user['uid'], $touid, $starttime, $endtime);

	 	} else {

	 		$pms = $_ENV['pm']->get_pm_by_pmid($this->user['uid'], $pmid);

	 	}



 	 	require_once UC_ROOT.'lib/uccode.class.php';

		$this->uccode = new uccode();

		$status = FALSE;

		foreach($pms as $key => $pm) {

			$pms[$key]['message'] = $this->uccode->complie($pms[$key]['message']);

			!$status && $status = $pm['msgtoid'] && $pm['new'];

		}

		$status && $_ENV['pm']->set_pm_status($this->user['uid'], $touid, $pmid);

		return $pms;

 	}



  	function onblackls_get() {

  		$this->init_input();

 		$this->user['uid'] = intval($this->input('uid'));

 		return $_ENV['pm']->get_blackls($this->user['uid']);

 	}



 	function onblackls_set() {

 		$this->init_input();

 		$this->user['uid'] = intval($this->input('uid'));

 		$blackls = $this->input('blackls');

 		return $_ENV['pm']->set_blackls($this->user['uid'], $blackls);

 	}



	function onblackls_add() {

		$this->init_input();

 		$this->user['uid'] = intval($this->input('uid'));

 		$username = $this->input('username');

 		return $_ENV['pm']->update_blackls($this->user['uid'], $username, 1);

 	}



 	function onblackls_delete($arr) {

		$this->init_input();

 		$this->user['uid'] = intval($this->input('uid'));

 		$username = $this->input('username');

 		return $_ENV['pm']->update_blackls($this->user['uid'], $username, 2);

 	}



}



?>