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

📄 acp_users.php

📁 这些都是我以前学习是用到的源码
💻 PHP
📖 第 1 页 / 共 5 页
字号:
											AND user_id <> ' . $user_id;									$result = $db->sql_query_limit($sql, 1);									$row = $db->sql_fetchrow($result);									$db->sql_freeresult($result);									if ($row)									{										$sql_ary['user_type'] = USER_NORMAL;									}									else									{										trigger_error($user->lang['AT_LEAST_ONE_FOUNDER'] . adm_back_link($this->u_action . '&amp;u=' . $user_id), E_USER_WARNING);									}								}							}						}						if ($update_username !== false)						{							$sql_ary['username'] = $update_username;							$sql_ary['username_clean'] = utf8_clean_string($update_username);							add_log('user', $user_id, 'LOG_USER_UPDATE_NAME', $user_row['username'], $update_username);						}						if ($update_email !== false)						{							$sql_ary += array(								'user_email'		=> $update_email,								'user_email_hash'	=> crc32(strtolower($update_email)) . strlen($update_email)							);							add_log('user', $user_id, 'LOG_USER_UPDATE_EMAIL', $user_row['username'], $user_row['user_email'], $update_email);						}						if ($update_password)						{							$sql_ary += array(								'user_password' => md5($data['user_password']),								'user_passchg'	=> time(),							);							$user->reset_login_keys($user_id);							add_log('user', $user_id, 'LOG_USER_NEW_PASSWORD', $user_row['username']);						}						if (sizeof($sql_ary))						{							$sql = 'UPDATE ' . USERS_TABLE . '								SET ' . $db->sql_build_array('UPDATE', $sql_ary) . '								WHERE user_id = ' . $user_id;							$db->sql_query($sql);						}						/**						* @todo adjust every data based in the number of user warnings						*/						if ($update_warning)						{						}						if ($update_username)						{							user_update_name($user_row['username'], $update_username);						}						// Let the users permissions being updated						$auth->acl_clear_prefetch($user_id);						add_log('admin', 'LOG_USER_USER_UPDATE', $data['username']);						trigger_error($user->lang['USER_OVERVIEW_UPDATED'] . adm_back_link($this->u_action . '&amp;u=' . $user_id));					}					// Replace "error" strings with their real, localised form					$error = preg_replace('#^([A-Z_]+)$#e', "(!empty(\$user->lang['\\1'])) ? \$user->lang['\\1'] : '\\1'", $error);				}				$user_char_ary = array('.*' => 'USERNAME_CHARS_ANY', '[\w]+' => 'USERNAME_ALPHA_ONLY', '[\w_\+\. \-\[\]]+' => 'USERNAME_ALPHA_SPACERS');				$pass_char_ary = array('.*' => 'PASS_TYPE_ANY', '[a-zA-Z]' => 'PASS_TYPE_CASE', '[a-zA-Z0-9]' => 'PASS_TYPE_ALPHA', '[a-zA-Z\W]' => 'PASS_TYPE_SYMBOL');				if ($user_id == $user->data['user_id'])				{					$quick_tool_ary = array('delsig' => 'DEL_SIG', 'delavatar' => 'DEL_AVATAR', 'moveposts' => 'MOVE_POSTS', 'delposts' => 'DEL_POSTS', 'delattach' => 'DEL_ATTACH');				}				else				{					$quick_tool_ary = array();					if ($user_row['user_type'] != USER_FOUNDER)					{						$quick_tool_ary += array('banuser' => 'BAN_USER', 'banemail' => 'BAN_EMAIL', 'banip' => 'BAN_IP');					}					if ($user_row['user_type'] != USER_FOUNDER && $user_row['user_type'] != USER_IGNORE)					{						$quick_tool_ary += array('active' => (($user_row['user_type'] == USER_INACTIVE) ? 'ACTIVATE' : 'DEACTIVATE'));					}										$quick_tool_ary += array('delsig' => 'DEL_SIG', 'delavatar' => 'DEL_AVATAR', 'moveposts' => 'MOVE_POSTS', 'delposts' => 'DEL_POSTS', 'delattach' => 'DEL_ATTACH');										if ($config['email_enable'] && ($user_row['user_type'] == USER_NORMAL || $user_row['user_type'] == USER_INACTIVE))					{						$quick_tool_ary['reactivate'] = 'FORCE';					}				}				$s_action_options = '<option class="sep" value="">' . $user->lang['SELECT_OPTION'] . '</option>';				foreach ($quick_tool_ary as $value => $lang)				{					$s_action_options .= '<option value="' . $value . '">' . $user->lang['USER_ADMIN_' . $lang]  . '</option>';				}				if ($config['load_onlinetrack'])				{					$sql = 'SELECT MAX(session_time) AS session_time, MIN(session_viewonline) AS session_viewonline						FROM ' . SESSIONS_TABLE . "						WHERE session_user_id = $user_id";					$result = $db->sql_query($sql);					$row = $db->sql_fetchrow($result);					$db->sql_freeresult($result);					$user_row['session_time'] = (isset($row['session_time'])) ? $row['session_time'] : 0;					$user_row['session_viewonline'] = (isset($row['session_viewonline'])) ? $row['session_viewonline'] : 0;					unset($row);				}				$last_visit = (!empty($user_row['session_time'])) ? $user_row['session_time'] : $user_row['user_lastvisit'];				$inactive_reason = '';				if ($user_row['user_type'] == USER_INACTIVE)				{					$inactive_reason = $user->lang['INACTIVE_REASON_UNKNOWN'];					switch ($user_row['user_inactive_reason'])					{						case INACTIVE_REGISTER:							$inactive_reason = $user->lang['INACTIVE_REASON_REGISTER'];						break;						case INACTIVE_PROFILE:							$inactive_reason = $user->lang['INACTIVE_REASON_PROFILE'];						break;						case INACTIVE_MANUAL:							$inactive_reason = $user->lang['INACTIVE_REASON_MANUAL'];						break;						case INACTIVE_REMIND:							$inactive_reason = $user->lang['INACTIVE_REASON_REMIND'];						break;					}				}				$template->assign_vars(array(					'L_NAME_CHARS_EXPLAIN'		=> sprintf($user->lang[$user_char_ary[str_replace('\\\\', '\\', $config['allow_name_chars'])] . '_EXPLAIN'], $config['min_name_chars'], $config['max_name_chars']),					'L_CHANGE_PASSWORD_EXPLAIN'	=> sprintf($user->lang[$pass_char_ary[str_replace('\\\\', '\\', $config['pass_complex'])] . '_EXPLAIN'], $config['min_pass_chars'], $config['max_pass_chars']),					'S_FOUNDER'					=> ($user->data['user_type'] == USER_FOUNDER) ? true : false,					'S_OVERVIEW'		=> true,					'S_USER_IP'			=> ($user_row['user_ip']) ? true : false,					'S_USER_FOUNDER'	=> ($user_row['user_type'] == USER_FOUNDER) ? true : false,					'S_ACTION_OPTIONS'	=> $s_action_options,					'S_OWN_ACCOUNT'		=> ($user_id == $user->data['user_id']) ? true : false,					'S_USER_INACTIVE'	=> ($user_row['user_type'] == USER_INACTIVE) ? true : false,					'U_SHOW_IP'		=> $this->u_action . "&amp;u=$user_id&amp;ip=" . (($ip == 'ip') ? 'hostname' : 'ip'),					'U_WHOIS'		=> $this->u_action . "&amp;action=whois&amp;user_ip={$user_row['user_ip']}",					'U_SWITCH_PERMISSIONS'	=> ($auth->acl_get('a_switchperm') && $user->data['user_id'] != $user_row['user_id']) ? append_sid("{$phpbb_root_path}ucp.$phpEx", "mode=switch_perm&amp;u={$user_row['user_id']}") : '',					'USER'				=> $user_row['username'],					'USER_REGISTERED'	=> $user->format_date($user_row['user_regdate']),					'REGISTERED_IP'		=> ($ip == 'hostname') ? gethostbyaddr($user_row['user_ip']) : $user_row['user_ip'],					'USER_LASTACTIVE'	=> ($last_visit) ? $user->format_date($last_visit) : ' - ',					'USER_EMAIL'		=> $user_row['user_email'],					'USER_WARNINGS'		=> $user_row['user_warnings'],					'USER_POSTS'		=> $user_row['user_posts'],					'USER_INACTIVE_REASON'	=> $inactive_reason,					)				);			break;			case 'feedback':				$user->add_lang('mcp');								// Set up general vars				$start		= request_var('start', 0);				$deletemark = (isset($_POST['delmarked'])) ? true : false;				$deleteall	= (isset($_POST['delall'])) ? true : false;				$marked		= request_var('mark', array(0));				$message	= request_var('message', '', true);				// Sort keys				$sort_days	= request_var('st', 0);				$sort_key	= request_var('sk', 't');				$sort_dir	= request_var('sd', 'd');				// Delete entries if requested and able				if (($deletemark || $deleteall) && $auth->acl_get('a_clearlogs'))				{					$where_sql = '';					if ($deletemark && $marked)					{						$sql_in = array();						foreach ($marked as $mark)						{							$sql_in[] = $mark;						}						$where_sql = ' AND ' . $db->sql_in_set('log_id', $sql_in);						unset($sql_in);					}					if ($where_sql || $deleteall)					{						$sql = 'DELETE FROM ' . LOG_TABLE . '							WHERE log_type = ' . LOG_USERS . "							$where_sql";						$db->sql_query($sql);						add_log('admin', 'LOG_CLEAR_USER', $user_row['username']);					}				}				if ($submit && $message)				{					add_log('admin', 'LOG_USER_FEEDBACK', $user_row['username']);					add_log('user', $user_id, 'LOG_USER_GENERAL', $message);					trigger_error($user->lang['USER_FEEDBACK_ADDED'] . adm_back_link($this->u_action . '&amp;u=' . $user_id));				}								// Sorting				$limit_days = array(0 => $user->lang['ALL_ENTRIES'], 1 => $user->lang['1_DAY'], 7 => $user->lang['7_DAYS'], 14 => $user->lang['2_WEEKS'], 30 => $user->lang['1_MONTH'], 90 => $user->lang['3_MONTHS'], 180 => $user->lang['6_MONTHS'], 365 => $user->lang['1_YEAR']);				$sort_by_text = array('u' => $user->lang['SORT_USERNAME'], 't' => $user->lang['SORT_DATE'], 'i' => $user->lang['SORT_IP'], 'o' => $user->lang['SORT_ACTION']);				$sort_by_sql = array('u' => 'u.username_clean', 't' => 'l.log_time', 'i' => 'l.log_ip', 'o' => 'l.log_operation');				$s_limit_days = $s_sort_key = $s_sort_dir = $u_sort_param = '';				gen_sort_selects($limit_days, $sort_by_text, $sort_days, $sort_key, $sort_dir, $s_limit_days, $s_sort_key, $s_sort_dir, $u_sort_param);				// Define where and sort sql for use in displaying logs				$sql_where = ($sort_days) ? (time() - ($sort_days * 86400)) : 0;				$sql_sort = $sort_by_sql[$sort_key] . ' ' . (($sort_dir == 'd') ? 'DESC' : 'ASC');				// Grab log data				$log_data = array();				$log_count = 0;				view_log('user', $log_data, $log_count, $config['topics_per_page'], $start, 0, 0, $user_id, $sql_where, $sql_sort);				$template->assign_vars(array(					'S_FEEDBACK'	=> true,					'S_ON_PAGE'		=> on_page($log_count, $config['topics_per_page'], $start),					'PAGINATION'	=> generate_pagination($this->u_action . "&amp;u=$user_id&amp;$u_sort_param", $log_count, $config['topics_per_page'], $start, true),					'S_LIMIT_DAYS'	=> $s_limit_days,					'S_SORT_KEY'	=> $s_sort_key,					'S_SORT_DIR'	=> $s_sort_dir,					'S_CLEARLOGS'	=> $auth->acl_get('a_clearlogs'))				);				foreach ($log_data as $row)				{					$template->assign_block_vars('log', array(						'USERNAME'		=> $row['username_full'],						'IP'			=> $row['ip'],						'DATE'			=> $user->format_date($row['time']),						'ACTION'		=> nl2br($row['action']),						'ID'			=> $row['id'])					);				}			break;			case 'profile':				$cp = new custom_profile();				$cp_data = $cp_error = array();				$sql = 'SELECT lang_id					FROM ' . LANG_TABLE . "					WHERE lang_iso = '" . $db->sql_escape($user->data['user_lang']) . "'";				$result = $db->sql_query($sql);				$row = $db->sql_fetchrow($result);				$db->sql_freeresult($result);				$user_row['iso_lang_id'] = $row['lang_id'];				$data = array(					'icq'			=> request_var('icq', $user_row['user_icq']),					'aim'			=> request_var('aim', $user_row['user_aim']),					'msn'			=> request_var('msn', $user_row['user_msnm']),					'yim'			=> request_var('yim', $user_row['user_yim']),					'jabber'		=> request_var('jabber', $user_row['user_jabber']),					'website'		=> request_var('website', $user_row['user_website']),					'location'		=> utf8_normalize_nfc(request_var('location', $user_row['user_from'], true)),					'occupation'	=> utf8_normalize_nfc(request_var('occupation', $user_row['user_occ'], true)),					'interests'		=> utf8_normalize_nfc(request_var('interests', $user_row['user_interests'], true)),					'bday_day'		=> 0,					'bday_month'	=> 0,					'bday_year'		=> 0,				);				if ($user_row['user_birthday'])				{					list($data['bday_day'], $data['bday_month'], $data['bday_year']) = explode('-', $user_row['user_birthday']);				}				$data['bday_day'] = request_var('bday_day', $data['bday_day']);				$data['bday_month'] = request_var('bday_month', $data['bday_month']);				$data['bday_year'] = request_var('bday_year', $data['bday_year']);				if ($submit)				{					$error = validate_data($data, array(						'icq'			=> array(							array('string', true, 3, 15),							array('match', true, '#^[0-9]+$#i')),						'aim'			=> array('string', true, 3, 17),						'msn'			=> array('string', true, 5, 255),						'jabber'		=> array(							array('string', true, 5, 255),							array('match', true, '#^[a-z0-9\.\-_\+]+?@(.*?\.)*?[a-z0-9\-_]+?\.[a-z]{2,4}(/.*)?$#i')),						'yim'			=> array('string', true, 5, 255),						'website'		=> array(							array('string', true, 12, 255),							array('match', true, '#^http[s]?://(.*?\.)*?[a-z0-9\-]+\.[a-z]{2,4}#i')),						'location'		=> array('string', true, 2, 255),						'occupation'	=> array('string', true, 2, 500),						'interests'		=> array('string', true, 2, 500),						'bday_day'		=> array('num', true, 1, 31),						'bday_month'	=> array('num', true, 1, 12),						'bday_year'		=> array('num', true, 1901, gmdate('Y', time())),					));					// validate custom profile fields					$cp->submit_cp_field('profile', $user_row['iso_lang_id'], $cp_data, $cp_error);					if (sizeof($cp_error))					{						$error = array_merge($error, $cp_error);					}					if (!sizeof($error))					{						$sql_ary = array(							'user_icq'		=> $data['icq'],							'user_aim'		=> $data['aim'],							'user_msnm'		=> $data['msn'],							'user_yim'		=> $data['yim'],							'user_jabber'	=> $data['jabber'],							'user_website'	=> $data['website'],							'user_from'		=> $data['location'],							'user_occ'		=> $data['occupation'],							'user_interests'=> $data['interests'],

⌨️ 快捷键说明

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