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

📄 ucp_profile.php

📁 这些都是我以前学习是用到的源码
💻 PHP
📖 第 1 页 / 共 2 页
字号:
<?php/** ** @package ucp* @version $Id: ucp_profile.php,v 1.98 2006/11/26 14:55:18 acydburn Exp $* @copyright (c) 2005 phpBB Group * @license http://opensource.org/licenses/gpl-license.php GNU Public License **//*** ucp_profile* Changing profile settings* @package ucp*/class ucp_profile{	var $u_action;	function main($id, $mode)	{		global $config, $db, $user, $auth, $template, $phpbb_root_path, $phpEx;		$user->add_lang('posting');		$preview	= (!empty($_POST['preview'])) ? true : false;		$submit		= (!empty($_POST['submit'])) ? true : false;		$delete		= (!empty($_POST['delete'])) ? true : false;		$error = $data = array();		$s_hidden_fields = '';		switch ($mode)		{			case 'reg_details':				$data = array(					'username'			=> request_var('username', $user->data['username'], true),					'email'				=> strtolower(request_var('email', $user->data['user_email'])),					'email_confirm'		=> strtolower(request_var('email_confirm', '')),					'new_password'		=> request_var('new_password', '', true),					'cur_password'		=> request_var('cur_password', '', true),					'password_confirm'	=> request_var('password_confirm', '', true),				);				if ($submit)				{					// Do not check cur_password, it is the old one.					$check_ary = array(						'new_password'		=> array(							array('string', true, $config['min_pass_chars'], $config['max_pass_chars']),							array('password')),						'password_confirm'	=> array('string', true, $config['min_pass_chars'], $config['max_pass_chars']),						'email'				=> array(							array('string', false, 6, 60),							array('email', $data['email'])),						'email_confirm'		=> array('string', true, 6, 60),					);					if ($auth->acl_get('u_chgname') && $config['allow_namechange'])					{						$check_ary['username'] = array(							array('string', false, $config['min_name_chars'], $config['max_name_chars']),							array('username', $data['username']),						);					}					$error = validate_data($data, $check_ary);					if ($auth->acl_get('u_chgpasswd') && $data['new_password'] && $data['password_confirm'] != $data['new_password'])					{						$error[] = 'NEW_PASSWORD_ERROR';					}					if (($data['new_password'] || ($auth->acl_get('u_chgemail') && $data['email'] != $user->data['user_email']) || ($data['username'] != $user->data['username'] && $auth->acl_get('u_chgname') && $config['allow_namechange'])) && md5($data['cur_password']) != $user->data['user_password'])					{						$error[] = 'CUR_PASSWORD_ERROR';					}					// Only check the new password against the previous password if there have been no errors					if (!sizeof($error) && $auth->acl_get('u_chgpasswd') && $data['new_password'] && md5($data['new_password']) == $user->data['user_password'])					{						$error[] = 'SAME_PASSWORD_ERROR';					}					if ($auth->acl_get('u_chgemail') && $data['email'] != $user->data['user_email'] && $data['email_confirm'] != $data['email'])					{						$error[] = 'NEW_EMAIL_ERROR';					}					if (!sizeof($error))					{						$sql_ary = array(							'username'			=> ($auth->acl_get('u_chgname') && $config['allow_namechange']) ? $data['username'] : $user->data['username'],							'username_clean'	=> ($auth->acl_get('u_chgname') && $config['allow_namechange']) ? utf8_clean_string($data['username']) : $user->data['username_clean'],							'user_email'		=> ($auth->acl_get('u_chgemail')) ? $data['email'] : $user->data['user_email'],							'user_email_hash'	=> ($auth->acl_get('u_chgemail')) ? crc32($data['email']) . strlen($data['email']) : $user->data['user_email_hash'],							'user_password'		=> ($auth->acl_get('u_chgpasswd') && $data['new_password']) ? md5($data['new_password']) : $user->data['user_password'],							'user_passchg'		=> ($auth->acl_get('u_chgpasswd') && $data['new_password']) ? time() : 0,						);						if ($auth->acl_get('u_chgname') && $config['allow_namechange'] && $data['username'] != $user->data['username'])						{							add_log('user', $user->data['user_id'], 'LOG_USER_UPDATE_NAME', $user->data['username'], $data['username']);						}						if ($auth->acl_get('u_chgpasswd') && $data['new_password'] && md5($data['new_password']) != $user->data['user_password'])						{							$user->reset_login_keys();							add_log('user', $user->data['user_id'], 'LOG_USER_NEW_PASSWORD', $data['username']);						}						if ($auth->acl_get('u_chgemail') && $data['email'] != $user->data['user_email'])						{							add_log('user', $user->data['user_id'], 'LOG_USER_UPDATE_EMAIL', $data['username'], $user->data['user_email'], $data['email']);						}						if ($config['email_enable'] && $data['email'] != $user->data['user_email'] && $user->data['user_type'] != USER_FOUNDER && ($config['require_activation'] == USER_ACTIVATION_SELF || $config['require_activation'] == USER_ACTIVATION_ADMIN))						{							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);							$messenger = new messenger(false);							$template_file = ($config['require_activation'] == USER_ACTIVATION_ADMIN) ? 'user_activate_inactive' : 'user_activate';							$messenger->template($template_file, $user->data['user_lang']);							$messenger->replyto($config['board_contact']);							$messenger->to($data['email'], $data['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(								'USERNAME'		=> htmlspecialchars_decode($data['username']),								'U_ACTIVATE'	=> "$server_url/ucp.$phpEx?mode=activate&u={$user->data['user_id']}&k=$user_actkey")							);							$messenger->send(NOTIFY_EMAIL);							if ($config['require_activation'] == USER_ACTIVATION_ADMIN)							{								// Grab an array of user_id's with a_user permissions ... these users can activate a user								$admin_ary = $auth->acl_get_list(false, 'a_user', false);								$admin_ary = (!empty($admin_ary[0]['a_user'])) ? $admin_ary[0]['a_user'] : array();								// Also include founders								$where_sql = ' WHERE user_type = ' . USER_FOUNDER;								if (sizeof($admin_ary))								{									$where_sql .= ' OR ' . $db->sql_in_set('user_id', $admin_ary);								}								$sql = 'SELECT user_id, username, user_email, user_lang, user_jabber, user_notify_type									FROM ' . USERS_TABLE . ' ' .									$where_sql;								$result = $db->sql_query($sql);								while ($row = $db->sql_fetchrow($result))								{									$messenger->template('admin_activate', $row['user_lang']);									$messenger->replyto($config['board_contact']);									$messenger->to($row['user_email'], $row['username']);									$messenger->im($row['user_jabber'], $row['username']);									$messenger->assign_vars(array(										'USERNAME'			=> htmlspecialchars_decode($data['username']),										'U_USER_DETAILS'	=> "$server_url/memberlist.$phpEx?mode=viewprofile&amp;u={$user->data['user_id']}",										'U_ACTIVATE'		=> "$server_url/ucp.$phpEx?mode=activate&u={$user->data['user_id']}&k=$user_actkey")									);									$messenger->send($row['user_notify_type']);								}								$db->sql_freeresult($result);							}							user_active_flip('deactivate', $user->data['user_id'], INACTIVE_PROFILE);							$sql_ary += array(								'user_actkey'			=> $user_actkey,							);						}						if (sizeof($sql_ary))						{							$sql = 'UPDATE ' . USERS_TABLE . '								SET ' . $db->sql_build_array('UPDATE', $sql_ary) . '								WHERE user_id = ' . $user->data['user_id'];							$db->sql_query($sql);						}						// Need to update config, forum, topic, posting, messages, etc.						if ($data['username'] != $user->data['username'] && $auth->acl_get('u_chgname') && $config['allow_namechange'])						{							user_update_name($user->data['username'], $data['username']);						}						meta_refresh(3, $this->u_action);						$message = $user->lang['PROFILE_UPDATED'] . '<br /><br />' . sprintf($user->lang['RETURN_UCP'], '<a href="' . $this->u_action . '">', '</a>');						trigger_error($message);					}						// 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');				$template->assign_vars(array(					'ERROR'				=> (sizeof($error)) ? implode('<br />', $error) : '',					'USERNAME'			=> $data['username'],					'EMAIL'				=> $data['email'],					'PASSWORD_CONFIRM'	=> $data['password_confirm'],					'NEW_PASSWORD'		=> $data['new_password'],					'CUR_PASSWORD'		=> '',					'L_USERNAME_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_FORCE_PASSWORD'	=> ($config['chg_passforce'] && $user->data['user_passchg'] < time() - $config['chg_passforce']) ? true : false,					'S_CHANGE_USERNAME' => ($config['allow_namechange'] && $auth->acl_get('u_chgname')) ? true : false,					'S_CHANGE_EMAIL'	=> ($auth->acl_get('u_chgemail')) ? true : false,					'S_CHANGE_PASSWORD'	=> ($auth->acl_get('u_chgpasswd')) ? true : false)				);			break;			case 'profile_info':				include($phpbb_root_path . 'includes/functions_profile_fields.' . $phpEx);				$cp = new custom_profile();				$cp_data = $cp_error = array();				$data = array(					'icq'			=> request_var('icq', $user->data['user_icq']),					'aim'			=> request_var('aim', $user->data['user_aim']),					'msn'			=> request_var('msn', $user->data['user_msnm']),					'yim'			=> request_var('yim', $user->data['user_yim']),					'jabber'		=> request_var('jabber', $user->data['user_jabber']),					'website'		=> request_var('website', $user->data['user_website']),					'location'		=> utf8_normalize_nfc(request_var('location', $user->data['user_from'], true)),					'occupation'	=> utf8_normalize_nfc(request_var('occupation', $user->data['user_occ'], true)),					'interests'		=> utf8_normalize_nfc(request_var('interests', $user->data['user_interests'], true)),					'bday_day'		=> 0,					'bday_month'	=> 0,					'bday_year'		=> 0,				);				if ($user->data['user_birthday'])				{					list($data['bday_day'], $data['bday_month'], $data['bday_year']) = explode('-', $user->data['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->get_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'],							'user_birthday'	=> sprintf('%2d-%2d-%4d', $data['bday_day'], $data['bday_month'], $data['bday_year']),						);						$sql = 'UPDATE ' . USERS_TABLE . '							SET ' . $db->sql_build_array('UPDATE', $sql_ary) . '							WHERE user_id = ' . $user->data['user_id'];						$db->sql_query($sql);						// Update Custom Fields						if (sizeof($cp_data))						{							$sql = 'UPDATE ' . PROFILE_FIELDS_DATA_TABLE . '								SET ' . $db->sql_build_array('UPDATE', $cp_data) . '								WHERE user_id = ' . $user->data['user_id'];							$db->sql_query($sql);							if (!$db->sql_affectedrows())

⌨️ 快捷键说明

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