[RC1] Registration Auth Code (RAC)

A place for MOD Authors to post and receive feedback on MODs still in development. No MODs within this forum should be used within a live environment! No new topics are allowed in this forum.
Forum rules
READ: phpBB.com Board-Wide Rules and Regulations

IMPORTANT: MOD Development Forum rules

On February 1, 2009 this forum will be set to read only as part of retiring of phpBB2.
momentum
Registered User
Posts: 1505
Joined: Thu Sep 20, 2007 4:07 am
Location: Melbourne, Australia

Re: [RC1] Registration Auth Code (RAC)

Post by momentum » Sun May 04, 2008 2:13 pm

Actually it would have been in the templates/aluminoid/profile_add_body.tpl file.

Craig.
QOTY: phpBB is free, good hosting is not. - robert (Lumpy Burgertushie)

User avatar
turkudweller
Registered User
Posts: 22
Joined: Thu Apr 24, 2008 11:15 am
Contact:

Re: [RC1] Registration Auth Code (RAC)

Post by turkudweller » Sun May 04, 2008 8:05 pm

That's true. Although, I Modified both skins just to be methodical.
Either way the Mod isn't working for me yet.
Considering other users have installed it successfully I can only think that it's the 2.0.23 update that kills it :roll:
phpBB3

momentum
Registered User
Posts: 1505
Joined: Thu Sep 20, 2007 4:07 am
Location: Melbourne, Australia

Re: [RC1] Registration Auth Code (RAC)

Post by momentum » Sun May 04, 2008 8:39 pm

I have it working in five different boards, two under v2.0.22 and three under v2.0.23 so I doubt that's it.

Craig.
QOTY: phpBB is free, good hosting is not. - robert (Lumpy Burgertushie)

User avatar
turkudweller
Registered User
Posts: 22
Joined: Thu Apr 24, 2008 11:15 am
Contact:

Re: [RC1] Registration Auth Code (RAC)

Post by turkudweller » Fri May 09, 2008 8:49 am

I'm still trying to work out what's going wrong with this MOD.
Whenever a user tries to register and clicks on an age agreement link the bottom of the page collapses up to the top of the page and thus nothing is displayed and the process freezes.
A link to my board is here: http://turkucc.com/forum

One very confusing thing reading thru this thread is the discrepancy in the coding.
The author says to add this to the includes/usercp_register.php file in the installation instructions

Code: Select all

// RAC MOD Begin
        if ($HTTP_POST_VARS['RAC'] != 'qwerty12345')
        {
			$error = TRUE;
			$error_msg .= ( ( isset($error_msg) ) ? '<br />' : '' ) . $lang['rac_incorrect'];
        }
		// RAC MOD End
And yet throughout the course of this thread he has stated that this is the code for the same file

Code: Select all

if ($HTTP_POST_VARS['RAC'] != 'qwerty12345')
        {
         message_die(GENERAL_ERROR, $lang['rac_incorrect']);
        }
Anybody able to clear this up for me please?
Thanks
phpBB3

User avatar
turkudweller
Registered User
Posts: 22
Joined: Thu Apr 24, 2008 11:15 am
Contact:

Re: [RC1] Registration Auth Code (RAC)

Post by turkudweller » Fri May 09, 2008 9:33 am

Some issues encountered last year by a user mentioned in this thread around page 11 sound very similar to mine.
I use Dreamweaver to edit the php files and usually this is ok. But it seems there are some problems with this method of editing.
Guess I'll get back to the drawing board.
Anyone know of a good ftp program for me to get to upload my ftp files from my Mac to the server?
phpBB3

James N
Registered User
Posts: 1737
Joined: Sat May 20, 2006 12:57 pm
Contact:

Re: [RC1] Registration Auth Code (RAC)

Post by James N » Fri May 09, 2008 9:41 am

Dreamweaver and Frontpage are not good choices when it comes to file editors (find out why).

use the MAC text editor linked on my website to edit the php files, with a FTP client such as Filezilla

User avatar
turkudweller
Registered User
Posts: 22
Joined: Thu Apr 24, 2008 11:15 am
Contact:

Re: [RC1] Registration Auth Code (RAC)

Post by turkudweller » Fri May 09, 2008 8:56 pm

James N wrote:Dreamweaver and Frontpage are not good choices when it comes to file editors (find out why).

use the MAC text editor linked on my website to edit the php files, with a FTP client such as Filezilla
Great, thanks James. I'm going to look into it this week and I'll post my results in case others want to follow this route.
But the thing I don't understand after reading the 1st thread in your message is why DW should or could add code to the file when I'm editing it in code view. Because I'm working directly with the code and can see it right in front of me it looks fine. Maybe DW adds some invisible code to the file when it's uploading!!! :roll:
I just don't know, but thanks for your help.
phpBB3

liljenren
Registered User
Posts: 3
Joined: Sat May 10, 2008 6:46 pm

Re: [RC1] Registration Auth Code (RAC)

Post by liljenren » Sat May 10, 2008 6:50 pm

I am really having trouble doing this.
I super need it on my site but i really dont understand it at all. im running PHPBB 2.0.22

any advice?
I can find the $mode register thing but i dont get it when it says after add.
after what? and add what where??

Im just really not getting this. any help would be amazing.

E.Isolation
Registered User
Posts: 25
Joined: Sat Apr 12, 2008 3:07 am

Re: [RC1] Registration Auth Code (RAC)

Post by E.Isolation » Sat May 10, 2008 8:26 pm

Here's an article that should help you understand what to do:
http://www.phpbb.com/community/viewtopi ... &sk=t&sd=a


Below is what the piece of code should look like once you've followed that first instruction. The instruction shows you the part to look for. In this case it was

else if ( $mode == 'register' )
{


So, after that part, you add the piece of code given in the instruction (the red part below)

-------------------------------------------------------------------------------------------------------------------
else if ( $mode == 'register' )
{
// RAC MOD Begin
if ($HTTP_POST_VARS['RAC'] != 'qwerty12345')
{
$error = TRUE;
$error_msg .= ( ( isset($error_msg) ) ? '<br />' : '' ) . $lang['rac_incorrect'];
}
// RAC MOD End

if ( empty($username) || empty($new_password) || empty($password_confirm) || empty($email) )
{
$error = TRUE;
$error_msg .= ( ( isset($error_msg) ) ? '<br />' : '' ) . $lang['Fields_empty'];
}
----------------------------------------------------------------------------------------------------------------------------

Then for the part that says 'qwerty12345' you would delete the qwerty12345 part, and insert your own authorization code or answer between the quote marks.

liljenren
Registered User
Posts: 3
Joined: Sat May 10, 2008 6:46 pm

Re: [RC1] Registration Auth Code (RAC)

Post by liljenren » Sun May 11, 2008 12:37 pm

done :) hoping this will work, thanks sooo much for your help !

ocrcraydog
Registered User
Posts: 3
Joined: Wed May 14, 2008 11:06 pm

Re: [RC1] Registration Auth Code (RAC)

Post by ocrcraydog » Wed May 14, 2008 11:17 pm

Rookie question here. I have read the entire thread and I realize I need to replace: message_die(GENERAL_ERROR, $lang['rac_incorrect']);
within the includes/usercp_register.php file however, I performed a find and cannot locate message_die(GENERAL_ERROR, $lang['rac_incorrect']);
I manually reviewed my code and still cannot locate this. I am using version 2.0.2.3
and here is my code. Am I just totally missing it ? Any help is appreciated.

Code: Select all

<?php

/***************************************************************************

 *                            usercp_register.php

 *                            -------------------

 *   begin                : Saturday, Feb 13, 2001

 *   copyright            : (C) 2001 The phpBB Group

 *   email                : support@phpbb.com

 *

 *   $Id: usercp_register.php 6775 2006-12-17 10:51:27Z acydburn $

 *

 *

 ***************************************************************************/



/***************************************************************************

 *

 *   This program is free software; you can redistribute it and/or modify

 *   it under the terms of the GNU General Public License as published by

 *   the Free Software Foundation; either version 2 of the License, or

 *   (at your option) any later version.

 *

 *

 ***************************************************************************/



/*



	This code has been modified from its original form by psoTFX @ phpbb.com

	Changes introduce the back-ported phpBB 2.2 visual confirmation code. 



	NOTE: Anyone using the modified code contained within this script MUST include

	a relevant message such as this in usercp_register.php ... failure to do so 

	will affect a breach of Section 2a of the GPL and our copyright



	png visual confirmation system : (c) phpBB Group, 2003 : All Rights Reserved



*/



if ( !defined('IN_PHPBB') )

{

	die("Hacking attempt");

	exit;

}



$unhtml_specialchars_match = array('#>#', '#<#', '#"#', '#&#');

$unhtml_specialchars_replace = array('>', '<', '"', '&');



// ---------------------------------------

// Load agreement template since user has not yet

// agreed to registration conditions/coppa

//

function show_coppa()

{

	global $userdata, $template, $lang, $phpbb_root_path, $phpEx;



	$template->set_filenames(array(

		'body' => 'agreement.tpl')

	);



	$template->assign_vars(array(

		'REGISTRATION' => $lang['Registration'],

		'AGREEMENT' => $lang['Reg_agreement'],

		"AGREE_OVER_13" => $lang['Agree_over_13'],

		"AGREE_UNDER_13" => $lang['Agree_under_13'],

		'DO_NOT_AGREE' => $lang['Agree_not'],



		"U_AGREE_OVER13" => append_sid("profile.$phpEx?mode=register&agreed=true"),

		"U_AGREE_UNDER13" => append_sid("profile.$phpEx?mode=register&agreed=true&coppa=true"))

	);



	$template->pparse('body');



}

//

// ---------------------------------------



$error = FALSE;

$error_msg = '';

$page_title = ( $mode == 'editprofile' ) ? $lang['Edit_profile'] : $lang['Register'];



if ( $mode == 'register' && !isset($HTTP_POST_VARS['agreed']) && !isset($HTTP_GET_VARS['agreed']) )

{

	include($phpbb_root_path . 'includes/page_header.'.$phpEx);



	show_coppa();



	include($phpbb_root_path . 'includes/page_tail.'.$phpEx);

}



$coppa = ( empty($HTTP_POST_VARS['coppa']) && empty($HTTP_GET_VARS['coppa']) ) ? 0 : TRUE;



//

// Check and initialize some variables if needed

//

if (

	isset($HTTP_POST_VARS['submit']) ||

	isset($HTTP_POST_VARS['avatargallery']) ||

	isset($HTTP_POST_VARS['submitavatar']) ||

	isset($HTTP_POST_VARS['cancelavatar']) ||

	$mode == 'register' )

{

	include($phpbb_root_path . 'includes/functions_validate.'.$phpEx);

	include($phpbb_root_path . 'includes/bbcode.'.$phpEx);

	include($phpbb_root_path . 'includes/functions_post.'.$phpEx);



	if ( $mode == 'editprofile' )

	{

		$user_id = intval($HTTP_POST_VARS['user_id']);

		$current_email = trim(htmlspecialchars($HTTP_POST_VARS['current_email']));

	}



	$strip_var_list = array('email' => 'email', 'icq' => 'icq', 'aim' => 'aim', 'msn' => 'msn', 'yim' => 'yim', 'website' => 'website', 'location' => 'location', 'occupation' => 'occupation', 'interests' => 'interests', 'confirm_code' => 'confirm_code');



	// Strip all tags from data ... may p**s some people off, bah, strip_tags is

	// doing the job but can still break HTML output ... have no choice, have

	// to use htmlspecialchars ... be prepared to be moaned at.

	while( list($var, $param) = @each($strip_var_list) )

	{

		if ( !empty($HTTP_POST_VARS[$param]) )

		{

			$$var = trim(htmlspecialchars($HTTP_POST_VARS[$param]));

		}

	}



	$username = ( !empty($HTTP_POST_VARS['username']) ) ? phpbb_clean_username($HTTP_POST_VARS['username']) : '';



	$trim_var_list = array('cur_password' => 'cur_password', 'new_password' => 'new_password', 'password_confirm' => 'password_confirm', 'signature' => 'signature');



	while( list($var, $param) = @each($trim_var_list) )

	{

		if ( !empty($HTTP_POST_VARS[$param]) )

		{

			$$var = trim($HTTP_POST_VARS[$param]);

		}

	}



	$signature = (isset($signature)) ? str_replace('<br />', "\n", $signature) : '';

	$signature_bbcode_uid = '';



	// Run some validation on the optional fields. These are pass-by-ref, so they'll be changed to

	// empty strings if they fail.

	validate_optional_fields($icq, $aim, $msn, $yim, $website, $location, $occupation, $interests, $signature);



	$viewemail = ( isset($HTTP_POST_VARS['viewemail']) ) ? ( ($HTTP_POST_VARS['viewemail']) ? TRUE : 0 ) : 0;

	$allowviewonline = ( isset($HTTP_POST_VARS['hideonline']) ) ? ( ($HTTP_POST_VARS['hideonline']) ? 0 : TRUE ) : TRUE;

	$notifyreply = ( isset($HTTP_POST_VARS['notifyreply']) ) ? ( ($HTTP_POST_VARS['notifyreply']) ? TRUE : 0 ) : 0;

	$notifypm = ( isset($HTTP_POST_VARS['notifypm']) ) ? ( ($HTTP_POST_VARS['notifypm']) ? TRUE : 0 ) : TRUE;

	$popup_pm = ( isset($HTTP_POST_VARS['popup_pm']) ) ? ( ($HTTP_POST_VARS['popup_pm']) ? TRUE : 0 ) : TRUE;

	$sid = (isset($HTTP_POST_VARS['sid'])) ? $HTTP_POST_VARS['sid'] : 0;



	if ( $mode == 'register' )

	{

		$attachsig = ( isset($HTTP_POST_VARS['attachsig']) ) ? ( ($HTTP_POST_VARS['attachsig']) ? TRUE : 0 ) : $board_config['allow_sig'];



		$allowhtml = ( isset($HTTP_POST_VARS['allowhtml']) ) ? ( ($HTTP_POST_VARS['allowhtml']) ? TRUE : 0 ) : $board_config['allow_html'];

		$allowbbcode = ( isset($HTTP_POST_VARS['allowbbcode']) ) ? ( ($HTTP_POST_VARS['allowbbcode']) ? TRUE : 0 ) : $board_config['allow_bbcode'];

		$allowsmilies = ( isset($HTTP_POST_VARS['allowsmilies']) ) ? ( ($HTTP_POST_VARS['allowsmilies']) ? TRUE : 0 ) : $board_config['allow_smilies'];

	}

	else

	{

		$attachsig = ( isset($HTTP_POST_VARS['attachsig']) ) ? ( ($HTTP_POST_VARS['attachsig']) ? TRUE : 0 ) : $userdata['user_attachsig'];



		$allowhtml = ( isset($HTTP_POST_VARS['allowhtml']) ) ? ( ($HTTP_POST_VARS['allowhtml']) ? TRUE : 0 ) : $userdata['user_allowhtml'];

		$allowbbcode = ( isset($HTTP_POST_VARS['allowbbcode']) ) ? ( ($HTTP_POST_VARS['allowbbcode']) ? TRUE : 0 ) : $userdata['user_allowbbcode'];

		$allowsmilies = ( isset($HTTP_POST_VARS['allowsmilies']) ) ? ( ($HTTP_POST_VARS['allowsmilies']) ? TRUE : 0 ) : $userdata['user_allowsmile'];

	}



	$user_style = ( isset($HTTP_POST_VARS['style']) ) ? intval($HTTP_POST_VARS['style']) : $board_config['default_style'];



	if ( !empty($HTTP_POST_VARS['language']) )

	{

		if ( preg_match('/^[a-z_]+$/i', $HTTP_POST_VARS['language']) )

		{

			$user_lang = htmlspecialchars($HTTP_POST_VARS['language']);

		}

		else

		{

			$error = true;

			$error_msg = $lang['Fields_empty'];

		}

	}

	else

	{

		$user_lang = $board_config['default_lang'];

	}



	$user_timezone = ( isset($HTTP_POST_VARS['timezone']) ) ? doubleval($HTTP_POST_VARS['timezone']) : $board_config['board_timezone'];



	$sql = "SELECT config_value

		FROM " . CONFIG_TABLE . "

		WHERE config_name = 'default_dateformat'";

	if ( !($result = $db->sql_query($sql)) )

	{

		message_die(GENERAL_ERROR, 'Could not select default dateformat', '', __LINE__, __FILE__, $sql);

	}

	$row = $db->sql_fetchrow($result);

	$board_config['default_dateformat'] = $row['config_value'];

	$user_dateformat = ( !empty($HTTP_POST_VARS['dateformat']) ) ? trim(htmlspecialchars($HTTP_POST_VARS['dateformat'])) : $board_config['default_dateformat'];



	$user_avatar_local = ( isset($HTTP_POST_VARS['avatarselect']) && !empty($HTTP_POST_VARS['submitavatar']) && $board_config['allow_avatar_local'] ) ? htmlspecialchars($HTTP_POST_VARS['avatarselect']) : ( ( isset($HTTP_POST_VARS['avatarlocal'])  ) ? htmlspecialchars($HTTP_POST_VARS['avatarlocal']) : '' );

	$user_avatar_category = ( isset($HTTP_POST_VARS['avatarcatname']) && $board_config['allow_avatar_local'] ) ? htmlspecialchars($HTTP_POST_VARS['avatarcatname']) : '' ;



	$user_avatar_remoteurl = ( !empty($HTTP_POST_VARS['avatarremoteurl']) ) ? trim(htmlspecialchars($HTTP_POST_VARS['avatarremoteurl'])) : '';

	$user_avatar_upload = ( !empty($HTTP_POST_VARS['avatarurl']) ) ? trim($HTTP_POST_VARS['avatarurl']) : ( ( $HTTP_POST_FILES['avatar']['tmp_name'] != "none") ? $HTTP_POST_FILES['avatar']['tmp_name'] : '' );

	$user_avatar_name = ( !empty($HTTP_POST_FILES['avatar']['name']) ) ? $HTTP_POST_FILES['avatar']['name'] : '';

	$user_avatar_size = ( !empty($HTTP_POST_FILES['avatar']['size']) ) ? $HTTP_POST_FILES['avatar']['size'] : 0;

	$user_avatar_filetype = ( !empty($HTTP_POST_FILES['avatar']['type']) ) ? $HTTP_POST_FILES['avatar']['type'] : '';



	$user_avatar = ( empty($user_avatar_local) && $mode == 'editprofile' ) ? $userdata['user_avatar'] : '';

	$user_avatar_type = ( empty($user_avatar_local) && $mode == 'editprofile' ) ? $userdata['user_avatar_type'] : '';



	if ( (isset($HTTP_POST_VARS['avatargallery']) || isset($HTTP_POST_VARS['submitavatar']) || isset($HTTP_POST_VARS['cancelavatar'])) && (!isset($HTTP_POST_VARS['submit'])) )

	{

		$username = stripslashes($username);

		$email = stripslashes($email);

		$cur_password = htmlspecialchars(stripslashes($cur_password));

		$new_password = htmlspecialchars(stripslashes($new_password));

		$password_confirm = htmlspecialchars(stripslashes($password_confirm));



		$icq = stripslashes($icq);

		$aim = stripslashes($aim);

		$msn = stripslashes($msn);

		$yim = stripslashes($yim);



		$website = stripslashes($website);

		$location = stripslashes($location);

		$occupation = stripslashes($occupation);

		$interests = stripslashes($interests);

		$signature = htmlspecialchars(stripslashes($signature));



		$user_lang = stripslashes($user_lang);

		$user_dateformat = stripslashes($user_dateformat);



		if ( !isset($HTTP_POST_VARS['cancelavatar']))

		{

			$user_avatar = $user_avatar_category . '/' . $user_avatar_local;

			$user_avatar_type = USER_AVATAR_GALLERY;

		}

	}

}



//

// Let's make sure the user isn't logged in while registering,

// and ensure that they were trying to register a second time

// (Prevents double registrations)

//

if ($mode == 'register' && ($userdata['session_logged_in'] || $username == $userdata['username']))

{

	message_die(GENERAL_MESSAGE, $lang['Username_taken'], '', __LINE__, __FILE__);

}



//

// Did the user submit? In this case build a query to update the users profile in the DB

//

if ( isset($HTTP_POST_VARS['submit']) )

{

	include($phpbb_root_path . 'includes/usercp_avatar.'.$phpEx);



	// session id check

	if ($sid == '' || $sid != $userdata['session_id'])

	{

		$error = true;

		$error_msg .= ( ( isset($error_msg) ) ? '<br />' : '' ) . $lang['Session_invalid'];

	}



	$passwd_sql = '';

	if ( $mode == 'editprofile' )

	{

		if ( $user_id != $userdata['user_id'] )

		{

			$error = TRUE;

			$error_msg .= ( ( isset($error_msg) ) ? '<br />' : '' ) . $lang['Wrong_Profile'];

		}

	}

	else if ( $mode == 'register' )

	{

		if ( empty($username) || empty($new_password) || empty($password_confirm) || empty($email) )

		{

			$error = TRUE;

			$error_msg .= ( ( isset($error_msg) ) ? '<br />' : '' ) . $lang['Fields_empty'];

		}

	}



	if ($board_config['enable_confirm'] && $mode == 'register')

	{

		if (empty($HTTP_POST_VARS['confirm_id']))

		{

			$error = TRUE;

			$error_msg .= ( ( isset($error_msg) ) ? '<br />' : '' ) . $lang['Confirm_code_wrong'];

		}

		else

		{

			$confirm_id = htmlspecialchars($HTTP_POST_VARS['confirm_id']);

			if (!preg_match('/^[A-Za-z0-9]+$/', $confirm_id))

			{

				$confirm_id = '';

			}

			

			$sql = 'SELECT code 

				FROM ' . CONFIRM_TABLE . " 

				WHERE confirm_id = '$confirm_id' 

					AND session_id = '" . $userdata['session_id'] . "'";

			if (!($result = $db->sql_query($sql)))

			{

				message_die(GENERAL_ERROR, 'Could not obtain confirmation code', '', __LINE__, __FILE__, $sql);

			}



			if ($row = $db->sql_fetchrow($result))

			{

				if ($row['code'] != $confirm_code)

				{

					$error = TRUE;

					$error_msg .= ( ( isset($error_msg) ) ? '<br />' : '' ) . $lang['Confirm_code_wrong'];

				}

				else

				{

					$sql = 'DELETE FROM ' . CONFIRM_TABLE . " 

						WHERE confirm_id = '$confirm_id' 

							AND session_id = '" . $userdata['session_id'] . "'";

					if (!$db->sql_query($sql))

					{

						message_die(GENERAL_ERROR, 'Could not delete confirmation code', '', __LINE__, __FILE__, $sql);

					}

				}

			}

			else

			{		

				$error = TRUE;

				$error_msg .= ( ( isset($error_msg) ) ? '<br />' : '' ) . $lang['Confirm_code_wrong'];

			}

			$db->sql_freeresult($result);

		}

	}



	$passwd_sql = '';

	if ( !empty($new_password) && !empty($password_confirm) )

	{

		if ( $new_password != $password_confirm )

		{

			$error = TRUE;

			$error_msg .= ( ( isset($error_msg) ) ? '<br />' : '' ) . $lang['Password_mismatch'];

		}

		else if ( strlen($new_password) > 32 )

		{

			$error = TRUE;

			$error_msg .= ( ( isset($error_msg) ) ? '<br />' : '' ) . $lang['Password_long'];

		}

		else

		{

			if ( $mode == 'editprofile' )

			{

				$sql = "SELECT user_password

					FROM " . USERS_TABLE . "

					WHERE user_id = $user_id";

				if ( !($result = $db->sql_query($sql)) )

				{

					message_die(GENERAL_ERROR, 'Could not obtain user_password information', '', __LINE__, __FILE__, $sql);

				}



				$row = $db->sql_fetchrow($result);



				if ( $row['user_password'] != md5($cur_password) )

				{

					$error = TRUE;

					$error_msg .= ( ( isset($error_msg) ) ? '<br />' : '' ) . $lang['Current_password_mismatch'];

				}

			}



			if ( !$error )

			{

				$new_password = md5($new_password);

				$passwd_sql = "user_password = '$new_password', ";

			}

		}

	}

	else if ( ( empty($new_password) && !empty($password_confirm) ) || ( !empty($new_password) && empty($password_confirm) ) )

	{

		$error = TRUE;

		$error_msg .= ( ( isset($error_msg) ) ? '<br />' : '' ) . $lang['Password_mismatch'];

	}



	//

	// Do a ban check on this email address

	//

	if ( $email != $userdata['user_email'] || $mode == 'register' )

	{

		$result = validate_email($email);

		if ( $result['error'] )

		{

			$email = $userdata['user_email'];



			$error = TRUE;

			$error_msg .= ( ( isset($error_msg) ) ? '<br />' : '' ) . $result['error_msg'];

		}



		if ( $mode == 'editprofile' )

		{

			$sql = "SELECT user_password

				FROM " . USERS_TABLE . "

				WHERE user_id = $user_id";

			if ( !($result = $db->sql_query($sql)) )

			{

				message_die(GENERAL_ERROR, 'Could not obtain user_password information', '', __LINE__, __FILE__, $sql);

			}



			$row = $db->sql_fetchrow($result);



			if ( $row['user_password'] != md5($cur_password) )

			{

				$email = $userdata['user_email'];



				$error = TRUE;

				$error_msg .= ( ( isset($error_msg) ) ? '<br />' : '' ) . $lang['Current_password_mismatch'];

			}

		}

	}



	$username_sql = '';

	if ( $board_config['allow_namechange'] || $mode == 'register' )

	{

		if ( empty($username) )

		{

			// Error is already triggered, since one field is empty.

			$error = TRUE;

		}

		else if ( $username != $userdata['username'] || $mode == 'register')

		{

			if (strtolower($username) != strtolower($userdata['username']) || $mode == 'register')

			{

				$result = validate_username($username);

				if ( $result['error'] )

				{

					$error = TRUE;

					$error_msg .= ( ( isset($error_msg) ) ? '<br />' : '' ) . $result['error_msg'];

				}

			}



			if (!$error)

			{

				$username_sql = "username = '" . str_replace("\'", "''", $username) . "', ";

			}

		}

	}



	if ( $signature != '' )

	{

		if ( strlen($signature) > $board_config['max_sig_chars'] )

		{

			$error = TRUE;

			$error_msg .= ( ( isset($error_msg) ) ? '<br />' : '' ) . $lang['Signature_too_long'];

		}



		if ( !isset($signature_bbcode_uid) || $signature_bbcode_uid == '' )

		{

			$signature_bbcode_uid = ( $allowbbcode ) ? make_bbcode_uid() : '';

		}

		$signature = prepare_message($signature, $allowhtml, $allowbbcode, $allowsmilies, $signature_bbcode_uid);

	}



	if ( $website != '' )

	{

		rawurlencode($website);

	}



	$avatar_sql = '';



	if ( isset($HTTP_POST_VARS['avatardel']) && $mode == 'editprofile' )

	{

		$avatar_sql = user_avatar_delete($userdata['user_avatar_type'], $userdata['user_avatar']);

	}

	else

	if ( ( !empty($user_avatar_upload) || !empty($user_avatar_name) ) && $board_config['allow_avatar_upload'] )

	{

		if ( !empty($user_avatar_upload) )

		{

			$avatar_mode = (empty($user_avatar_name)) ? 'remote' : 'local';

			$avatar_sql = user_avatar_upload($mode, $avatar_mode, $userdata['user_avatar'], $userdata['user_avatar_type'], $error, $error_msg, $user_avatar_upload, $user_avatar_name, $user_avatar_size, $user_avatar_filetype);

		}

		else if ( !empty($user_avatar_name) )

		{

			$l_avatar_size = sprintf($lang['Avatar_filesize'], round($board_config['avatar_filesize'] / 1024));



			$error = true;

			$error_msg .= ( ( !empty($error_msg) ) ? '<br />' : '' ) . $l_avatar_size;

		}

	}

	else if ( $user_avatar_remoteurl != '' && $board_config['allow_avatar_remote'] )

	{

		user_avatar_delete($userdata['user_avatar_type'], $userdata['user_avatar']);

		$avatar_sql = user_avatar_url($mode, $error, $error_msg, $user_avatar_remoteurl);

	}

	else if ( $user_avatar_local != '' && $board_config['allow_avatar_local'] )

	{

		user_avatar_delete($userdata['user_avatar_type'], $userdata['user_avatar']);

		$avatar_sql = user_avatar_gallery($mode, $error, $error_msg, $user_avatar_local, $user_avatar_category);

	}



	if ( !$error )

	{

		if ( $avatar_sql == '' )

		{

			$avatar_sql = ( $mode == 'editprofile' ) ? '' : "'', " . USER_AVATAR_NONE;

		}



		if ( $mode == 'editprofile' )

		{

			if ( $email != $userdata['user_email'] && $board_config['require_activation'] != USER_ACTIVATION_NONE && $userdata['user_level'] != ADMIN )

			{

				$user_active = 0;



				$user_actkey = gen_rand_string(true);

				$key_len = 54 - ( strlen($server_url) );

				$key_len = ( $key_len > 6 ) ? $key_len : 6;

				$user_actkey = substr($user_actkey, 0, $key_len);



				if ( $userdata['session_logged_in'] )

				{

					session_end($userdata['session_id'], $userdata['user_id']);

				}

			}

			else

			{

				$user_active = 1;

				$user_actkey = '';

			}



			$sql = "UPDATE " . USERS_TABLE . "

				SET " . $username_sql . $passwd_sql . "user_email = '" . str_replace("\'", "''", $email) ."', user_icq = '" . str_replace("\'", "''", $icq) . "', user_website = '" . str_replace("\'", "''", $website) . "', user_occ = '" . str_replace("\'", "''", $occupation) . "', user_from = '" . str_replace("\'", "''", $location) . "', user_interests = '" . str_replace("\'", "''", $interests) . "', user_sig = '" . str_replace("\'", "''", $signature) . "', user_sig_bbcode_uid = '$signature_bbcode_uid', user_viewemail = $viewemail, user_aim = '" . str_replace("\'", "''", str_replace(' ', '+', $aim)) . "', user_yim = '" . str_replace("\'", "''", $yim) . "', user_msnm = '" . str_replace("\'", "''", $msn) . "', user_attachsig = $attachsig, user_allowsmile = $allowsmilies, user_allowhtml = $allowhtml, user_allowbbcode = $allowbbcode, user_allow_viewonline = $allowviewonline, user_notify = $notifyreply, user_notify_pm = $notifypm, user_popup_pm = $popup_pm, user_timezone = $user_timezone, user_dateformat = '" . str_replace("\'", "''", $user_dateformat) . "', user_lang = '" . str_replace("\'", "''", $user_lang) . "', user_style = $user_style, user_active = $user_active, user_actkey = '" . str_replace("\'", "''", $user_actkey) . "'" . $avatar_sql . "

				WHERE user_id = $user_id";

			if ( !($result = $db->sql_query($sql)) )

			{

				message_die(GENERAL_ERROR, 'Could not update users table', '', __LINE__, __FILE__, $sql);

			}



			// We remove all stored login keys since the password has been updated

			// and change the current one (if applicable)

			if ( !empty($passwd_sql) )

			{

				session_reset_keys($user_id, $user_ip);

			}



			if ( !$user_active )

			{

				//

				// The users account has been deactivated, send them an email with a new activation key

				//

				include($phpbb_root_path . 'includes/emailer.'.$phpEx);

				$emailer = new emailer($board_config['smtp_delivery']);



 				if ( $board_config['require_activation'] != USER_ACTIVATION_ADMIN )

 				{

 					$emailer->from($board_config['board_email']);

 					$emailer->replyto($board_config['board_email']);

 

 					$emailer->use_template('user_activate', stripslashes($user_lang));

 					$emailer->email_address($email);

 					$emailer->set_subject($lang['Reactivate']);

  

 					$emailer->assign_vars(array(

 						'SITENAME' => $board_config['sitename'],

 						'USERNAME' => preg_replace($unhtml_specialchars_match, $unhtml_specialchars_replace, substr(str_replace("\'", "'", $username), 0, 25)),

 						'EMAIL_SIG' => (!empty($board_config['board_email_sig'])) ? str_replace('<br />', "\n", "-- \n" . $board_config['board_email_sig']) : '',

  

 						'U_ACTIVATE' => $server_url . '?mode=activate&' . POST_USERS_URL . '=' . $user_id . '&act_key=' . $user_actkey)

 					);

 					$emailer->send();

 					$emailer->reset();

 				}

 				else if ( $board_config['require_activation'] == USER_ACTIVATION_ADMIN )

 				{

 					$sql = 'SELECT user_email, user_lang 

 						FROM ' . USERS_TABLE . '

 						WHERE user_level = ' . ADMIN;

 					

 					if ( !($result = $db->sql_query($sql)) )

 					{

 						message_die(GENERAL_ERROR, 'Could not select Administrators', '', __LINE__, __FILE__, $sql);

 					}

 					

 					while ($row = $db->sql_fetchrow($result))

 					{

 						$emailer->from($board_config['board_email']);

 						$emailer->replyto($board_config['board_email']);

 						

 						$emailer->email_address(trim($row['user_email']));

 						$emailer->use_template("admin_activate", $row['user_lang']);

 						$emailer->set_subject($lang['Reactivate']);

 

 						$emailer->assign_vars(array(

 							'USERNAME' => preg_replace($unhtml_specialchars_match, $unhtml_specialchars_replace, substr(str_replace("\'", "'", $username), 0, 25)),

 							'EMAIL_SIG' => str_replace('<br />', "\n", "-- \n" . $board_config['board_email_sig']),

 

 							'U_ACTIVATE' => $server_url . '?mode=activate&' . POST_USERS_URL . '=' . $user_id . '&act_key=' . $user_actkey)

 						);

 						$emailer->send();

 						$emailer->reset();

 					}

 					$db->sql_freeresult($result);

 				}



				$message = $lang['Profile_updated_inactive'] . '<br /><br />' . sprintf($lang['Click_return_index'],  '<a href="' . append_sid("index.$phpEx") . '">', '</a>');

			}

			else

			{

				$message = $lang['Profile_updated'] . '<br /><br />' . sprintf($lang['Click_return_index'],  '<a href="' . append_sid("index.$phpEx") . '">', '</a>');

			}



			$template->assign_vars(array(

				"META" => '<meta http-equiv="refresh" content="5;url=' . append_sid("index.$phpEx") . '">')

			);



			message_die(GENERAL_MESSAGE, $message);

		}

		else

		{

			$sql = "SELECT MAX(user_id) AS total

				FROM " . USERS_TABLE;

			if ( !($result = $db->sql_query($sql)) )

			{

				message_die(GENERAL_ERROR, 'Could not obtain next user_id information', '', __LINE__, __FILE__, $sql);

			}



			if ( !($row = $db->sql_fetchrow($result)) )

			{

				message_die(GENERAL_ERROR, 'Could not obtain next user_id information', '', __LINE__, __FILE__, $sql);

			}

			$user_id = $row['total'] + 1;



			//

			// Get current date

			//

			$sql = "INSERT INTO " . USERS_TABLE . "	(user_id, username, user_regdate, user_password, user_email, user_icq, user_website, user_occ, user_from, user_interests, user_sig, user_sig_bbcode_uid, user_avatar, user_avatar_type, user_viewemail, user_aim, user_yim, user_msnm, user_attachsig, user_allowsmile, user_allowhtml, user_allowbbcode, user_allow_viewonline, user_notify, user_notify_pm, user_popup_pm, user_timezone, user_dateformat, user_lang, user_style, user_level, user_allow_pm, user_active, user_actkey)

				VALUES ($user_id, '" . str_replace("\'", "''", $username) . "', " . time() . ", '" . str_replace("\'", "''", $new_password) . "', '" . str_replace("\'", "''", $email) . "', '" . str_replace("\'", "''", $icq) . "', '" . str_replace("\'", "''", $website) . "', '" . str_replace("\'", "''", $occupation) . "', '" . str_replace("\'", "''", $location) . "', '" . str_replace("\'", "''", $interests) . "', '" . str_replace("\'", "''", $signature) . "', '$signature_bbcode_uid', $avatar_sql, $viewemail, '" . str_replace("\'", "''", str_replace(' ', '+', $aim)) . "', '" . str_replace("\'", "''", $yim) . "', '" . str_replace("\'", "''", $msn) . "', $attachsig, $allowsmilies, $allowhtml, $allowbbcode, $allowviewonline, $notifyreply, $notifypm, $popup_pm, $user_timezone, '" . str_replace("\'", "''", $user_dateformat) . "', '" . str_replace("\'", "''", $user_lang) . "', $user_style, 0, 1, ";

			if ( $board_config['require_activation'] == USER_ACTIVATION_SELF || $board_config['require_activation'] == USER_ACTIVATION_ADMIN || $coppa )

			{

				$user_actkey = gen_rand_string(true);

				$key_len = 54 - (strlen($server_url));

				$key_len = ( $key_len > 6 ) ? $key_len : 6;

				$user_actkey = substr($user_actkey, 0, $key_len);

				$sql .= "0, '" . str_replace("\'", "''", $user_actkey) . "')";

			}

			else

			{

				$sql .= "1, '')";

			}



			if ( !($result = $db->sql_query($sql, BEGIN_TRANSACTION)) )

			{

				message_die(GENERAL_ERROR, 'Could not insert data into users table', '', __LINE__, __FILE__, $sql);

			}



			$sql = "INSERT INTO " . GROUPS_TABLE . " (group_name, group_description, group_single_user, group_moderator)

				VALUES ('', 'Personal User', 1, 0)";

			if ( !($result = $db->sql_query($sql)) )

			{

				message_die(GENERAL_ERROR, 'Could not insert data into groups table', '', __LINE__, __FILE__, $sql);

			}



			$group_id = $db->sql_nextid();



			$sql = "INSERT INTO " . USER_GROUP_TABLE . " (user_id, group_id, user_pending)

				VALUES ($user_id, $group_id, 0)";

			if( !($result = $db->sql_query($sql, END_TRANSACTION)) )

			{

				message_die(GENERAL_ERROR, 'Could not insert data into user_group table', '', __LINE__, __FILE__, $sql);

			}



			if ( $coppa )

			{

				$message = $lang['COPPA'];

				$email_template = 'coppa_welcome_inactive';

			}

			else if ( $board_config['require_activation'] == USER_ACTIVATION_SELF )

			{

				$message = $lang['Account_inactive'];

				$email_template = 'user_welcome_inactive';

			}

			else if ( $board_config['require_activation'] == USER_ACTIVATION_ADMIN )

			{

				$message = $lang['Account_inactive_admin'];

				$email_template = 'admin_welcome_inactive';

			}

			else

			{

				$message = $lang['Account_added'];

				$email_template = 'user_welcome';

			}



			include($phpbb_root_path . 'includes/emailer.'.$phpEx);

			$emailer = new emailer($board_config['smtp_delivery']);



			$emailer->from($board_config['board_email']);

			$emailer->replyto($board_config['board_email']);



			$emailer->use_template($email_template, stripslashes($user_lang));

			$emailer->email_address($email);

			$emailer->set_subject(sprintf($lang['Welcome_subject'], $board_config['sitename']));



			if( $coppa )

			{

				$emailer->assign_vars(array(

					'SITENAME' => $board_config['sitename'],

					'WELCOME_MSG' => sprintf($lang['Welcome_subject'], $board_config['sitename']),

					'USERNAME' => preg_replace($unhtml_specialchars_match, $unhtml_specialchars_replace, substr(str_replace("\'", "'", $username), 0, 25)),

					'PASSWORD' => $password_confirm,

					'EMAIL_SIG' => str_replace('<br />', "\n", "-- \n" . $board_config['board_email_sig']),



					'FAX_INFO' => $board_config['coppa_fax'],

					'MAIL_INFO' => $board_config['coppa_mail'],

					'EMAIL_ADDRESS' => $email,

					'ICQ' => $icq,

					'AIM' => $aim,

					'YIM' => $yim,

					'MSN' => $msn,

					'WEB_SITE' => $website,

					'FROM' => $location,

					'OCC' => $occupation,

					'INTERESTS' => $interests,

					'SITENAME' => $board_config['sitename']));

			}

			else

			{

				$emailer->assign_vars(array(

					'SITENAME' => $board_config['sitename'],

					'WELCOME_MSG' => sprintf($lang['Welcome_subject'], $board_config['sitename']),

					'USERNAME' => preg_replace($unhtml_specialchars_match, $unhtml_specialchars_replace, substr(str_replace("\'", "'", $username), 0, 25)),

					'PASSWORD' => $password_confirm,

					'EMAIL_SIG' => str_replace('<br />', "\n", "-- \n" . $board_config['board_email_sig']),



					'U_ACTIVATE' => $server_url . '?mode=activate&' . POST_USERS_URL . '=' . $user_id . '&act_key=' . $user_actkey)

				);

			}



			$emailer->send();

			$emailer->reset();



			if ( $board_config['require_activation'] == USER_ACTIVATION_ADMIN )

			{

				$sql = "SELECT user_email, user_lang 

					FROM " . USERS_TABLE . "

					WHERE user_level = " . ADMIN;

				

				if ( !($result = $db->sql_query($sql)) )

				{

					message_die(GENERAL_ERROR, 'Could not select Administrators', '', __LINE__, __FILE__, $sql);

				}

				

				while ($row = $db->sql_fetchrow($result))

				{

					$emailer->from($board_config['board_email']);

					$emailer->replyto($board_config['board_email']);

					

					$emailer->email_address(trim($row['user_email']));

					$emailer->use_template("admin_activate", $row['user_lang']);

					$emailer->set_subject($lang['New_account_subject']);



					$emailer->assign_vars(array(

						'USERNAME' => preg_replace($unhtml_specialchars_match, $unhtml_specialchars_replace, substr(str_replace("\'", "'", $username), 0, 25)),

						'EMAIL_SIG' => str_replace('<br />', "\n", "-- \n" . $board_config['board_email_sig']),



						'U_ACTIVATE' => $server_url . '?mode=activate&' . POST_USERS_URL . '=' . $user_id . '&act_key=' . $user_actkey)

					);

					$emailer->send();

					$emailer->reset();

				}

				$db->sql_freeresult($result);

			}



			$message = $message . '<br /><br />' . sprintf($lang['Click_return_index'],  '<a href="' . append_sid("index.$phpEx") . '">', '</a>');



			message_die(GENERAL_MESSAGE, $message);

		} // if mode == register

	}

} // End of submit





if ( $error )

{

	//

	// If an error occured we need to stripslashes on returned data

	//

	$username = stripslashes($username);

	$email = stripslashes($email);

	$cur_password = '';

	$new_password = '';

	$password_confirm = '';



	$icq = stripslashes($icq);

	$aim = str_replace('+', ' ', stripslashes($aim));

	$msn = stripslashes($msn);

	$yim = stripslashes($yim);



	$website = stripslashes($website);

	$location = stripslashes($location);

	$occupation = stripslashes($occupation);

	$interests = stripslashes($interests);

	$signature = stripslashes($signature);

	$signature = ($signature_bbcode_uid != '') ? preg_replace("/:(([a-z0-9]+:)?)$signature_bbcode_uid(=|\])/si", '\\3', $signature) : $signature;



	$user_lang = stripslashes($user_lang);

	$user_dateformat = stripslashes($user_dateformat);



}

else if ( $mode == 'editprofile' && !isset($HTTP_POST_VARS['avatargallery']) && !isset($HTTP_POST_VARS['submitavatar']) && !isset($HTTP_POST_VARS['cancelavatar']) )

{

	$user_id = $userdata['user_id'];

	$username = $userdata['username'];

	$email = $userdata['user_email'];

	$cur_password = '';

	$new_password = '';

	$password_confirm = '';



	$icq = $userdata['user_icq'];

	$aim = str_replace('+', ' ', $userdata['user_aim']);

	$msn = $userdata['user_msnm'];

	$yim = $userdata['user_yim'];



	$website = $userdata['user_website'];

	$location = $userdata['user_from'];

	$occupation = $userdata['user_occ'];

	$interests = $userdata['user_interests'];

	$signature_bbcode_uid = $userdata['user_sig_bbcode_uid'];

	$signature = ($signature_bbcode_uid != '') ? preg_replace("/:(([a-z0-9]+:)?)$signature_bbcode_uid(=|\])/si", '\\3', $userdata['user_sig']) : $userdata['user_sig'];



	$viewemail = $userdata['user_viewemail'];

	$notifypm = $userdata['user_notify_pm'];

	$popup_pm = $userdata['user_popup_pm'];

	$notifyreply = $userdata['user_notify'];

	$attachsig = $userdata['user_attachsig'];

	$allowhtml = $userdata['user_allowhtml'];

	$allowbbcode = $userdata['user_allowbbcode'];

	$allowsmilies = $userdata['user_allowsmile'];

	$allowviewonline = $userdata['user_allow_viewonline'];



	$user_avatar = ( $userdata['user_allowavatar'] ) ? $userdata['user_avatar'] : '';

	$user_avatar_type = ( $userdata['user_allowavatar'] ) ? $userdata['user_avatar_type'] : USER_AVATAR_NONE;



	$user_style = $userdata['user_style'];

	$user_lang = $userdata['user_lang'];

	$user_timezone = $userdata['user_timezone'];

	$user_dateformat = $userdata['user_dateformat'];

}



//

// Default pages

//

include($phpbb_root_path . 'includes/page_header.'.$phpEx);



make_jumpbox('viewforum.'.$phpEx);



if ( $mode == 'editprofile' )

{

	if ( $user_id != $userdata['user_id'] )

	{

		$error = TRUE;

		$error_msg = $lang['Wrong_Profile'];

	}

}



if( isset($HTTP_POST_VARS['avatargallery']) && !$error )

{

	include($phpbb_root_path . 'includes/usercp_avatar.'.$phpEx);



	$avatar_category = ( !empty($HTTP_POST_VARS['avatarcategory']) ) ? htmlspecialchars($HTTP_POST_VARS['avatarcategory']) : '';



	$template->set_filenames(array(

		'body' => 'profile_avatar_gallery.tpl')

	);



	$allowviewonline = !$allowviewonline;



	display_avatar_gallery($mode, $avatar_category, $user_id, $email, $current_email, $coppa, $username, $email, $new_password, $cur_password, $password_confirm, $icq, $aim, $msn, $yim, $website, $location, $occupation, $interests, $signature, $viewemail, $notifypm, $popup_pm, $notifyreply, $attachsig, $allowhtml, $allowbbcode, $allowsmilies, $allowviewonline, $user_style, $user_lang, $user_timezone, $user_dateformat, $userdata['session_id']);

}

else

{

	include($phpbb_root_path . 'includes/functions_selects.'.$phpEx);



	if ( !isset($coppa) )

	{

		$coppa = FALSE;

	}



	if ( !isset($user_style) )

	{

		$user_style = $board_config['default_style'];

	}



	$avatar_img = '';

	if ( $user_avatar_type )

	{

		switch( $user_avatar_type )

		{

			case USER_AVATAR_UPLOAD:

				$avatar_img = ( $board_config['allow_avatar_upload'] ) ? '<img src="' . $board_config['avatar_path'] . '/' . $user_avatar . '" alt="" />' : '';

				break;

			case USER_AVATAR_REMOTE:

				$avatar_img = ( $board_config['allow_avatar_remote'] ) ? '<img src="' . $user_avatar . '" alt="" />' : '';

				break;

			case USER_AVATAR_GALLERY:

				$avatar_img = ( $board_config['allow_avatar_local'] ) ? '<img src="' . $board_config['avatar_gallery_path'] . '/' . $user_avatar . '" alt="" />' : '';

				break;

		}

	}



	$s_hidden_fields = '<input type="hidden" name="mode" value="' . $mode . '" /><input type="hidden" name="agreed" value="true" /><input type="hidden" name="coppa" value="' . $coppa . '" />';

	$s_hidden_fields .= '<input type="hidden" name="sid" value="' . $userdata['session_id'] . '" />';

	if( $mode == 'editprofile' )

	{

		$s_hidden_fields .= '<input type="hidden" name="user_id" value="' . $userdata['user_id'] . '" />';

		//

		// Send the users current email address. If they change it, and account activation is turned on

		// the user account will be disabled and the user will have to reactivate their account.

		//

		$s_hidden_fields .= '<input type="hidden" name="current_email" value="' . $userdata['user_email'] . '" />';

	}



	if ( !empty($user_avatar_local) )

	{

		$s_hidden_fields .= '<input type="hidden" name="avatarlocal" value="' . $user_avatar_local . '" /><input type="hidden" name="avatarcatname" value="' . $user_avatar_category . '" />';

	}



	$html_status =  ( $userdata['user_allowhtml'] && $board_config['allow_html'] ) ? $lang['HTML_is_ON'] : $lang['HTML_is_OFF'];

	$bbcode_status = ( $userdata['user_allowbbcode'] && $board_config['allow_bbcode']  ) ? $lang['BBCode_is_ON'] : $lang['BBCode_is_OFF'];

	$smilies_status = ( $userdata['user_allowsmile'] && $board_config['allow_smilies']  ) ? $lang['Smilies_are_ON'] : $lang['Smilies_are_OFF'];



	if ( $error )

	{

		$template->set_filenames(array(

			'reg_header' => 'error_body.tpl')

		);

		$template->assign_vars(array(

			'ERROR_MESSAGE' => $error_msg)

		);

		$template->assign_var_from_handle('ERROR_BOX', 'reg_header');

	}



	$template->set_filenames(array(

		'body' => 'profile_add_body.tpl')

	);



	if ( $mode == 'editprofile' )

	{

		$template->assign_block_vars('switch_edit_profile', array());

	}



	if ( ($mode == 'register') || ($board_config['allow_namechange']) )

	{

		$template->assign_block_vars('switch_namechange_allowed', array());

	}

	else

	{

		$template->assign_block_vars('switch_namechange_disallowed', array());

	}





	// Visual Confirmation

	$confirm_image = '';

	if (!empty($board_config['enable_confirm']) && $mode == 'register')

	{

		$sql = 'SELECT session_id 

			FROM ' . SESSIONS_TABLE; 

		if (!($result = $db->sql_query($sql)))

		{

			message_die(GENERAL_ERROR, 'Could not select session data', '', __LINE__, __FILE__, $sql);

		}



		if ($row = $db->sql_fetchrow($result))

		{

			$confirm_sql = '';

			do

			{

				$confirm_sql .= (($confirm_sql != '') ? ', ' : '') . "'" . $row['session_id'] . "'";

			}

			while ($row = $db->sql_fetchrow($result));

		

			$sql = 'DELETE FROM ' .  CONFIRM_TABLE . " 

				WHERE session_id NOT IN ($confirm_sql)";

			if (!$db->sql_query($sql))

			{

				message_die(GENERAL_ERROR, 'Could not delete stale confirm data', '', __LINE__, __FILE__, $sql);

			}

		}

		$db->sql_freeresult($result);



		$sql = 'SELECT COUNT(session_id) AS attempts 

			FROM ' . CONFIRM_TABLE . " 

			WHERE session_id = '" . $userdata['session_id'] . "'";

		if (!($result = $db->sql_query($sql)))

		{

			message_die(GENERAL_ERROR, 'Could not obtain confirm code count', '', __LINE__, __FILE__, $sql);

		}



		if ($row = $db->sql_fetchrow($result))

		{

			if ($row['attempts'] > 3)

			{

				message_die(GENERAL_MESSAGE, $lang['Too_many_registers']);

			}

		}

		$db->sql_freeresult($result);

		

		// Generate the required confirmation code

		// NB 0 (zero) could get confused with O (the letter) so we make change it

		$code = dss_rand();

		$code = substr(str_replace('0', 'Z', strtoupper(base_convert($code, 16, 35))), 2, 6);



		$confirm_id = md5(uniqid($user_ip));



		$sql = 'INSERT INTO ' . CONFIRM_TABLE . " (confirm_id, session_id, code) 

			VALUES ('$confirm_id', '". $userdata['session_id'] . "', '$code')";

		if (!$db->sql_query($sql))

		{

			message_die(GENERAL_ERROR, 'Could not insert new confirm code information', '', __LINE__, __FILE__, $sql);

		}



		unset($code);

		

		$confirm_image = '<img src="' . append_sid("profile.$phpEx?mode=confirm&id=$confirm_id") . '" alt="" title="" />';

		$s_hidden_fields .= '<input type="hidden" name="confirm_id" value="' . $confirm_id . '" />';



		$template->assign_block_vars('switch_confirm', array());

	}





	//

	// Let's do an overall check for settings/versions which would prevent

	// us from doing file uploads....

	//

	$ini_val = ( phpversion() >= '4.0.0' ) ? 'ini_get' : 'get_cfg_var';

	$form_enctype = ( @$ini_val('file_uploads') == '0' || strtolower(@$ini_val('file_uploads') == 'off') || phpversion() == '4.0.4pl1' || !$board_config['allow_avatar_upload'] || ( phpversion() < '4.0.3' && @$ini_val('open_basedir') != '' ) ) ? '' : 'enctype="multipart/form-data"';



	$template->assign_vars(array(

		'USERNAME' => isset($username) ? $username : '',

		'CUR_PASSWORD' => isset($cur_password) ? $cur_password : '',

		'NEW_PASSWORD' => isset($new_password) ? $new_password : '',

		'PASSWORD_CONFIRM' => isset($password_confirm) ? $password_confirm : '',

		'EMAIL' => isset($email) ? $email : '',

		'CONFIRM_IMG' => $confirm_image, 

		'YIM' => $yim,

		'ICQ' => $icq,

		'MSN' => $msn,

		'AIM' => $aim,

		'OCCUPATION' => $occupation,

		'INTERESTS' => $interests,

		'LOCATION' => $location,

		'WEBSITE' => $website,

		'SIGNATURE' => str_replace('<br />', "\n", $signature),

		'VIEW_EMAIL_YES' => ( $viewemail ) ? 'checked="checked"' : '',

		'VIEW_EMAIL_NO' => ( !$viewemail ) ? 'checked="checked"' : '',

		'HIDE_USER_YES' => ( !$allowviewonline ) ? 'checked="checked"' : '',

		'HIDE_USER_NO' => ( $allowviewonline ) ? 'checked="checked"' : '',

		'NOTIFY_PM_YES' => ( $notifypm ) ? 'checked="checked"' : '',

		'NOTIFY_PM_NO' => ( !$notifypm ) ? 'checked="checked"' : '',

		'POPUP_PM_YES' => ( $popup_pm ) ? 'checked="checked"' : '',

		'POPUP_PM_NO' => ( !$popup_pm ) ? 'checked="checked"' : '',

		'ALWAYS_ADD_SIGNATURE_YES' => ( $attachsig ) ? 'checked="checked"' : '',

		'ALWAYS_ADD_SIGNATURE_NO' => ( !$attachsig ) ? 'checked="checked"' : '',

		'NOTIFY_REPLY_YES' => ( $notifyreply ) ? 'checked="checked"' : '',

		'NOTIFY_REPLY_NO' => ( !$notifyreply ) ? 'checked="checked"' : '',

		'ALWAYS_ALLOW_BBCODE_YES' => ( $allowbbcode ) ? 'checked="checked"' : '',

		'ALWAYS_ALLOW_BBCODE_NO' => ( !$allowbbcode ) ? 'checked="checked"' : '',

		'ALWAYS_ALLOW_HTML_YES' => ( $allowhtml ) ? 'checked="checked"' : '',

		'ALWAYS_ALLOW_HTML_NO' => ( !$allowhtml ) ? 'checked="checked"' : '',

		'ALWAYS_ALLOW_SMILIES_YES' => ( $allowsmilies ) ? 'checked="checked"' : '',

		'ALWAYS_ALLOW_SMILIES_NO' => ( !$allowsmilies ) ? 'checked="checked"' : '',

		'ALLOW_AVATAR' => $board_config['allow_avatar_upload'],

		'AVATAR' => $avatar_img,

		'AVATAR_SIZE' => $board_config['avatar_filesize'],

		'LANGUAGE_SELECT' => language_select($user_lang, 'language'),

		'STYLE_SELECT' => style_select($user_style, 'style'),

		'TIMEZONE_SELECT' => tz_select($user_timezone, 'timezone'),

		'DATE_FORMAT' => $user_dateformat,

		'HTML_STATUS' => $html_status,

		'BBCODE_STATUS' => sprintf($bbcode_status, '<a href="' . append_sid("faq.$phpEx?mode=bbcode") . '" target="_phpbbcode">', '</a>'),

		'SMILIES_STATUS' => $smilies_status,



		'L_CURRENT_PASSWORD' => $lang['Current_password'],

		'L_NEW_PASSWORD' => ( $mode == 'register' ) ? $lang['Password'] : $lang['New_password'],

		'L_CONFIRM_PASSWORD' => $lang['Confirm_password'],

		'L_CONFIRM_PASSWORD_EXPLAIN' => ( $mode == 'editprofile' ) ? $lang['Confirm_password_explain'] : '',

		'L_PASSWORD_IF_CHANGED' => ( $mode == 'editprofile' ) ? $lang['password_if_changed'] : '',

		'L_PASSWORD_CONFIRM_IF_CHANGED' => ( $mode == 'editprofile' ) ? $lang['password_confirm_if_changed'] : '',

		'L_SUBMIT' => $lang['Submit'],

		'L_RESET' => $lang['Reset'],

		'L_ICQ_NUMBER' => $lang['ICQ'],

		'L_MESSENGER' => $lang['MSNM'],

		'L_YAHOO' => $lang['YIM'],

		'L_WEBSITE' => $lang['Website'],

		'L_AIM' => $lang['AIM'],

		'L_LOCATION' => $lang['Location'],

		'L_OCCUPATION' => $lang['Occupation'],

		'L_BOARD_LANGUAGE' => $lang['Board_lang'],

		'L_BOARD_STYLE' => $lang['Board_style'],

		'L_TIMEZONE' => $lang['Timezone'],

		'L_DATE_FORMAT' => $lang['Date_format'],

		'L_DATE_FORMAT_EXPLAIN' => $lang['Date_format_explain'],

		'L_YES' => $lang['Yes'],

		'L_NO' => $lang['No'],

		'L_INTERESTS' => $lang['Interests'],

		'L_ALWAYS_ALLOW_SMILIES' => $lang['Always_smile'],

		'L_ALWAYS_ALLOW_BBCODE' => $lang['Always_bbcode'],

		'L_ALWAYS_ALLOW_HTML' => $lang['Always_html'],

		'L_HIDE_USER' => $lang['Hide_user'],

		'L_ALWAYS_ADD_SIGNATURE' => $lang['Always_add_sig'],



		'L_AVATAR_PANEL' => $lang['Avatar_panel'],

		'L_AVATAR_EXPLAIN' => sprintf($lang['Avatar_explain'], $board_config['avatar_max_width'], $board_config['avatar_max_height'], (round($board_config['avatar_filesize'] / 1024))),

		'L_UPLOAD_AVATAR_FILE' => $lang['Upload_Avatar_file'],

		'L_UPLOAD_AVATAR_URL' => $lang['Upload_Avatar_URL'],

		'L_UPLOAD_AVATAR_URL_EXPLAIN' => $lang['Upload_Avatar_URL_explain'],

		'L_AVATAR_GALLERY' => $lang['Select_from_gallery'],

		'L_SHOW_GALLERY' => $lang['View_avatar_gallery'],

		'L_LINK_REMOTE_AVATAR' => $lang['Link_remote_Avatar'],

		'L_LINK_REMOTE_AVATAR_EXPLAIN' => $lang['Link_remote_Avatar_explain'],

		'L_DELETE_AVATAR' => $lang['Delete_Image'],

		'L_CURRENT_IMAGE' => $lang['Current_Image'],



		'L_SIGNATURE' => $lang['Signature'],

		'L_SIGNATURE_EXPLAIN' => sprintf($lang['Signature_explain'], $board_config['max_sig_chars']),

		'L_NOTIFY_ON_REPLY' => $lang['Always_notify'],

		'L_NOTIFY_ON_REPLY_EXPLAIN' => $lang['Always_notify_explain'],

		'L_NOTIFY_ON_PRIVMSG' => $lang['Notify_on_privmsg'],

		'L_POPUP_ON_PRIVMSG' => $lang['Popup_on_privmsg'],

		'L_POPUP_ON_PRIVMSG_EXPLAIN' => $lang['Popup_on_privmsg_explain'],

		'L_PREFERENCES' => $lang['Preferences'],

		'L_PUBLIC_VIEW_EMAIL' => $lang['Public_view_email'],

		'L_ITEMS_REQUIRED' => $lang['Items_required'],

		'L_REGISTRATION_INFO' => $lang['Registration_info'],

		'L_PROFILE_INFO' => $lang['Profile_info'],

		'L_PROFILE_INFO_NOTICE' => $lang['Profile_info_warn'],

		'L_EMAIL_ADDRESS' => $lang['Email_address'],



		'L_CONFIRM_CODE_IMPAIRED'	=> sprintf($lang['Confirm_code_impaired'], '<a href="mailto:' . $board_config['board_email'] . '">', '</a>'), 

		'L_CONFIRM_CODE'			=> $lang['Confirm_code'], 

		'L_CONFIRM_CODE_EXPLAIN'	=> $lang['Confirm_code_explain'], 



		'S_ALLOW_AVATAR_UPLOAD' => $board_config['allow_avatar_upload'],

		'S_ALLOW_AVATAR_LOCAL' => $board_config['allow_avatar_local'],

		'S_ALLOW_AVATAR_REMOTE' => $board_config['allow_avatar_remote'],

		'S_HIDDEN_FIELDS' => $s_hidden_fields,

		'S_FORM_ENCTYPE' => $form_enctype,

		'S_PROFILE_ACTION' => append_sid("profile.$phpEx"))

	);



	//

	// This is another cheat using the block_var capability

	// of the templates to 'fake' an IF...ELSE...ENDIF solution

	// it works well :)

	//

	if ( $mode != 'register' )

	{

		if ( $userdata['user_allowavatar'] && ( $board_config['allow_avatar_upload'] || $board_config['allow_avatar_local'] || $board_config['allow_avatar_remote'] ) )

		{

			$template->assign_block_vars('switch_avatar_block', array() );



			if ( $board_config['allow_avatar_upload'] && file_exists(@phpbb_realpath('./' . $board_config['avatar_path'])) )

			{

				if ( $form_enctype != '' )

				{

					$template->assign_block_vars('switch_avatar_block.switch_avatar_local_upload', array() );

				}

				$template->assign_block_vars('switch_avatar_block.switch_avatar_remote_upload', array() );

			}



			if ( $board_config['allow_avatar_remote'] )

			{

				$template->assign_block_vars('switch_avatar_block.switch_avatar_remote_link', array() );

			}



			if ( $board_config['allow_avatar_local'] && file_exists(@phpbb_realpath('./' . $board_config['avatar_gallery_path'])) )

			{

				$template->assign_block_vars('switch_avatar_block.switch_avatar_local_gallery', array() );

			}

		}

	}

}



$template->pparse('body');



include($phpbb_root_path . 'includes/page_tail.'.$phpEx);



?>

momentum
Registered User
Posts: 1505
Joined: Thu Sep 20, 2007 4:07 am
Location: Melbourne, Australia

Re: [RC1] Registration Auth Code (RAC)

Post by momentum » Thu May 15, 2008 12:38 am

ocrcraydog wrote:Rookie question here. I have read the entire thread and I realize I need to replace: message_die(GENERAL_ERROR, $lang['rac_incorrect']);
within the includes/usercp_register.php file however, I performed a find and cannot locate message_die(GENERAL_ERROR, $lang['rac_incorrect']);
I manually reviewed my code and still cannot locate this. I am using version 2.0.2.3
and here is my code. Am I just totally missing it ? Any help is appreciated.
Nowhere in the MOD does you have to find any "message_die" code. I suggest you re-read the MOD text. There are only two FIND statements for the usercp_register.php file.

Code: Select all

#
#-----[ FIND ]------------------------------------------
# 
	else if ( $mode == 'register' )
	{
and

Code: Select all

#
#-----[ FIND ]------------------------------------------
#
		'L_CONFIRM_CODE_EXPLAIN'	=> $lang['Confirm_code_explain'], 
Craig.
QOTY: phpBB is free, good hosting is not. - robert (Lumpy Burgertushie)

User avatar
turkudweller
Registered User
Posts: 22
Joined: Thu Apr 24, 2008 11:15 am
Contact:

Re: [RC1] Registration Auth Code (RAC)

Post by turkudweller » Thu May 15, 2008 6:40 am

ocrcraydog wrote:Rookie question here. I have read the entire thread and I realize I need to replace: message_die(GENERAL_ERROR, $lang['rac_incorrect']);
within the includes/usercp_register.php file however, I performed a find and cannot locate message_die(GENERAL_ERROR, $lang['rac_incorrect']);
I manually reviewed my code and still cannot locate this. I am using version 2.0.2.3
and here is my code. Am I just totally missing it ? Any help is appreciated.
message_die(GENERAL_ERROR, $lang['rac_incorrect']); was apparently in an earlier version of the RAC MOD and that's why you won't find it on a search of the current downloadable RAC MOD.
phpBB3

ocrcraydog
Registered User
Posts: 3
Joined: Wed May 14, 2008 11:06 pm

Re: [RC1] Registration Auth Code (RAC)

Post by ocrcraydog » Thu May 15, 2008 7:29 pm

Thanks, any suggestions ? I really wish to employ this feature.

User avatar
turkudweller
Registered User
Posts: 22
Joined: Thu Apr 24, 2008 11:15 am
Contact:

Re: [RC1] Registration Auth Code (RAC)

Post by turkudweller » Thu May 15, 2008 8:35 pm

ocrcraydog wrote:Thanks, any suggestions ? I really wish to employ this feature.
I think you first need to explain at which stage you're having difficulty.

Page 1 of this thread has the download for the RAC MOD.
The MOD instructions are contained in the above download.
You need to find 3 files in your forum:
includes/usercp_register.php
language/lang_english/lang_main.php
templates/subSilver/profile_add_body.tpl

(It could be more than 3 depending on how many templates you're using so file profile_add_body.tpl needs to be changed in all of them)
And then make the small code changes which are in the RAC MOD you downloaded.
phpBB3

Post Reply

Return to “[2.0.x] MODs in Development”