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/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/user.php
<?php



/*

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

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



	$Id: user.php 968 2009-10-29 02:06:45Z zhaoxiongfei $

*/



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



define('UC_USER_CHECK_USERNAME_FAILED', -1);

define('UC_USER_USERNAME_BADWORD', -2);

define('UC_USER_USERNAME_EXISTS', -3);

define('UC_USER_EMAIL_FORMAT_ILLEGAL', -4);

define('UC_USER_EMAIL_ACCESS_ILLEGAL', -5);

define('UC_USER_EMAIL_EXISTS', -6);



class usercontrol extends base {





	function __construct() {

		$this->usercontrol();

	}



	function usercontrol() {

		parent::__construct();

		$this->load('user');

		$this->app = $this->cache['apps'][UC_APPID];

	}



	// -1 未开启

	function onsynlogin() {

		$this->init_input();

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

		if($this->app['synlogin']) {

			if($this->user = $_ENV['user']->get_user_by_uid($uid)) {

				$synstr = '';

				foreach($this->cache['apps'] as $appid => $app) {

					if($app['synlogin'] && $app['appid'] != $this->app['appid']) {

						$synstr .= '<script type="text/javascript" src="'.$app['url'].'/api/uc.php?time='.$this->time.'&code='.urlencode($this->authcode('action=synlogin&username='.$this->user['username'].'&uid='.$this->user['uid'].'&password='.$this->user['password']."&time=".$this->time, 'ENCODE', $app['authkey'])).'"></script>';

					}

				}

				return $synstr;

			}

		}

		return '';

	}



	function onsynlogout() {

		$this->init_input();

		if($this->app['synlogin']) {

			$synstr = '';

			foreach($this->cache['apps'] as $appid => $app) {

				if($app['synlogin'] && $app['appid'] != $this->app['appid']) {

					$synstr .= '<script type="text/javascript" src="'.$app['url'].'/api/uc.php?time='.$this->time.'&code='.urlencode($this->authcode('action=synlogout&time='.$this->time, 'ENCODE', $app['authkey'])).'"></script>';

				}

			}

			return $synstr;

		}

		return '';

	}



	function onregister() {

		$this->init_input();

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

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

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

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

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

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

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



		if(($status = $this->_check_username($username)) < 0) {

			return $status;

		}

		if(($status = $this->_check_email($email)) < 0) {

			return $status;

		}

		$uid = $_ENV['user']->add_user($username, $password, $email, $random, 0, $questionid, $answer, $regip);

		return $uid;

	}



	function onedit() {

		$this->init_input();

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

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

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

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

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

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

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

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



		if($email && ($status = $this->_check_email($email, $username)) < 0) {

			return $status;

		}

		$status = $_ENV['user']->edit_user($username, $oldpw, $newpw, $email, $salt, $ignoreoldpw, $questionid, $answer);



		if($newpw && $status > 0) {

			$this->load('note');

			$_ENV['note']->add('updatepw', 'username='.urlencode($username).'&password=');

			$_ENV['note']->send();

		}

		return $status;

	}



	function onlogin() {

		$this->init_input();

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

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

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

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

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

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

		if($isuid == 1) {

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

		} elseif($isuid == 2) {

			$user = $_ENV['user']->get_user_by_email($username);

		} else {

			$user = $_ENV['user']->get_user_by_username($username);

		}



		$passwordmd5 = preg_match('/^\w{32}$/', $password) ? $password : md5($password);

		if(empty($user)) {

			$status = -1;

		} elseif($user['password'] != md5($passwordmd5.$user['salt'])) {

			$status = -2;

		} elseif($checkques && $user['secques'] != '' && $user['secques'] != $_ENV['user']->quescrypt($questionid, $answer)) {

			$status = -3;

		} else {

			$status = $user['uid'];

		}

		$merge = $status != -1 && !$isuid && $_ENV['user']->check_mergeuser($username) ? 1 : 0;

		return array($status, $user['username'], $password, $user['email'], $merge);

	}



	function oncheck_email() {

		$this->init_input();

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

		return $this->_check_email($email);

	}



	function oncheck_username() {

		$this->init_input();

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

		if(($status = $this->_check_username($username)) < 0) {

			return $status;

		} else {

			return 1;

		}

	}



	function onget_user() {

		$this->init_input();

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

		if(!$this->input('isuid')) {

			$status = $_ENV['user']->get_user_by_username($username);

		} else {

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

		}

		if($status) {

			return array($status['uid'],$status['username'],$status['email']);

		} else {

			return 0;

		}

	}





	function ongetprotected() {

		$protectedmembers = $this->db->fetch_all("SELECT uid,username FROM ".UC_DBTABLEPRE."protectedmembers GROUP BY username");

		return $protectedmembers;

	}



	function ondelete() {

		$this->init_input();

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

		return $_ENV['user']->delete_user($uid);

	}



	function onaddprotected() {

		$this->init_input();

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

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

		$appid = $this->app['appid'];

		$usernames = (array)$username;

		foreach($usernames as $username) {

			$user = $_ENV['user']->get_user_by_username($username);

			$uid = $user['uid'];

			$this->db->query("REPLACE INTO ".UC_DBTABLEPRE."protectedmembers SET uid='$uid', username='$username', appid='$appid', dateline='{$this->time}', admin='$admin'", 'SILENT');

		}

		return $this->db->errno() ? -1 : 1;

	}



	function ondeleteprotected() {

		$this->init_input();

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

		$appid = $this->app['appid'];

		$usernames = (array)$username;

		foreach($usernames as $username) {

			$this->db->query("DELETE FROM ".UC_DBTABLEPRE."protectedmembers WHERE username='$username' AND appid='$appid'");

		}

		return $this->db->errno() ? -1 : 1;

	}



	function onmerge() {

		$this->init_input();

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

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

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

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

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

		if(($status = $this->_check_username($newusername)) < 0) {

			return $status;

		}

		$uid = $_ENV['user']->add_user($newusername, $password, $email, $uid);

		$this->db->query("UPDATE ".UC_DBTABLEPRE."pms SET msgfrom='$newusername' WHERE msgfromid='$uid' AND msgfrom='$oldusername'");

		$this->db->query("DELETE FROM ".UC_DBTABLEPRE."mergemembers WHERE appid='".$this->app['appid']."' AND username='$oldusername'");

		return $uid;

	}



	function onmerge_remove() {

		$this->init_input();

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

		$this->db->query("DELETE FROM ".UC_DBTABLEPRE."mergemembers WHERE appid='".$this->app['appid']."' AND username='$username'");

		return NULL;

	}



	function _check_username($username) {

		$username = addslashes(trim(stripslashes($username)));

		if(!$_ENV['user']->check_username($username)) {

			return UC_USER_CHECK_USERNAME_FAILED;

		} elseif(!$_ENV['user']->check_usernamecensor($username)) {

			return UC_USER_USERNAME_BADWORD;

		} elseif($_ENV['user']->check_usernameexists($username)) {

			return UC_USER_USERNAME_EXISTS;

		}

		return 1;

	}



	function _check_email($email, $username = '') {

		if(empty($this->settings)) {

			$this->settings = $this->cache('settings');

		}

		if(!$_ENV['user']->check_emailformat($email)) {

			return UC_USER_EMAIL_FORMAT_ILLEGAL;

		} elseif(!$_ENV['user']->check_emailaccess($email)) {

			return UC_USER_EMAIL_ACCESS_ILLEGAL;

		} elseif(!$this->settings['doublee'] && $_ENV['user']->check_emailexists($email, $username)) {

			return UC_USER_EMAIL_EXISTS;

		} else {

			return 1;

		}

	}



	function onuploadavatar() {

	}



	function onrectavatar() {

	}

	function flashdata_decode($s) {

	}

}



?>