⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 acp_users.php

📁 这些都是我以前学习是用到的源码
💻 PHP
📖 第 1 页 / 共 5 页
字号:
<?php/** ** @package acp* @version $Id: acp_users.php,v 1.83 2006/11/24 14:58:07 acydburn Exp $* @copyright (c) 2005 phpBB Group * @license http://opensource.org/licenses/gpl-license.php GNU Public License **//*** @package acp*/class acp_users{	var $u_action;	var $p_master;	function acp_users(&$p_master)	{		$this->p_master = &$p_master;	}	function main($id, $mode)	{		global $config, $db, $user, $auth, $template, $cache;		global $phpbb_root_path, $phpbb_admin_path, $phpEx, $table_prefix, $file_uploads;		$user->add_lang(array('posting', 'ucp', 'acp/users'));		$this->tpl_name = 'acp_users';		$this->page_title = 'ACP_USER_' . strtoupper($mode);		include($phpbb_root_path . 'includes/functions_user.' . $phpEx);		include($phpbb_root_path . 'includes/functions_profile_fields.' . $phpEx);		$error		= array();		$username	= request_var('username', '', true);		$user_id	= request_var('u', 0);		$action		= request_var('action', '');		$submit		= (isset($_POST['update'])) ? true : false;		// Whois (special case)		if ($action == 'whois')		{			$this->page_title = 'WHOIS';			$this->tpl_name = 'simple_body';			$user_ip = request_var('user_ip', '');			$domain = gethostbyaddr($user_ip);			$ipwhois = '';			if ($ipwhois = user_ipwhois($user_ip))			{				$ipwhois = preg_replace('#(\s)([\w\-\._\+]+@[\w\-\.]+)(\s)#', '\1<a href="mailto:\2">\2</a>\3', $ipwhois);				$ipwhois = preg_replace('#(\s)(http:/{2}[^\s]*)(\s)#', '\1<a href="\2">\2</a>\3', $ipwhois);			}			$template->assign_vars(array(				'MESSAGE_TITLE'		=> sprintf($user->lang['IP_WHOIS_FOR'], $domain),				'MESSAGE_TEXT'		=> nl2br($ipwhois))			);			return;		}		// Show user selection mask		if (!$username && !$user_id)		{			$this->page_title = 'SELECT_USER';			$template->assign_vars(array(				'U_ACTION'			=> $this->u_action,				'ANONYMOUS_USER_ID'	=> ANONYMOUS,				'S_SELECT_USER'		=> true,				'U_FIND_USERNAME'	=> append_sid("{$phpbb_root_path}memberlist.$phpEx", 'mode=searchuser&amp;form=select_user&amp;field=username'),				'UA_FIND_USERNAME'	=> append_sid("{$phpbb_root_path}memberlist.$phpEx", 'mode=searchuser&form=select_user&field=username', false),				)			);			return;		}		if (!$user_id)		{			$sql = 'SELECT user_id				FROM ' . USERS_TABLE . "				WHERE username_clean = '" . $db->sql_escape(utf8_clean_string($username)) . "'";			$result = $db->sql_query($sql);			$user_id = (int) $db->sql_fetchfield('user_id');			$db->sql_freeresult($result);			if (!$user_id)			{				trigger_error($user->lang['NO_USER'] . adm_back_link($this->u_action), E_USER_WARNING);			}		}		// Generate content for all modes		$sql = 'SELECT u.*, s.*			FROM ' . USERS_TABLE . ' u				LEFT JOIN ' . SESSIONS_TABLE . ' s ON (s.session_user_id = u.user_id)			WHERE u.user_id = ' . $user_id . '			ORDER BY s.session_time DESC';		$result = $db->sql_query($sql);		$user_row = $db->sql_fetchrow($result);		$db->sql_freeresult($result);		if (!$user_row)		{			trigger_error($user->lang['NO_USER'] . adm_back_link($this->u_action), E_USER_WARNING);		}		// Generate overall "header" for user admin		$s_form_options = '';		// Include info file...		include_once($phpbb_root_path . 'includes/acp/info/acp_users.' . $phpEx);		$forms_ary = acp_users_info::module();		foreach ($forms_ary['modes'] as $value => $ary)		{			if (!$this->p_master->module_auth($ary['auth']))			{				continue;			}						$selected = ($mode == $value) ? ' selected="selected"' : '';			$s_form_options .= '<option value="' . $value . '"' . $selected . '>' . $user->lang['ACP_USER_' . strtoupper($value)]  . '</option>';		}		$template->assign_vars(array(			'U_BACK'			=> $this->u_action,			'U_MODE_SELECT'		=> append_sid("{$phpbb_admin_path}index.$phpEx", "i=$id&amp;u=$user_id"),			'U_ACTION'			=> $this->u_action . '&amp;u=' . $user_id,			'S_FORM_OPTIONS'	=> $s_form_options)		);		// Prevent normal users/admins change/view founders if they are not a founder by themselves		if ($user->data['user_type'] != USER_FOUNDER && $user_row['user_type'] == USER_FOUNDER)		{			trigger_error($user->lang['NOT_MANAGE_FOUNDER'] . adm_back_link($this->u_action), E_USER_WARNING);		}		switch ($mode)		{			case 'overview':								$delete			= request_var('delete', 0);				$delete_type	= request_var('delete_type', '');				$ip				= request_var('ip', 'ip');				if ($submit)				{					// You can't delete the founder					if ($delete && $user_row['user_type'] != USER_FOUNDER)					{						if (!$auth->acl_get('a_userdel'))						{							trigger_error($user->lang['NO_AUTH_OPERATION'] . adm_back_link($this->u_action . '&amp;u=' . $user_id), E_USER_WARNING);						}						// Check if the user wants to remove himself or the guest user account						if ($user_id == ANONYMOUS)						{							trigger_error($user->lang['CANNOT_REMOVE_ANONYMOUS'] . adm_back_link($this->u_action . '&amp;u=' . $user_id), E_USER_WARNING);						}						if ($user_id == $user->data['user_id'])						{							trigger_error($user->lang['CANNOT_REMOVE_YOURSELF'] . adm_back_link($this->u_action . '&amp;u=' . $user_id), E_USER_WARNING);						}						if (confirm_box(true))						{							user_delete($delete_type, $user_id, $user_row['username']);							add_log('admin', 'LOG_USER_DELETED', $user_row['username']);							trigger_error($user->lang['USER_DELETED'] . adm_back_link($this->u_action));						}						else						{							confirm_box(false, $user->lang['CONFIRM_OPERATION'], build_hidden_fields(array(								'u'				=> $user_id,								'i'				=> $id,								'mode'			=> $mode,								'action'		=> $action,								'update'		=> true,								'delete'		=> 1,								'delete_type'	=> $delete_type))							);						}					}					// Handle quicktool actions					switch ($action)					{						case 'banuser':						case 'banemail':						case 'banip':							if ($user_id == $user->data['user_id'])							{								trigger_error($user->lang['CANNOT_BAN_YOURSELF'] . adm_back_link($this->u_action . '&amp;u=' . $user_id), E_USER_WARNING);							}							if ($user_row['user_type'] == USER_FOUNDER)							{								trigger_error($user->lang['CANNOT_BAN_FOUNDER'] . adm_back_link($this->u_action . '&amp;u=' . $user_id), E_USER_WARNING);							}							$ban = array();							switch ($action)							{								case 'banuser':									$ban[] = $user_row['username'];									$reason = 'USER_ADMIN_BAN_NAME_REASON';									$log = 'LOG_USER_BAN_USER';								break;								case 'banemail':									$ban[] = $user_row['user_email'];									$reason = 'USER_ADMIN_BAN_EMAIL_REASON';									$log = 'LOG_USER_BAN_EMAIL';								break;								case 'banip':									$ban[] = $user_row['user_ip'];									$sql = 'SELECT DISTINCT poster_ip										FROM ' . POSTS_TABLE . "										WHERE poster_id = $user_id";									$result = $db->sql_query($sql);									while ($row = $db->sql_fetchrow($result))									{										$ban[] = $row['poster_ip'];									}									$db->sql_freeresult($result);									$reason = 'USER_ADMIN_BAN_IP_REASON';									$log = 'LOG_USER_BAN_IP';								break;							}							user_ban(substr($action, 3), $ban, 0, 0, 0, $user->lang[$reason]);							add_log('admin', $log, $user->lang[$reason], implode(', ', $ban));							add_log('user', $user_id, $log, $user->lang[$reason], implode(', ', $ban));							trigger_error($user->lang['BAN_SUCCESSFUL'] . adm_back_link($this->u_action . '&amp;u=' . $user_id));						break;						case 'reactivate':							if ($user_id == $user->data['user_id'])							{								trigger_error($user->lang['CANNOT_FORCE_REACT_YOURSELF'] . adm_back_link($this->u_action . '&amp;u=' . $user_id), E_USER_WARNING);							}							if ($user_row['user_type'] == USER_FOUNDER)							{								trigger_error($user->lang['CANNOT_FORCE_REACT_FOUNDER'] . adm_back_link($this->u_action . '&amp;u=' . $user_id), E_USER_WARNING);							}							if ($user_row['user_type'] == USER_IGNORE)							{								trigger_error($user->lang['CANNOT_FORCE_REACT_BOT'] . adm_back_link($this->u_action . '&amp;u=' . $user_id), E_USER_WARNING);							}							if ($config['email_enable'])							{								include_once($phpbb_root_path . 'includes/functions_messenger.' . $phpEx);								$server_url = generate_board_url();								$user_actkey = gen_rand_string(10);								$key_len = 54 - (strlen($server_url));								$key_len = ($key_len > 6) ? $key_len : 6;								$user_actkey = substr($user_actkey, 0, $key_len);								if ($user_row['user_type'] == USER_NORMAL)								{									user_active_flip('deactivate', $user_id, INACTIVE_REMIND);									$sql = 'UPDATE ' . USERS_TABLE . "										SET user_actkey = '" . $db->sql_escape($user_actkey) . "'										WHERE user_id = $user_id";									$db->sql_query($sql);								}								$messenger = new messenger(false);								$messenger->template('user_resend_inactive', $user_row['user_lang']);								$messenger->replyto($config['board_contact']);								$messenger->to($user_row['user_email'], $user_row['username']);								$messenger->headers('X-AntiAbuse: Board servername - ' . $config['server_name']);								$messenger->headers('X-AntiAbuse: User_id - ' . $user->data['user_id']);								$messenger->headers('X-AntiAbuse: Username - ' . $user->data['username']);								$messenger->headers('X-AntiAbuse: User IP - ' . $user->ip);								$messenger->assign_vars(array(									'WELCOME_MSG'	=> htmlspecialchars_decode(sprintf($user->lang['WELCOME_SUBJECT'], $config['sitename'])),									'USERNAME'		=> htmlspecialchars_decode($user_row['username']),									'U_ACTIVATE'	=> "$server_url/ucp.$phpEx?mode=activate&u={$user_row['user_id']}&k=$user_actkey")								);								$messenger->send(NOTIFY_EMAIL);								add_log('admin', 'LOG_USER_REACTIVATE', $user_row['username']);								add_log('user', $user_id, 'LOG_USER_REACTIVATE_USER');								trigger_error($user->lang['FORCE_REACTIVATION_SUCCESS'] . adm_back_link($this->u_action . '&amp;u=' . $user_id));							}						break;						case 'active':							if ($user_id == $user->data['user_id'])							{								// It is only deactivation since the user is already activated (else he would not have reached this page)								trigger_error($user->lang['CANNOT_DEACTIVATE_YOURSELF'] . adm_back_link($this->u_action . '&amp;u=' . $user_id), E_USER_WARNING);							}							if ($user_row['user_type'] == USER_FOUNDER)							{								trigger_error($user->lang['CANNOT_DEACTIVATE_FOUNDER'] . adm_back_link($this->u_action . '&amp;u=' . $user_id), E_USER_WARNING);							}							if ($user_row['user_type'] == USER_IGNORE)							{								trigger_error($user->lang['CANNOT_DEACTIVATE_BOT'] . adm_back_link($this->u_action . '&amp;u=' . $user_id), E_USER_WARNING);							}							user_active_flip('flip', $user_id);							$message = ($user_row['user_type'] == USER_INACTIVE) ? 'USER_ADMIN_ACTIVATED' : 'USER_ADMIN_DEACTIVED';							$log = ($user_row['user_type'] == USER_INACTIVE) ? 'LOG_USER_ACTIVE' : 'LOG_USER_INACTIVE';							add_log('admin', $log, $user_row['username']);							add_log('user', $user_id, $log . '_USER');							trigger_error($user->lang[$message] . adm_back_link($this->u_action . '&amp;u=' . $user_id));						break;						case 'delsig':							$sql_ary = array(								'user_sig'					=> '',								'user_sig_bbcode_uid'		=> '',

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -