Erro - ucp_register.php

Suporte à dúvidas gerais relacionadas ao phpBB.
sumoxd
Novato
Novato
Mensagens: 4
Registrado em: 20 Abr 2011, 19:50

Erro - ucp_register.php

  • Favoritar esta postagem
  • Mensagem por sumoxd »

    URL do Fórum: http://www.theinsanesforum.com


    Olá amigos!

    Bom... desde que comecei a usar o phpbb3 3.0.8, nunca tive problemas. Porém, há uns dias atrás, começou a acontecer um erro no ucp_register.php

    Código: Selecionar todos

    Parse error: syntax error, unexpected ';', expecting T_FUNCTION in /home3/theinsan/public_html/includes/ucp/ucp_register.php on line 511

    Notei que isso tem a ver com o Q&A Captcha, pois começou a acontecer após eu habilitar isso.

    Eu tenho um backup desse arquivo, porém, quando eu edito o original, qualquer tipo de captcha é desabilitado.


    Eis aqui o código php:

    Código: Selecionar todos

    <?php
    /**
    *
    * @package ucp
    * @version $Id$
    * @copyright (c) 2005 phpBB Group
    * @license http://opensource.org/licenses/gpl-license.php GNU Public License
    *
    */
    
    /**
    * @ignore
    */
    if (!defined('IN_PHPBB'))
    {
    	exit;
    }
    
    /**
    * ucp_register
    * Board registration
    * @package ucp
    */
    class ucp_register
    {
    	var $u_action;
    
    	function main($id, $mode)
    	{
    		global $config, $db, $user, $auth, $template, $phpbb_root_path, $phpEx;
    
    		//
    		if ($config['require_activation'] == USER_ACTIVATION_DISABLE)
    		{
    			trigger_error('UCP_REGISTER_DISABLE');
    		}
    
    		include($phpbb_root_path . 'includes/functions_profile_fields.' . $phpEx);
    
    		$coppa			= (isset($_REQUEST['coppa'])) ? ((!empty($_REQUEST['coppa'])) ? 1 : 0) : false;
    		$agreed			= (!empty($_POST['agreed'])) ? 1 : 0;
    		$submit			= (isset($_POST['submit'])) ? true : false;
    		$change_lang	= request_var('change_lang', '');
    		$user_lang		= request_var('lang', $user->lang_name);
    
    		if ($agreed)
    		{
    			add_form_key('ucp_register');
    		}
    		else
    		{
    			add_form_key('ucp_register_terms');
    		}
    
    		if ($change_lang || $user_lang != $config['default_lang'])
    		{
    			$use_lang = ($change_lang) ? basename($change_lang) : basename($user_lang);
    
    			if (file_exists($user->lang_path . $use_lang . '/'))
    			{
    				if ($change_lang)
    				{
    					$submit = false;
    
    					// Setting back agreed to let the user view the agreement in his/her language
    					$agreed = (empty($_GET['change_lang'])) ? 0 : $agreed;
    				}
    
    				$user->lang_name = $user_lang = $use_lang;
    				$user->lang = array();
    				$user->data['user_lang'] = $user->lang_name;
    				$user->add_lang(array('common', 'ucp'));
    			}
    			else
    			{
    				$change_lang = '';
    				$user_lang = $user->lang_name;
    			}
    		}
    
    
    		$cp = new custom_profile();
    
    		$error = $cp_data = $cp_error = array();
    
    		if (!$agreed || ($coppa === false && $config['coppa_enable']) || ($coppa && !$config['coppa_enable']))
    		{
    			$add_lang = ($change_lang) ? '&change_lang=' . urlencode($change_lang) : '';
    			$add_coppa = ($coppa !== false) ? '&coppa=' . $coppa : '';
    
    			$s_hidden_fields = array(
    				'change_lang'	=> $change_lang,
    			);
    
    			// If we change the language, we want to pass on some more possible parameter.
    			if ($change_lang)
    			{
    				// We do not include the password
    				$s_hidden_fields = array_merge($s_hidden_fields, array(
    					'username'			=> utf8_normalize_nfc(request_var('username', '', true)),
    					'email'				=> strtolower(request_var('email', '')),
    					'email_confirm'		=> strtolower(request_var('email_confirm', '')),
    					'lang'				=> $user->lang_name,
    					'tz'				=> request_var('tz', (float) $config['board_timezone']),
    				));
    
    			}
    
    			// Checking amount of available languages
    			$sql = 'SELECT lang_id
    				FROM ' . LANG_TABLE;
    			$result = $db->sql_query($sql);
    
    			$lang_row = array();
    			while ($row = $db->sql_fetchrow($result))
    			{
    				$lang_row[] = $row;
    			}
    			$db->sql_freeresult($result);
    
    			if ($coppa === false && $config['coppa_enable'])
    			{
    				$now = getdate();
    				$coppa_birthday = $user->format_date(mktime($now['hours'] + $user->data['user_dst'], $now['minutes'], $now['seconds'], $now['mon'], $now['mday'] - 1, $now['year'] - 13), $user->lang['DATE_FORMAT']);
    				unset($now);
    
    				$template->assign_vars(array(
    					'S_LANG_OPTIONS'	=> (sizeof($lang_row) > 1) ? language_select($user_lang) : '',
    					'L_COPPA_NO'		=> sprintf($user->lang['UCP_COPPA_BEFORE'], $coppa_birthday),
    					'L_COPPA_YES'		=> sprintf($user->lang['UCP_COPPA_ON_AFTER'], $coppa_birthday),
    
    					'U_COPPA_NO'		=> append_sid("{$phpbb_root_path}ucp.$phpEx", 'mode=register&coppa=0' . $add_lang),
    					'U_COPPA_YES'		=> append_sid("{$phpbb_root_path}ucp.$phpEx", 'mode=register&coppa=1' . $add_lang),
    
    					'S_SHOW_COPPA'		=> true,
    					'S_HIDDEN_FIELDS'	=> build_hidden_fields($s_hidden_fields),
    					'S_UCP_ACTION'		=> append_sid("{$phpbb_root_path}ucp.$phpEx", 'mode=register' . $add_lang),
    				));
    			}
    			else
    			{
    				$template->assign_vars(array(
    					'S_LANG_OPTIONS'	=> (sizeof($lang_row) > 1) ? language_select($user_lang) : '',
    					'L_TERMS_OF_USE'	=> sprintf($user->lang['TERMS_OF_USE_CONTENT'], $config['sitename'], generate_board_url()),
    
    					'S_SHOW_COPPA'		=> false,
    					'S_REGISTRATION'	=> true,
    					'S_HIDDEN_FIELDS'	=> build_hidden_fields($s_hidden_fields),
    					'S_UCP_ACTION'		=> append_sid("{$phpbb_root_path}ucp.$phpEx", 'mode=register' . $add_lang . $add_coppa),
    					)
    				);
    			}
    			unset($lang_row);
    
    			$this->tpl_name = 'ucp_agreement';
    			return;
    		}
    		
    		
    		// The CAPTCHA kicks in here. We can't help that the information gets lost on language change. 
    		if ($config['enable_confirm'])
    		{
    			include($phpbb_root_path . 'includes/captcha/captcha_factory.' . $phpEx);
    			$captcha =& phpbb_captcha_factory::get_instance($config['captcha_plugin']);
    			$captcha->init(CONFIRM_REG);
    		}
    
    		// Try to manually determine the timezone and adjust the dst if the server date/time complies with the default setting +/- 1
    		$timezone = date('Z') / 3600;
    		$is_dst = date('I');
    
    		if ($config['board_timezone'] == $timezone || $config['board_timezone'] == ($timezone - 1))
    		{
    			$timezone = ($is_dst) ? $timezone - 1 : $timezone;
    
    			if (!isset($user->lang['tz_zones'][(string) $timezone]))
    			{
    				$timezone = $config['board_timezone'];
    			}
    		}
    		else
    		{
    			$is_dst = $config['board_dst'];
    			$timezone = $config['board_timezone'];
    		}
    
    		$data = array(
    			'username'			=> utf8_normalize_nfc(request_var('username', '', true)),
    			'new_password'		=> request_var('new_password', '', true),
    			'password_confirm'	=> request_var('password_confirm', '', true),
    			'email'				=> strtolower(request_var('email', '')),
    			'email_confirm'		=> strtolower(request_var('email_confirm', '')),
    			'lang'				=> basename(request_var('lang', $user->lang_name)),
    			'tz'				=> request_var('tz', (float) $timezone),
    		);
    
    if ($data['tz'] == -12)
             {
                $message = $user->lang['ACCOUNT_INACTIVE'];
                $message = $message . '<br /><br />' . sprintf($user->lang['RETURN_INDEX'], '<a href="' . append_sid("{$phpbb_root_path}index.$phpEx") . '">', '</a>');
                trigger_error($message);
    
    		// Check and initialize some variables if needed
    		if ($submit)
    		{
    			$error = validate_data($data, array(
    				'username'			=> array(
    					array('string', false, $config['min_name_chars'], $config['max_name_chars']),
    					array('username', '')),
    				'new_password'		=> array(
    					array('string', false, $config['min_pass_chars'], $config['max_pass_chars']),
    					array('password')),
    				'password_confirm'	=> array('string', false, $config['min_pass_chars'], $config['max_pass_chars']),
    				'email'				=> array(
    					array('string', false, 6, 60),
    					array('email')),
    				'email_confirm'		=> array('string', false, 6, 60),
    				'tz'				=> array('num', false, -14, 14),
    				'lang'				=> array('match', false, '#^[a-z_\-]{2,}$#i'),
    			));
    
    			if (!check_form_key('ucp_register'))
    			{
    				$error[] = $user->lang['FORM_INVALID'];
    			}
    
    			// Replace "error" strings with their real, localised form
    			$error = preg_replace('#^([A-Z_]+)$#e', "(!empty(\$user->lang['\\1'])) ? \$user->lang['\\1'] : '\\1'", $error);
    
    			if ($config['enable_confirm'])
    			{
    				$vc_response = $captcha->validate($data);
    				if ($vc_response !== false)
    				{
    					$error[] = $vc_response;
    				}
    
    				if ($config['max_reg_attempts'] && $captcha->get_attempt_count() > $config['max_reg_attempts'])
    				{
    					$error[] = $user->lang['TOO_MANY_REGISTERS'];
    				}
    			}
    
    			// DNSBL check
    			if ($config['check_dnsbl'])
    			{
    				if (($dnsbl = $user->check_dnsbl('register')) !== false)
    				{
    					$error[] = sprintf($user->lang['IP_BLACKLISTED'], $user->ip, $dnsbl[1]);
    				}
    			}
    
    			// validate custom profile fields
    			$cp->submit_cp_field('register', $user->get_iso_lang_id(), $cp_data, $error);
    
    			if (!sizeof($error))
    			{
    				if ($data['new_password'] != $data['password_confirm'])
    				{
    					$error[] = $user->lang['NEW_PASSWORD_ERROR'];
    				}
    
    				if ($data['email'] != $data['email_confirm'])
    				{
    					$error[] = $user->lang['NEW_EMAIL_ERROR'];
    				}
    			}
    
    			if (!sizeof($error))
    			{
    				$server_url = generate_board_url();
    
    				// Which group by default?
    				$group_name = ($coppa) ? 'REGISTERED_COPPA' : 'REGISTERED';
    
    				$sql = 'SELECT group_id
    					FROM ' . GROUPS_TABLE . "
    					WHERE group_name = '" . $db->sql_escape($group_name) . "'
    						AND group_type = " . GROUP_SPECIAL;
    				$result = $db->sql_query($sql);
    				$row = $db->sql_fetchrow($result);
    				$db->sql_freeresult($result);
    
    				if (!$row)
    				{
    					trigger_error('NO_GROUP');
    				}
    
    				$group_id = $row['group_id'];
    
    				if (($coppa ||
    					$config['require_activation'] == USER_ACTIVATION_SELF ||
    					$config['require_activation'] == USER_ACTIVATION_ADMIN) && $config['email_enable'])
    				{
    					$user_actkey = gen_rand_string(mt_rand(6, 10));
    					$user_type = USER_INACTIVE;
    					$user_inactive_reason = INACTIVE_REGISTER;
    					$user_inactive_time = time();
    				}
    				else
    				{
    					$user_type = USER_NORMAL;
    					$user_actkey = '';
    					$user_inactive_reason = 0;
    					$user_inactive_time = 0;
    				}
    
    				$user_row = array(
    					'username'				=> $data['username'],
    					'user_password'			=> phpbb_hash($data['new_password']),
    					'user_email'			=> $data['email'],
    					'group_id'				=> (int) $group_id,
    					'user_timezone'			=> (float) $data['tz'],
    					'user_dst'				=> $is_dst,
    					'user_lang'				=> $data['lang'],
    					'user_type'				=> $user_type,
    					'user_actkey'			=> $user_actkey,
    					'user_ip'				=> $user->ip,
    					'user_regdate'			=> time(),
    					'user_inactive_reason'	=> $user_inactive_reason,
    					'user_inactive_time'	=> $user_inactive_time,
    				);
    
    				if ($config['new_member_post_limit'])
    				{
    					$user_row['user_new'] = 1;
    				}
    
    				// Register user...
    				$user_id = user_add($user_row, $cp_data);
    
    				// This should not happen, because the required variables are listed above...
    				if ($user_id === false)
    				{
    					trigger_error('NO_USER', E_USER_ERROR);
    				}
    
    				// Okay, captcha, your job is done.
    				if ($config['enable_confirm'] && isset($captcha))
    				{
    					$captcha->reset();
    				}
    
    				if ($coppa && $config['email_enable'])
    				{
    					$message = $user->lang['ACCOUNT_COPPA'];
    					$email_template = 'coppa_welcome_inactive';
    				}
    				else if ($config['require_activation'] == USER_ACTIVATION_SELF && $config['email_enable'])
    				{
    					$message = $user->lang['ACCOUNT_INACTIVE'];
    					$email_template = 'user_welcome_inactive';
    				}
    				else if ($config['require_activation'] == USER_ACTIVATION_ADMIN && $config['email_enable'])
    				{
    					$message = $user->lang['ACCOUNT_INACTIVE_ADMIN'];
    					$email_template = 'admin_welcome_inactive';
    				}
    				else
    				{
    					$message = $user->lang['ACCOUNT_ADDED'];
    					$email_template = 'user_welcome';
    				}
    
    				if ($config['email_enable'])
    				{
    					include_once($phpbb_root_path . 'includes/functions_messenger.' . $phpEx);
    
    					$messenger = new messenger(false);
    
    					$messenger->template($email_template, $data['lang']);
    
    					$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(
    						'WELCOME_MSG'	=> htmlspecialchars_decode(sprintf($user->lang['WELCOME_SUBJECT'], $config['sitename'])),
    						'USERNAME'		=> htmlspecialchars_decode($data['username']),
    						'PASSWORD'		=> htmlspecialchars_decode($data['new_password']),
    						'U_ACTIVATE'	=> "$server_url/ucp.$phpEx?mode=activate&u=$user_id&k=$user_actkey")
    					);
    
    					if ($coppa)
    					{
    						$messenger->assign_vars(array(
    							'FAX_INFO'		=> $config['coppa_fax'],
    							'MAIL_INFO'		=> $config['coppa_mail'],
    							'EMAIL_ADDRESS'	=> $data['email'])
    						);
    					}
    
    					$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->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&u=$user_id",
    								'U_ACTIVATE'		=> "$server_url/ucp.$phpEx?mode=activate&u=$user_id&k=$user_actkey")
    							);
    
    							$messenger->send($row['user_notify_type']);
    						}
    						$db->sql_freeresult($result);
    					}
    				}
    
    				$message = $message . '<br /><br />' . sprintf($user->lang['RETURN_INDEX'], '<a href="' . append_sid("{$phpbb_root_path}index.$phpEx") . '">', '</a>');
    				trigger_error($message);
    			}
    		}
    
    		$s_hidden_fields = array(
    			'agreed'		=> 'true',
    			'change_lang'	=> 0,
    		);
    
    		if ($config['coppa_enable'])
    		{
    			$s_hidden_fields['coppa'] = $coppa;
    		}
    
    		if ($config['enable_confirm'])
    		{
    			$s_hidden_fields = array_merge($s_hidden_fields, $captcha->get_hidden_fields());
    		}
    		$s_hidden_fields = build_hidden_fields($s_hidden_fields);
    		$confirm_image = '';
    
    		// Visual Confirmation - Show images
    		if ($config['enable_confirm'])
    		{
    			$template->assign_vars(array(
    				'CAPTCHA_TEMPLATE'		=> $captcha->get_template(),
    			));
    		}
    
    		//
    		$l_reg_cond = '';
    		switch ($config['require_activation'])
    		{
    			case USER_ACTIVATION_SELF:
    				$l_reg_cond = $user->lang['UCP_EMAIL_ACTIVATE'];
    			break;
    
    			case USER_ACTIVATION_ADMIN:
    				$l_reg_cond = $user->lang['UCP_ADMIN_ACTIVATE'];
    			break;
    		}
    
    		$template->assign_vars(array(
    			'ERROR'				=> (sizeof($error)) ? implode('<br />', $error) : '',
    			'USERNAME'			=> $data['username'],
    			'PASSWORD'			=> $data['new_password'],
    			'PASSWORD_CONFIRM'	=> $data['password_confirm'],
    			'EMAIL'				=> $data['email'],
    			'EMAIL_CONFIRM'		=> $data['email_confirm'],
    
    			'L_REG_COND'				=> $l_reg_cond,
    			'L_USERNAME_EXPLAIN'		=> sprintf($user->lang[$config['allow_name_chars'] . '_EXPLAIN'], $config['min_name_chars'], $config['max_name_chars']),
    			'L_PASSWORD_EXPLAIN'		=> sprintf($user->lang[$config['pass_complex'] . '_EXPLAIN'], $config['min_pass_chars'], $config['max_pass_chars']),
    
    			'S_LANG_OPTIONS'	=> language_select($data['lang']),
    			'S_TZ_OPTIONS'		=> tz_select($data['tz']),
    			'S_CONFIRM_REFRESH'	=> ($config['enable_confirm'] && $config['confirm_refresh']) ? true : false,
    			'S_REGISTRATION'	=> true,
    			'S_COPPA'			=> $coppa,
    			'S_HIDDEN_FIELDS'	=> $s_hidden_fields,
    			'S_UCP_ACTION'		=> append_sid("{$phpbb_root_path}ucp.$phpEx", 'mode=register'),
    		));
    
    		//
    		$user->profile_fields = array();
    
    		// Generate profile fields -> Template Block Variable profile_fields
    		$cp->generate_profile_fields('register', $user->get_iso_lang_id());
    
    		//
    		$this->tpl_name = 'ucp_register';
    		$this->page_title = 'UCP_REGISTRATION';
    	}
    }
    
    ?>;
    Se há alguma solução rápida, alguém pode me ajudar? Sou totalmente leigo no assunto, e até tentei buscar algo via google, mas encontrei nada concreto que podia resolver algo.


    Grato pela atenção.


    sUmOxD - Admin - The Insanes Clan Forum
    Editado pela última vez por _Vinny_ em 20 Abr 2011, 21:22, em um total de 1 vez.
    Razão: Adicionar tag [code]
    Avatar do usuário
    _Vinny_
    Administrador
    Administrador
    Mensagens: 6023
    Registrado em: 03 Set 2009, 21:59
    Contato:
    LendaMSG 1500+Avatar

    Re: Erro - ucp_register.php

  • Favoritar esta postagem
  • Mensagem por _Vinny_ »

    Possui alguma modificação instalada? O seu phpBB 3.0.8 é uma instalação limpa ou atualizada de uma versão anterior?
    Tradução Português Brasileiro: https://www.phpbb.com/customise/db/translation/brazilian_portuguese/

    Precisa de serviços phpBB? Me mande um mensagem privada ou visite https://vinny.quest
    sumoxd
    Novato
    Novato
    Mensagens: 4
    Registrado em: 20 Abr 2011, 19:50

    Re: Erro - ucp_register.php

  • Favoritar esta postagem
  • Mensagem por sumoxd »

    Olá!

    Esta sem mods, e atualizei da versao anterior. :(
    gssilva
    Membro Avançado
    Membro Avançado
    Mensagens: 1109
    Registrado em: 27 Jul 2010, 19:40
    Nome Real: Guilherme Silva
    Localização: Araraquara - SP
    Contato:
    MSG 1000+

    Re: Erro - ucp_register.php

  • Favoritar esta postagem
  • Mensagem por gssilva »

    Você só atualizou o banco de dados ou também trocou os arquivos do fórum?
    Avatar do usuário
    _Vinny_
    Administrador
    Administrador
    Mensagens: 6023
    Registrado em: 03 Set 2009, 21:59
    Contato:
    LendaMSG 1500+Avatar

    Re: Erro - ucp_register.php

  • Favoritar esta postagem
  • Mensagem por _Vinny_ »

    Substitua o seu arquivo atual com:

    Código: Selecionar todos

    <?php
    /**
    *
    * @package ucp
    * @version $Id$
    * @copyright (c) 2005 phpBB Group
    * @license http://opensource.org/licenses/gpl-license.php GNU Public License
    *
    */
    
    /**
    * @ignore
    */
    if (!defined('IN_PHPBB'))
    {
    	exit;
    }
    
    /**
    * ucp_register
    * Board registration
    * @package ucp
    */
    class ucp_register
    {
    	var $u_action;
    
    	function main($id, $mode)
    	{
    		global $config, $db, $user, $auth, $template, $phpbb_root_path, $phpEx;
    
    		//
    		if ($config['require_activation'] == USER_ACTIVATION_DISABLE)
    		{
    			trigger_error('UCP_REGISTER_DISABLE');
    		}
    
    		include($phpbb_root_path . 'includes/functions_profile_fields.' . $phpEx);
    
    		$coppa			= (isset($_REQUEST['coppa'])) ? ((!empty($_REQUEST['coppa'])) ? 1 : 0) : false;
    		$agreed			= (!empty($_POST['agreed'])) ? 1 : 0;
    		$submit			= (isset($_POST['submit'])) ? true : false;
    		$change_lang	= request_var('change_lang', '');
    		$user_lang		= request_var('lang', $user->lang_name);
    
    		if ($agreed)
    		{
    			add_form_key('ucp_register');
    		}
    		else
    		{
    			add_form_key('ucp_register_terms');
    		}
    
    		if ($change_lang || $user_lang != $config['default_lang'])
    		{
    			$use_lang = ($change_lang) ? basename($change_lang) : basename($user_lang);
    
    			if (file_exists($user->lang_path . $use_lang . '/'))
    			{
    				if ($change_lang)
    				{
    					$submit = false;
    
    					// Setting back agreed to let the user view the agreement in his/her language
    					$agreed = (empty($_GET['change_lang'])) ? 0 : $agreed;
    				}
    
    				$user->lang_name = $user_lang = $use_lang;
    				$user->lang = array();
    				$user->data['user_lang'] = $user->lang_name;
    				$user->add_lang(array('common', 'ucp'));
    			}
    			else
    			{
    				$change_lang = '';
    				$user_lang = $user->lang_name;
    			}
    		}
    
    
    		$cp = new custom_profile();
    
    		$error = $cp_data = $cp_error = array();
    
    		if (!$agreed || ($coppa === false && $config['coppa_enable']) || ($coppa && !$config['coppa_enable']))
    		{
    			$add_lang = ($change_lang) ? '&change_lang=' . urlencode($change_lang) : '';
    			$add_coppa = ($coppa !== false) ? '&coppa=' . $coppa : '';
    
    			$s_hidden_fields = array(
    				'change_lang'	=> $change_lang,
    			);
    
    			// If we change the language, we want to pass on some more possible parameter.
    			if ($change_lang)
    			{
    				// We do not include the password
    				$s_hidden_fields = array_merge($s_hidden_fields, array(
    					'username'			=> utf8_normalize_nfc(request_var('username', '', true)),
    					'email'				=> strtolower(request_var('email', '')),
    					'email_confirm'		=> strtolower(request_var('email_confirm', '')),
    					'lang'				=> $user->lang_name,
    					'tz'				=> request_var('tz', (float) $config['board_timezone']),
    				));
    
    			}
    
    			// Checking amount of available languages
    			$sql = 'SELECT lang_id
    				FROM ' . LANG_TABLE;
    			$result = $db->sql_query($sql);
    
    			$lang_row = array();
    			while ($row = $db->sql_fetchrow($result))
    			{
    				$lang_row[] = $row;
    			}
    			$db->sql_freeresult($result);
    
    			if ($coppa === false && $config['coppa_enable'])
    			{
    				$now = getdate();
    				$coppa_birthday = $user->format_date(mktime($now['hours'] + $user->data['user_dst'], $now['minutes'], $now['seconds'], $now['mon'], $now['mday'] - 1, $now['year'] - 13), $user->lang['DATE_FORMAT']);
    				unset($now);
    
    				$template->assign_vars(array(
    					'S_LANG_OPTIONS'	=> (sizeof($lang_row) > 1) ? language_select($user_lang) : '',
    					'L_COPPA_NO'		=> sprintf($user->lang['UCP_COPPA_BEFORE'], $coppa_birthday),
    					'L_COPPA_YES'		=> sprintf($user->lang['UCP_COPPA_ON_AFTER'], $coppa_birthday),
    
    					'U_COPPA_NO'		=> append_sid("{$phpbb_root_path}ucp.$phpEx", 'mode=register&coppa=0' . $add_lang),
    					'U_COPPA_YES'		=> append_sid("{$phpbb_root_path}ucp.$phpEx", 'mode=register&coppa=1' . $add_lang),
    
    					'S_SHOW_COPPA'		=> true,
    					'S_HIDDEN_FIELDS'	=> build_hidden_fields($s_hidden_fields),
    					'S_UCP_ACTION'		=> append_sid("{$phpbb_root_path}ucp.$phpEx", 'mode=register' . $add_lang),
    				));
    			}
    			else
    			{
    				$template->assign_vars(array(
    					'S_LANG_OPTIONS'	=> (sizeof($lang_row) > 1) ? language_select($user_lang) : '',
    					'L_TERMS_OF_USE'	=> sprintf($user->lang['TERMS_OF_USE_CONTENT'], $config['sitename'], generate_board_url()),
    
    					'S_SHOW_COPPA'		=> false,
    					'S_REGISTRATION'	=> true,
    					'S_HIDDEN_FIELDS'	=> build_hidden_fields($s_hidden_fields),
    					'S_UCP_ACTION'		=> append_sid("{$phpbb_root_path}ucp.$phpEx", 'mode=register' . $add_lang . $add_coppa),
    					)
    				);
    			}
    			unset($lang_row);
    
    			$this->tpl_name = 'ucp_agreement';
    			return;
    		}
    		
    		
    		// The CAPTCHA kicks in here. We can't help that the information gets lost on language change. 
    		if ($config['enable_confirm'])
    		{
    			include($phpbb_root_path . 'includes/captcha/captcha_factory.' . $phpEx);
    			$captcha =& phpbb_captcha_factory::get_instance($config['captcha_plugin']);
    			$captcha->init(CONFIRM_REG);
    		}
    
    		// Try to manually determine the timezone and adjust the dst if the server date/time complies with the default setting +/- 1
    		$timezone = date('Z') / 3600;
    		$is_dst = date('I');
    
    		if ($config['board_timezone'] == $timezone || $config['board_timezone'] == ($timezone - 1))
    		{
    			$timezone = ($is_dst) ? $timezone - 1 : $timezone;
    
    			if (!isset($user->lang['tz_zones'][(string) $timezone]))
    			{
    				$timezone = $config['board_timezone'];
    			}
    		}
    		else
    		{
    			$is_dst = $config['board_dst'];
    			$timezone = $config['board_timezone'];
    		}
    
    		$data = array(
    			'username'			=> utf8_normalize_nfc(request_var('username', '', true)),
    			'new_password'		=> request_var('new_password', '', true),
    			'password_confirm'	=> request_var('password_confirm', '', true),
    			'email'				=> strtolower(request_var('email', '')),
    			'email_confirm'		=> strtolower(request_var('email_confirm', '')),
    			'lang'				=> basename(request_var('lang', $user->lang_name)),
    			'tz'				=> request_var('tz', (float) $timezone),
    		);
    
    		// Check and initialize some variables if needed
    		if ($submit)
    		{
    			$error = validate_data($data, array(
    				'username'			=> array(
    					array('string', false, $config['min_name_chars'], $config['max_name_chars']),
    					array('username', '')),
    				'new_password'		=> array(
    					array('string', false, $config['min_pass_chars'], $config['max_pass_chars']),
    					array('password')),
    				'password_confirm'	=> array('string', false, $config['min_pass_chars'], $config['max_pass_chars']),
    				'email'				=> array(
    					array('string', false, 6, 60),
    					array('email')),
    				'email_confirm'		=> array('string', false, 6, 60),
    				'tz'				=> array('num', false, -14, 14),
    				'lang'				=> array('match', false, '#^[a-z_\-]{2,}$#i'),
    			));
    
    			if (!check_form_key('ucp_register'))
    			{
    				$error[] = $user->lang['FORM_INVALID'];
    			}
    
    			// Replace "error" strings with their real, localised form
    			$error = preg_replace('#^([A-Z_]+)$#e', "(!empty(\$user->lang['\\1'])) ? \$user->lang['\\1'] : '\\1'", $error);
    
    			if ($config['enable_confirm'])
    			{
    				$vc_response = $captcha->validate($data);
    				if ($vc_response !== false)
    				{
    					$error[] = $vc_response;
    				}
    
    				if ($config['max_reg_attempts'] && $captcha->get_attempt_count() > $config['max_reg_attempts'])
    				{
    					$error[] = $user->lang['TOO_MANY_REGISTERS'];
    				}
    			}
    
    			// DNSBL check
    			if ($config['check_dnsbl'])
    			{
    				if (($dnsbl = $user->check_dnsbl('register')) !== false)
    				{
    					$error[] = sprintf($user->lang['IP_BLACKLISTED'], $user->ip, $dnsbl[1]);
    				}
    			}
    
    			// validate custom profile fields
    			$cp->submit_cp_field('register', $user->get_iso_lang_id(), $cp_data, $error);
    
    			if (!sizeof($error))
    			{
    				if ($data['new_password'] != $data['password_confirm'])
    				{
    					$error[] = $user->lang['NEW_PASSWORD_ERROR'];
    				}
    
    				if ($data['email'] != $data['email_confirm'])
    				{
    					$error[] = $user->lang['NEW_EMAIL_ERROR'];
    				}
    			}
    
    			if (!sizeof($error))
    			{
    				$server_url = generate_board_url();
    
    				// Which group by default?
    				$group_name = ($coppa) ? 'REGISTERED_COPPA' : 'REGISTERED';
    
    				$sql = 'SELECT group_id
    					FROM ' . GROUPS_TABLE . "
    					WHERE group_name = '" . $db->sql_escape($group_name) . "'
    						AND group_type = " . GROUP_SPECIAL;
    				$result = $db->sql_query($sql);
    				$row = $db->sql_fetchrow($result);
    				$db->sql_freeresult($result);
    
    				if (!$row)
    				{
    					trigger_error('NO_GROUP');
    				}
    
    				$group_id = $row['group_id'];
    
    				if (($coppa ||
    					$config['require_activation'] == USER_ACTIVATION_SELF ||
    					$config['require_activation'] == USER_ACTIVATION_ADMIN) && $config['email_enable'])
    				{
    					$user_actkey = gen_rand_string(mt_rand(6, 10));
    					$user_type = USER_INACTIVE;
    					$user_inactive_reason = INACTIVE_REGISTER;
    					$user_inactive_time = time();
    				}
    				else
    				{
    					$user_type = USER_NORMAL;
    					$user_actkey = '';
    					$user_inactive_reason = 0;
    					$user_inactive_time = 0;
    				}
    
    				$user_row = array(
    					'username'				=> $data['username'],
    					'user_password'			=> phpbb_hash($data['new_password']),
    					'user_email'			=> $data['email'],
    					'group_id'				=> (int) $group_id,
    					'user_timezone'			=> (float) $data['tz'],
    					'user_dst'				=> $is_dst,
    					'user_lang'				=> $data['lang'],
    					'user_type'				=> $user_type,
    					'user_actkey'			=> $user_actkey,
    					'user_ip'				=> $user->ip,
    					'user_regdate'			=> time(),
    					'user_inactive_reason'	=> $user_inactive_reason,
    					'user_inactive_time'	=> $user_inactive_time,
    				);
    
    				if ($config['new_member_post_limit'])
    				{
    					$user_row['user_new'] = 1;
    				}
    
    				// Register user...
    				$user_id = user_add($user_row, $cp_data);
    
    				// This should not happen, because the required variables are listed above...
    				if ($user_id === false)
    				{
    					trigger_error('NO_USER', E_USER_ERROR);
    				}
    
    				// Okay, captcha, your job is done.
    				if ($config['enable_confirm'] && isset($captcha))
    				{
    					$captcha->reset();
    				}
    
    				if ($coppa && $config['email_enable'])
    				{
    					$message = $user->lang['ACCOUNT_COPPA'];
    					$email_template = 'coppa_welcome_inactive';
    				}
    				else if ($config['require_activation'] == USER_ACTIVATION_SELF && $config['email_enable'])
    				{
    					$message = $user->lang['ACCOUNT_INACTIVE'];
    					$email_template = 'user_welcome_inactive';
    				}
    				else if ($config['require_activation'] == USER_ACTIVATION_ADMIN && $config['email_enable'])
    				{
    					$message = $user->lang['ACCOUNT_INACTIVE_ADMIN'];
    					$email_template = 'admin_welcome_inactive';
    				}
    				else
    				{
    					$message = $user->lang['ACCOUNT_ADDED'];
    					$email_template = 'user_welcome';
    				}
    
    				if ($config['email_enable'])
    				{
    					include_once($phpbb_root_path . 'includes/functions_messenger.' . $phpEx);
    
    					$messenger = new messenger(false);
    
    					$messenger->template($email_template, $data['lang']);
    
    					$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(
    						'WELCOME_MSG'	=> htmlspecialchars_decode(sprintf($user->lang['WELCOME_SUBJECT'], $config['sitename'])),
    						'USERNAME'		=> htmlspecialchars_decode($data['username']),
    						'PASSWORD'		=> htmlspecialchars_decode($data['new_password']),
    						'U_ACTIVATE'	=> "$server_url/ucp.$phpEx?mode=activate&u=$user_id&k=$user_actkey")
    					);
    
    					if ($coppa)
    					{
    						$messenger->assign_vars(array(
    							'FAX_INFO'		=> $config['coppa_fax'],
    							'MAIL_INFO'		=> $config['coppa_mail'],
    							'EMAIL_ADDRESS'	=> $data['email'])
    						);
    					}
    
    					$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->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&u=$user_id",
    								'U_ACTIVATE'		=> "$server_url/ucp.$phpEx?mode=activate&u=$user_id&k=$user_actkey")
    							);
    
    							$messenger->send($row['user_notify_type']);
    						}
    						$db->sql_freeresult($result);
    					}
    				}
    
    				$message = $message . '<br /><br />' . sprintf($user->lang['RETURN_INDEX'], '<a href="' . append_sid("{$phpbb_root_path}index.$phpEx") . '">', '</a>');
    				trigger_error($message);
    			}
    		}
    
    		$s_hidden_fields = array(
    			'agreed'		=> 'true',
    			'change_lang'	=> 0,
    		);
    
    		if ($config['coppa_enable'])
    		{
    			$s_hidden_fields['coppa'] = $coppa;
    		}
    
    		if ($config['enable_confirm'])
    		{
    			$s_hidden_fields = array_merge($s_hidden_fields, $captcha->get_hidden_fields());
    		}
    		$s_hidden_fields = build_hidden_fields($s_hidden_fields);
    		$confirm_image = '';
    
    		// Visual Confirmation - Show images
    		if ($config['enable_confirm'])
    		{
    			$template->assign_vars(array(
    				'CAPTCHA_TEMPLATE'		=> $captcha->get_template(),
    			));
    		}
    
    		//
    		$l_reg_cond = '';
    		switch ($config['require_activation'])
    		{
    			case USER_ACTIVATION_SELF:
    				$l_reg_cond = $user->lang['UCP_EMAIL_ACTIVATE'];
    			break;
    
    			case USER_ACTIVATION_ADMIN:
    				$l_reg_cond = $user->lang['UCP_ADMIN_ACTIVATE'];
    			break;
    		}
    
    		$template->assign_vars(array(
    			'ERROR'				=> (sizeof($error)) ? implode('<br />', $error) : '',
    			'USERNAME'			=> $data['username'],
    			'PASSWORD'			=> $data['new_password'],
    			'PASSWORD_CONFIRM'	=> $data['password_confirm'],
    			'EMAIL'				=> $data['email'],
    			'EMAIL_CONFIRM'		=> $data['email_confirm'],
    
    			'L_REG_COND'				=> $l_reg_cond,
    			'L_USERNAME_EXPLAIN'		=> sprintf($user->lang[$config['allow_name_chars'] . '_EXPLAIN'], $config['min_name_chars'], $config['max_name_chars']),
    			'L_PASSWORD_EXPLAIN'		=> sprintf($user->lang[$config['pass_complex'] . '_EXPLAIN'], $config['min_pass_chars'], $config['max_pass_chars']),
    
    			'S_LANG_OPTIONS'	=> language_select($data['lang']),
    			'S_TZ_OPTIONS'		=> tz_select($data['tz']),
    			'S_CONFIRM_REFRESH'	=> ($config['enable_confirm'] && $config['confirm_refresh']) ? true : false,
    			'S_REGISTRATION'	=> true,
    			'S_COPPA'			=> $coppa,
    			'S_HIDDEN_FIELDS'	=> $s_hidden_fields,
    			'S_UCP_ACTION'		=> append_sid("{$phpbb_root_path}ucp.$phpEx", 'mode=register'),
    		));
    
    		//
    		$user->profile_fields = array();
    
    		// Generate profile fields -> Template Block Variable profile_fields
    		$cp->generate_profile_fields('register', $user->get_iso_lang_id());
    
    		//
    		$this->tpl_name = 'ucp_register';
    		$this->page_title = 'UCP_REGISTRATION';
    	}
    }
    
    ?>
    Esse código acima é do phpBB 3.0.8 versão original.
    Tradução Português Brasileiro: https://www.phpbb.com/customise/db/translation/brazilian_portuguese/

    Precisa de serviços phpBB? Me mande um mensagem privada ou visite https://vinny.quest
    sumoxd
    Novato
    Novato
    Mensagens: 4
    Registrado em: 20 Abr 2011, 19:50

    Re: Erro - ucp_register.php

  • Favoritar esta postagem
  • Mensagem por sumoxd »

    _Vinny_ escreveu:Substitua o seu arquivo atual com:

    Código: Selecionar todos

    <?php
    /**
    *
    * @package ucp
    * @version $Id$
    * @copyright (c) 2005 phpBB Group
    * @license http://opensource.org/licenses/gpl-license.php GNU Public License
    *
    */
    
    /**
    * @ignore
    */
    if (!defined('IN_PHPBB'))
    {
    	exit;
    }
    
    /**
    * ucp_register
    * Board registration
    * @package ucp
    */
    class ucp_register
    {
    	var $u_action;
    
    	function main($id, $mode)
    	{
    		global $config, $db, $user, $auth, $template, $phpbb_root_path, $phpEx;
    
    		//
    		if ($config['require_activation'] == USER_ACTIVATION_DISABLE)
    		{
    			trigger_error('UCP_REGISTER_DISABLE');
    		}
    
    		include($phpbb_root_path . 'includes/functions_profile_fields.' . $phpEx);
    
    		$coppa			= (isset($_REQUEST['coppa'])) ? ((!empty($_REQUEST['coppa'])) ? 1 : 0) : false;
    		$agreed			= (!empty($_POST['agreed'])) ? 1 : 0;
    		$submit			= (isset($_POST['submit'])) ? true : false;
    		$change_lang	= request_var('change_lang', '');
    		$user_lang		= request_var('lang', $user->lang_name);
    
    		if ($agreed)
    		{
    			add_form_key('ucp_register');
    		}
    		else
    		{
    			add_form_key('ucp_register_terms');
    		}
    
    		if ($change_lang || $user_lang != $config['default_lang'])
    		{
    			$use_lang = ($change_lang) ? basename($change_lang) : basename($user_lang);
    
    			if (file_exists($user->lang_path . $use_lang . '/'))
    			{
    				if ($change_lang)
    				{
    					$submit = false;
    
    					// Setting back agreed to let the user view the agreement in his/her language
    					$agreed = (empty($_GET['change_lang'])) ? 0 : $agreed;
    				}
    
    				$user->lang_name = $user_lang = $use_lang;
    				$user->lang = array();
    				$user->data['user_lang'] = $user->lang_name;
    				$user->add_lang(array('common', 'ucp'));
    			}
    			else
    			{
    				$change_lang = '';
    				$user_lang = $user->lang_name;
    			}
    		}
    
    
    		$cp = new custom_profile();
    
    		$error = $cp_data = $cp_error = array();
    
    		if (!$agreed || ($coppa === false && $config['coppa_enable']) || ($coppa && !$config['coppa_enable']))
    		{
    			$add_lang = ($change_lang) ? '&change_lang=' . urlencode($change_lang) : '';
    			$add_coppa = ($coppa !== false) ? '&coppa=' . $coppa : '';
    
    			$s_hidden_fields = array(
    				'change_lang'	=> $change_lang,
    			);
    
    			// If we change the language, we want to pass on some more possible parameter.
    			if ($change_lang)
    			{
    				// We do not include the password
    				$s_hidden_fields = array_merge($s_hidden_fields, array(
    					'username'			=> utf8_normalize_nfc(request_var('username', '', true)),
    					'email'				=> strtolower(request_var('email', '')),
    					'email_confirm'		=> strtolower(request_var('email_confirm', '')),
    					'lang'				=> $user->lang_name,
    					'tz'				=> request_var('tz', (float) $config['board_timezone']),
    				));
    
    			}
    
    			// Checking amount of available languages
    			$sql = 'SELECT lang_id
    				FROM ' . LANG_TABLE;
    			$result = $db->sql_query($sql);
    
    			$lang_row = array();
    			while ($row = $db->sql_fetchrow($result))
    			{
    				$lang_row[] = $row;
    			}
    			$db->sql_freeresult($result);
    
    			if ($coppa === false && $config['coppa_enable'])
    			{
    				$now = getdate();
    				$coppa_birthday = $user->format_date(mktime($now['hours'] + $user->data['user_dst'], $now['minutes'], $now['seconds'], $now['mon'], $now['mday'] - 1, $now['year'] - 13), $user->lang['DATE_FORMAT']);
    				unset($now);
    
    				$template->assign_vars(array(
    					'S_LANG_OPTIONS'	=> (sizeof($lang_row) > 1) ? language_select($user_lang) : '',
    					'L_COPPA_NO'		=> sprintf($user->lang['UCP_COPPA_BEFORE'], $coppa_birthday),
    					'L_COPPA_YES'		=> sprintf($user->lang['UCP_COPPA_ON_AFTER'], $coppa_birthday),
    
    					'U_COPPA_NO'		=> append_sid("{$phpbb_root_path}ucp.$phpEx", 'mode=register&coppa=0' . $add_lang),
    					'U_COPPA_YES'		=> append_sid("{$phpbb_root_path}ucp.$phpEx", 'mode=register&coppa=1' . $add_lang),
    
    					'S_SHOW_COPPA'		=> true,
    					'S_HIDDEN_FIELDS'	=> build_hidden_fields($s_hidden_fields),
    					'S_UCP_ACTION'		=> append_sid("{$phpbb_root_path}ucp.$phpEx", 'mode=register' . $add_lang),
    				));
    			}
    			else
    			{
    				$template->assign_vars(array(
    					'S_LANG_OPTIONS'	=> (sizeof($lang_row) > 1) ? language_select($user_lang) : '',
    					'L_TERMS_OF_USE'	=> sprintf($user->lang['TERMS_OF_USE_CONTENT'], $config['sitename'], generate_board_url()),
    
    					'S_SHOW_COPPA'		=> false,
    					'S_REGISTRATION'	=> true,
    					'S_HIDDEN_FIELDS'	=> build_hidden_fields($s_hidden_fields),
    					'S_UCP_ACTION'		=> append_sid("{$phpbb_root_path}ucp.$phpEx", 'mode=register' . $add_lang . $add_coppa),
    					)
    				);
    			}
    			unset($lang_row);
    
    			$this->tpl_name = 'ucp_agreement';
    			return;
    		}
    		
    		
    		// The CAPTCHA kicks in here. We can't help that the information gets lost on language change. 
    		if ($config['enable_confirm'])
    		{
    			include($phpbb_root_path . 'includes/captcha/captcha_factory.' . $phpEx);
    			$captcha =& phpbb_captcha_factory::get_instance($config['captcha_plugin']);
    			$captcha->init(CONFIRM_REG);
    		}
    
    		// Try to manually determine the timezone and adjust the dst if the server date/time complies with the default setting +/- 1
    		$timezone = date('Z') / 3600;
    		$is_dst = date('I');
    
    		if ($config['board_timezone'] == $timezone || $config['board_timezone'] == ($timezone - 1))
    		{
    			$timezone = ($is_dst) ? $timezone - 1 : $timezone;
    
    			if (!isset($user->lang['tz_zones'][(string) $timezone]))
    			{
    				$timezone = $config['board_timezone'];
    			}
    		}
    		else
    		{
    			$is_dst = $config['board_dst'];
    			$timezone = $config['board_timezone'];
    		}
    
    		$data = array(
    			'username'			=> utf8_normalize_nfc(request_var('username', '', true)),
    			'new_password'		=> request_var('new_password', '', true),
    			'password_confirm'	=> request_var('password_confirm', '', true),
    			'email'				=> strtolower(request_var('email', '')),
    			'email_confirm'		=> strtolower(request_var('email_confirm', '')),
    			'lang'				=> basename(request_var('lang', $user->lang_name)),
    			'tz'				=> request_var('tz', (float) $timezone),
    		);
    
    		// Check and initialize some variables if needed
    		if ($submit)
    		{
    			$error = validate_data($data, array(
    				'username'			=> array(
    					array('string', false, $config['min_name_chars'], $config['max_name_chars']),
    					array('username', '')),
    				'new_password'		=> array(
    					array('string', false, $config['min_pass_chars'], $config['max_pass_chars']),
    					array('password')),
    				'password_confirm'	=> array('string', false, $config['min_pass_chars'], $config['max_pass_chars']),
    				'email'				=> array(
    					array('string', false, 6, 60),
    					array('email')),
    				'email_confirm'		=> array('string', false, 6, 60),
    				'tz'				=> array('num', false, -14, 14),
    				'lang'				=> array('match', false, '#^[a-z_\-]{2,}$#i'),
    			));
    
    			if (!check_form_key('ucp_register'))
    			{
    				$error[] = $user->lang['FORM_INVALID'];
    			}
    
    			// Replace "error" strings with their real, localised form
    			$error = preg_replace('#^([A-Z_]+)$#e', "(!empty(\$user->lang['\\1'])) ? \$user->lang['\\1'] : '\\1'", $error);
    
    			if ($config['enable_confirm'])
    			{
    				$vc_response = $captcha->validate($data);
    				if ($vc_response !== false)
    				{
    					$error[] = $vc_response;
    				}
    
    				if ($config['max_reg_attempts'] && $captcha->get_attempt_count() > $config['max_reg_attempts'])
    				{
    					$error[] = $user->lang['TOO_MANY_REGISTERS'];
    				}
    			}
    
    			// DNSBL check
    			if ($config['check_dnsbl'])
    			{
    				if (($dnsbl = $user->check_dnsbl('register')) !== false)
    				{
    					$error[] = sprintf($user->lang['IP_BLACKLISTED'], $user->ip, $dnsbl[1]);
    				}
    			}
    
    			// validate custom profile fields
    			$cp->submit_cp_field('register', $user->get_iso_lang_id(), $cp_data, $error);
    
    			if (!sizeof($error))
    			{
    				if ($data['new_password'] != $data['password_confirm'])
    				{
    					$error[] = $user->lang['NEW_PASSWORD_ERROR'];
    				}
    
    				if ($data['email'] != $data['email_confirm'])
    				{
    					$error[] = $user->lang['NEW_EMAIL_ERROR'];
    				}
    			}
    
    			if (!sizeof($error))
    			{
    				$server_url = generate_board_url();
    
    				// Which group by default?
    				$group_name = ($coppa) ? 'REGISTERED_COPPA' : 'REGISTERED';
    
    				$sql = 'SELECT group_id
    					FROM ' . GROUPS_TABLE . "
    					WHERE group_name = '" . $db->sql_escape($group_name) . "'
    						AND group_type = " . GROUP_SPECIAL;
    				$result = $db->sql_query($sql);
    				$row = $db->sql_fetchrow($result);
    				$db->sql_freeresult($result);
    
    				if (!$row)
    				{
    					trigger_error('NO_GROUP');
    				}
    
    				$group_id = $row['group_id'];
    
    				if (($coppa ||
    					$config['require_activation'] == USER_ACTIVATION_SELF ||
    					$config['require_activation'] == USER_ACTIVATION_ADMIN) && $config['email_enable'])
    				{
    					$user_actkey = gen_rand_string(mt_rand(6, 10));
    					$user_type = USER_INACTIVE;
    					$user_inactive_reason = INACTIVE_REGISTER;
    					$user_inactive_time = time();
    				}
    				else
    				{
    					$user_type = USER_NORMAL;
    					$user_actkey = '';
    					$user_inactive_reason = 0;
    					$user_inactive_time = 0;
    				}
    
    				$user_row = array(
    					'username'				=> $data['username'],
    					'user_password'			=> phpbb_hash($data['new_password']),
    					'user_email'			=> $data['email'],
    					'group_id'				=> (int) $group_id,
    					'user_timezone'			=> (float) $data['tz'],
    					'user_dst'				=> $is_dst,
    					'user_lang'				=> $data['lang'],
    					'user_type'				=> $user_type,
    					'user_actkey'			=> $user_actkey,
    					'user_ip'				=> $user->ip,
    					'user_regdate'			=> time(),
    					'user_inactive_reason'	=> $user_inactive_reason,
    					'user_inactive_time'	=> $user_inactive_time,
    				);
    
    				if ($config['new_member_post_limit'])
    				{
    					$user_row['user_new'] = 1;
    				}
    
    				// Register user...
    				$user_id = user_add($user_row, $cp_data);
    
    				// This should not happen, because the required variables are listed above...
    				if ($user_id === false)
    				{
    					trigger_error('NO_USER', E_USER_ERROR);
    				}
    
    				// Okay, captcha, your job is done.
    				if ($config['enable_confirm'] && isset($captcha))
    				{
    					$captcha->reset();
    				}
    
    				if ($coppa && $config['email_enable'])
    				{
    					$message = $user->lang['ACCOUNT_COPPA'];
    					$email_template = 'coppa_welcome_inactive';
    				}
    				else if ($config['require_activation'] == USER_ACTIVATION_SELF && $config['email_enable'])
    				{
    					$message = $user->lang['ACCOUNT_INACTIVE'];
    					$email_template = 'user_welcome_inactive';
    				}
    				else if ($config['require_activation'] == USER_ACTIVATION_ADMIN && $config['email_enable'])
    				{
    					$message = $user->lang['ACCOUNT_INACTIVE_ADMIN'];
    					$email_template = 'admin_welcome_inactive';
    				}
    				else
    				{
    					$message = $user->lang['ACCOUNT_ADDED'];
    					$email_template = 'user_welcome';
    				}
    
    				if ($config['email_enable'])
    				{
    					include_once($phpbb_root_path . 'includes/functions_messenger.' . $phpEx);
    
    					$messenger = new messenger(false);
    
    					$messenger->template($email_template, $data['lang']);
    
    					$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(
    						'WELCOME_MSG'	=> htmlspecialchars_decode(sprintf($user->lang['WELCOME_SUBJECT'], $config['sitename'])),
    						'USERNAME'		=> htmlspecialchars_decode($data['username']),
    						'PASSWORD'		=> htmlspecialchars_decode($data['new_password']),
    						'U_ACTIVATE'	=> "$server_url/ucp.$phpEx?mode=activate&u=$user_id&k=$user_actkey")
    					);
    
    					if ($coppa)
    					{
    						$messenger->assign_vars(array(
    							'FAX_INFO'		=> $config['coppa_fax'],
    							'MAIL_INFO'		=> $config['coppa_mail'],
    							'EMAIL_ADDRESS'	=> $data['email'])
    						);
    					}
    
    					$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->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&u=$user_id",
    								'U_ACTIVATE'		=> "$server_url/ucp.$phpEx?mode=activate&u=$user_id&k=$user_actkey")
    							);
    
    							$messenger->send($row['user_notify_type']);
    						}
    						$db->sql_freeresult($result);
    					}
    				}
    
    				$message = $message . '<br /><br />' . sprintf($user->lang['RETURN_INDEX'], '<a href="' . append_sid("{$phpbb_root_path}index.$phpEx") . '">', '</a>');
    				trigger_error($message);
    			}
    		}
    
    		$s_hidden_fields = array(
    			'agreed'		=> 'true',
    			'change_lang'	=> 0,
    		);
    
    		if ($config['coppa_enable'])
    		{
    			$s_hidden_fields['coppa'] = $coppa;
    		}
    
    		if ($config['enable_confirm'])
    		{
    			$s_hidden_fields = array_merge($s_hidden_fields, $captcha->get_hidden_fields());
    		}
    		$s_hidden_fields = build_hidden_fields($s_hidden_fields);
    		$confirm_image = '';
    
    		// Visual Confirmation - Show images
    		if ($config['enable_confirm'])
    		{
    			$template->assign_vars(array(
    				'CAPTCHA_TEMPLATE'		=> $captcha->get_template(),
    			));
    		}
    
    		//
    		$l_reg_cond = '';
    		switch ($config['require_activation'])
    		{
    			case USER_ACTIVATION_SELF:
    				$l_reg_cond = $user->lang['UCP_EMAIL_ACTIVATE'];
    			break;
    
    			case USER_ACTIVATION_ADMIN:
    				$l_reg_cond = $user->lang['UCP_ADMIN_ACTIVATE'];
    			break;
    		}
    
    		$template->assign_vars(array(
    			'ERROR'				=> (sizeof($error)) ? implode('<br />', $error) : '',
    			'USERNAME'			=> $data['username'],
    			'PASSWORD'			=> $data['new_password'],
    			'PASSWORD_CONFIRM'	=> $data['password_confirm'],
    			'EMAIL'				=> $data['email'],
    			'EMAIL_CONFIRM'		=> $data['email_confirm'],
    
    			'L_REG_COND'				=> $l_reg_cond,
    			'L_USERNAME_EXPLAIN'		=> sprintf($user->lang[$config['allow_name_chars'] . '_EXPLAIN'], $config['min_name_chars'], $config['max_name_chars']),
    			'L_PASSWORD_EXPLAIN'		=> sprintf($user->lang[$config['pass_complex'] . '_EXPLAIN'], $config['min_pass_chars'], $config['max_pass_chars']),
    
    			'S_LANG_OPTIONS'	=> language_select($data['lang']),
    			'S_TZ_OPTIONS'		=> tz_select($data['tz']),
    			'S_CONFIRM_REFRESH'	=> ($config['enable_confirm'] && $config['confirm_refresh']) ? true : false,
    			'S_REGISTRATION'	=> true,
    			'S_COPPA'			=> $coppa,
    			'S_HIDDEN_FIELDS'	=> $s_hidden_fields,
    			'S_UCP_ACTION'		=> append_sid("{$phpbb_root_path}ucp.$phpEx", 'mode=register'),
    		));
    
    		//
    		$user->profile_fields = array();
    
    		// Generate profile fields -> Template Block Variable profile_fields
    		$cp->generate_profile_fields('register', $user->get_iso_lang_id());
    
    		//
    		$this->tpl_name = 'ucp_register';
    		$this->page_title = 'UCP_REGISTRATION';
    	}
    }
    
    ?>
    Esse código acima é do phpBB 3.0.8 versão original.

    Eu substituí, mas agora aparece isso na header:

    Código: Selecionar todos

    [phpBB Debug] PHP Notice: in file /includes/functions.php on line 4505: Cannot modify header information - headers already sent by (output started at /includes/ucp/ucp_register.php:1)
    [phpBB Debug] PHP Notice: in file /includes/functions.php on line 4507: Cannot modify header information - headers already sent by (output started at /includes/ucp/ucp_register.php:1)
    [phpBB Debug] PHP Notice: in file /includes/functions.php on line 4508: Cannot modify header information - headers already sent by (output started at /includes/ucp/ucp_register.php:1)
    [phpBB Debug] PHP Notice: in file /includes/functions.php on line 4509: Cannot modify header information - headers already sent by (output started at /includes/ucp/ucp_register.php:1)
    ggsilva

    Eu atualizei ele via o painel de controle que tem no host [bluehost / SimplyScript]. Manualmente, nem mexi em nada, a não ser na adição de estilos e imagens.


    Edit: Eu deletei as linhas citadas acima, no arquivo functions.php, e as mensagens desapareceram da header. Porém, o Captcha ainda não funciona [qualquer uma das opções].
    Avatar do usuário
    _Vinny_
    Administrador
    Administrador
    Mensagens: 6023
    Registrado em: 03 Set 2009, 21:59
    Contato:
    LendaMSG 1500+Avatar

    Re: Erro - ucp_register.php

  • Favoritar esta postagem
  • Mensagem por _Vinny_ »

    Substitua o arquivo com o que esta em anexo.
    Você não está autorizado a ver ou baixar esse anexo.
    Tradução Português Brasileiro: https://www.phpbb.com/customise/db/translation/brazilian_portuguese/

    Precisa de serviços phpBB? Me mande um mensagem privada ou visite https://vinny.quest
    sumoxd
    Novato
    Novato
    Mensagens: 4
    Registrado em: 20 Abr 2011, 19:50

    Re: Erro - ucp_register.php

  • Favoritar esta postagem
  • Mensagem por sumoxd »

    Olá Vinny!

    Bom... as mensagens desapareceram. Mas o sistema captcha ainda teima em não funcionar. O ruim é, que, se eu não uso ele [Q&A Captcha, em questão], aparecem os bots spammer. Haveria alguma solução para isso?


    Desde já, grato pela atenção e rápida resposta.


    sUmOxD
    Avatar do usuário
    _Vinny_
    Administrador
    Administrador
    Mensagens: 6023
    Registrado em: 03 Set 2009, 21:59
    Contato:
    LendaMSG 1500+Avatar

    Re: Erro - ucp_register.php

  • Favoritar esta postagem
  • Mensagem por _Vinny_ »

    Bom... as mensagens desapareceram
    As mensagens de erros, né.

    Bem, tente atualizar a tradução do seu phpBB, também verifica a versão do estilo usado no seu fórum.
    Tradução Português Brasileiro: https://www.phpbb.com/customise/db/translation/brazilian_portuguese/

    Precisa de serviços phpBB? Me mande um mensagem privada ou visite https://vinny.quest
    Trancado