Paste
Pasted as PHP by registered user atmaca ( 4 months ago )
// ############################### start register ###############################
if ($_REQUEST['do'] == 'register')
{
$vbulletin->input->clean_array_gpc('p', array(
'agree' => TYPE_BOOL,
'year' => TYPE_UINT,
'month' => TYPE_UINT,
'day' => TYPE_UINT,
'options' => TYPE_ARRAY_BOOL,
'who' => TYPE_NOHTML,
));
// Variables that are used in templates
$agree =& $vbulletin->GPC['agree'];
$year =& $vbulletin->GPC['year'];
$month =& $vbulletin->GPC['month'];
$day =& $vbulletin->GPC['day'];
$url = $vbulletin->url;
if (!$vbulletin->GPC['agree'])
{
eval(standard_error(fetch_error('register_not_agreed', $vbulletin->options['forumhome'], $vbulletin->session->vars['sessionurl_q'])));
}
if (!$vbulletin->options['allowregistration'])
{
eval(standard_error(fetch_error('noregister')));
}
if ($vbulletin->userinfo['userid'] AND !$vbulletin->options['allowmultiregs'])
{
eval(standard_error(fetch_error('alreadyregistered', $vbulletin->userinfo['username'], $vbulletin->session->vars['sessionurl'])));
}
($hook = vBulletinHook::fetch_hook('register_form_start')) ? eval($hook) : false;
if ($errorlist)
{
$checkedoff['adminemail'] = iif($vbulletin->GPC['options']['adminemail'], 'checked="checked"');
$checkedoff['showemail'] = iif($vbulletin->GPC['options']['showemail'], 'checked="checked"');
}
else
{
$checkedoff['adminemail'] = iif(bitwise($vbulletin->bf_misc_regoptions['adminemail'], $vbulletin->options['defaultregoptions']), 'checked="checked"');
$checkedoff['showemail'] = iif(bitwise($vbulletin->bf_misc_regoptions['receiveemail'], $vbulletin->options['defaultregoptions']), 'checked="checked"');
}
if ($vbulletin->options['reqbirthday'] AND !$vbulletin->options['usecoppa'])
{
$show['birthday'] = true;
$monthselected[str_pad($vbulletin->GPC['month'], 2, '0', STR_PAD_LEFT)] = 'selected="selected"';
$dayselected[str_pad($vbulletin->GPC['day'], 2, '0', STR_PAD_LEFT)] = 'selected="selected"';
if ($year == 0)
{
$year = '';
}
// Default Birthday Privacy option to show all
if (empty($errorlist))
{
$sbselected = array(2 => 'selected="selected"');
}
eval('$birthdayfields = "' . fetch_template('modifyprofile_birthday') . '";');
}
else
{
$show['birthday'] = false;
$birthdayfields = '';
}
$htmlonoff = ($vbulletin->options['allowhtml'] ? $vbphrase['on'] : $vbphrase['off']);
$bbcodeonoff = ($vbulletin->options['allowbbcode'] ? $vbphrase['on'] : $vbphrase['off']);
$imgcodeonoff = ($vbulletin->options['allowbbimagecode'] ? $vbphrase['on'] : $vbphrase['off']);
$smiliesonoff = ($vbulletin->options['allowsmilies'] ? $vbphrase['on'] : $vbphrase['off']);
// human verification
if (fetch_require_hvcheck('register'))
{
require_once(DIR . '/includes/class_humanverify.php');
$verify = vB_HumanVerify::fetch_library($vbulletin);
$human_verify = $verify->output_token();
}
// Referrer
if ($vbulletin->options['usereferrer'] AND !$vbulletin->userinfo['userid'])
{
exec_switch_bg();
if ($errorlist)
{
$referrername = $vbulletin->GPC['referrername'];
}
else if ($vbulletin->GPC[COOKIE_PREFIX . 'referrerid'])
{
if ($referrername = $db->query_first_slave("SELECT username FROM " . TABLE_PREFIX . "user WHERE userid = " . $vbulletin->GPC[COOKIE_PREFIX . 'referrerid']))
{
$referrername = $referrername['username'];
}
}
$show['referrer'] = true;
}
else
{
$show['referrer'] = false;
}
// get extra profile fields
if ($vbulletin->GPC['who'] != 'adult')
{
$bgclass1 = 'alt1';
}
$customfields_other = '';
$customfields_profile = '';
$customfields_option = '';
$profilefields = $db->query_read_slave("
SELECT *
FROM " . TABLE_PREFIX . "profilefield
WHERE editable > 0 AND required <> 0
ORDER BY displayorder
");
while ($profilefield = $db->fetch_array($profilefields))
{
$profilefieldname = "field$profilefield[profilefieldid]";
$optionalname = $profilefieldname . '_opt';
$optionalfield = '';
$optional = '';
$profilefield['title'] = $vbphrase[$profilefieldname . '_title'];
$profilefield['description'] = $vbphrase[$profilefieldname . '_desc'];
if (!$errorlist)
{
unset($vbulletin->userinfo["$profilefieldname"]);
}
elseif (isset($vbulletin->GPC['userfield']["$profilefieldname"]))
{
$vbulletin->userinfo["$profilefieldname"] = $vbulletin->GPC['userfield']["$profilefieldname"];
}
$custom_field_holder = '';
if ($profilefield['type'] == 'input')
{
if ($profilefield['data'] !== '')
{
$vbulletin->userinfo["$profilefieldname"] = $profilefield['data'];
}
else
{
$vbulletin->userinfo["$profilefieldname"] = htmlspecialchars_uni($vbulletin->userinfo["$profilefieldname"]);
}
eval('$custom_field_holder = "' . fetch_template('userfield_textbox') . '";');
}
else if ($profilefield['type'] == 'textarea')
{
if ($profilefield['data'] !== '')
{
$vbulletin->userinfo["$profilefieldname"] = $profilefield['data'];
}
else
{
$vbulletin->userinfo["$profilefieldname"] = htmlspecialchars_uni($vbulletin->userinfo["$profilefieldname"]);
}
eval('$custom_field_holder = "' . fetch_template('userfield_textarea') . '";');
}
else if ($profilefield['type'] == 'select')
{
$data = vb_unserialize($profilefield['data']);
$selectbits = '';
foreach ($data AS $key => $val)
{
$key++;
$selected = '';
if (isset($vbulletin->userinfo["$profilefieldname"]))
{
if (trim($val) == $vbulletin->userinfo["$profilefieldname"])
{
$selected = 'selected="selected"';
$foundselect = 1;
}
}
else if ($profilefield['def'] AND $key == 1)
{
$selected = 'selected="selected"';
$foundselect = 1;
}
eval('$selectbits .= "' . fetch_template('userfield_select_option') . '";');
}
if ($profilefield['optional'])
{
if (!$foundselect AND $vbulletin->userinfo["$profilefieldname"])
{
$optional = htmlspecialchars_uni($vbulletin->userinfo["$profilefieldname"]);
}
eval('$optionalfield = "' . fetch_template('userfield_optional_input') . '";');
}
if (!$foundselect)
{
$selected = 'selected="selected"';
}
else
{
$selected = '';
}
$show['noemptyoption'] = iif($profilefield['def'] != 2, true, false);
eval('$custom_field_holder = "' . fetch_template('userfield_select') . '";');
}
else if ($profilefield['type'] == 'radio')
{
$data = vb_unserialize($profilefield['data']);
$radiobits = '';
$foundfield = 0;
$perline = 0;
$unclosedtr = true;
foreach ($data AS $key => $val)
{
$key++;
$checked = '';
if (!$vbulletin->userinfo["$profilefieldname"] AND $key == 1 AND $profilefield['def'] == 1)
{
$checked = 'checked="checked"';
}
else if (trim($val) == $vbulletin->userinfo["$profilefieldname"])
{
$checked = 'checked="checked"';
$foundfield = 1;
}
if ($perline == 0)
{
$radiobits .= '<tr>';
}
eval('$radiobits .= "' . fetch_template('userfield_radio_option') . '";');
$perline++;
if ($profilefield['perline'] > 0 AND $perline >= $profilefield['perline'])
{
$radiobits .= '</tr>';
$perline = 0;
$unclosedtr = false;
}
}
if ($unclosedtr)
{
$radiobits .= '</tr>';
}
if ($profilefield['optional'])
{
if (!$foundfield AND $vbulletin->userinfo["$profilefieldname"])
{
$optional = htmlspecialchars_uni($vbulletin->userinfo["$profilefieldname"]);
}
eval('$optionalfield = "' . fetch_template('userfield_optional_input') . '";');
}
eval('$custom_field_holder = "' . fetch_template('userfield_radio') . '";');
}
else if ($profilefield['type'] == 'checkbox')
{
$data = vb_unserialize($profilefield['data']);
$radiobits = '';
$perline = 0;
$unclosedtr = true;
foreach ($data AS $key => $val)
{
if ($vbulletin->userinfo["$profilefieldname"] & pow(2,$key))
{
$checked = 'checked="checked"';
}
else
{
$checked = '';
}
$key++;
if ($perline == 0)
{
$radiobits .= '<tr>';
}
eval('$radiobits .= "' . fetch_template('userfield_checkbox_option') . '";');
$perline++;
if ($profilefield['perline'] > 0 AND $perline >= $profilefield['perline'])
{
$radiobits .= '</tr>';
$perline = 0;
$unclosedtr = false;
}
}
if ($unclosedtr)
{
$radiobits .= '</tr>';
}
eval('$custom_field_holder = "' . fetch_template('userfield_radio') . '";');
}
else if ($profilefield['type'] == 'select_multiple')
{
$data = vb_unserialize($profilefield['data']);
$selectbits = '';
$selected = '';
if ($profilefield['height'] == 0)
{
$profilefield['height'] = count($data);
}
foreach ($data AS $key => $val)
{
if ($vbulletin->userinfo["$profilefieldname"] & pow(2, $key))
{
$selected = 'selected="selected"';
}
else
{
$selected = '';
}
$key++;
eval('$selectbits .= "' . fetch_template('userfield_select_option') . '";');
}
eval('$custom_field_holder = "' . fetch_template('userfield_select_multiple') . '";');
}
if ($profilefield['required'] == 2)
{
// not required to be filled in but still show
$profile_variable =& $customfields_other;
}
else // required to be filled in
{
if ($profilefield['form'])
{
$profile_variable =& $customfields_option;
}
else
{
$profile_variable =& $customfields_profile;
}
}
eval('$profile_variable .= "' . fetch_template('userfield_wrapper') . '";');
}
if (!$vbulletin->GPC['who'])
{
$vbulletin->GPC['who'] = iif($vbulletin->GPC['coppauser'], 'coppa', 'adult');
}
$show['coppa'] = $usecoppa = ($vbulletin->GPC['who'] == 'adult' OR !$vbulletin->options['usecoppa']) ? false : true;
$show['customfields_profile'] = ($customfields_profile OR $show['birthday']) ? true : false;
$show['customfields_option'] = ($customfields_option) ? true : false;
$show['customfields_other'] = ($customfields_other) ? true : false;
$show['email'] = ($vbulletin->options['enableemail'] AND $vbulletin->options['displayemails']) ? true : false;
$vbulletin->input->clean_array_gpc('p', array(
'timezoneoffset' => TYPE_NUM
));
// where do we send in timezoneoffset?
if ($vbulletin->GPC['timezoneoffset'])
{
$timezonesel = $vbulletin->GPC['timezoneoffset'];
}
else
{
$timezonesel = $vbulletin->options['timeoffset'];
}
require_once(DIR . '/includes/functions_misc.php');
$timezoneoptions = '';
foreach (fetch_timezone() AS $optionvalue => $timezonephrase)
{
$optiontitle = $vbphrase["$timezonephrase"];
$optionselected = iif($optionvalue == $timezonesel, 'selected="selected"', '');
eval('$timezoneoptions .= "' . fetch_template('option') . '";');
}
eval('$timezoneoptions = "' . fetch_template('modifyoptions_timezone') . '";');
($hook = vBulletinHook::fetch_hook('register_form_complete')) ? eval($hook) : false;
eval('print_output("' . fetch_template('register') . '");');
}
// ############################### start activate form ###############################
if ($vbulletin->GPC['a'] == 'ver')
{
// get username and password
if (!$vbulletin->userinfo['userid'])
{
$vbulletin->userinfo['username'] = '';
}
if ($permissions['forumpermissions'] & $vbulletin->bf_ugp_forumpermissions['canview'])
{
$navbits = construct_navbits(array('' => $vbphrase['activate_your_account']));
eval('$navbar = "' . fetch_template('navbar') . '";');
}
else
{
$navbar = '';
}
($hook = vBulletinHook::fetch_hook('register_activateform')) ? eval($hook) : false;
eval('print_output("' . fetch_template('activateform') . '");');
}
// ############################### start activate ###############################
if ($_REQUEST['do'] == 'activate')
{
$vbulletin->input->clean_array_gpc('r', array(
'username' => TYPE_NOHTML,
'activateid' => TYPE_STR,
// These three are cleaned so that they will exist and not be overwritten in the next step
'u' => TYPE_UINT,
'a' => TYPE_NOHTML,
'i' => TYPE_STR,
));
if ($userinfo = $db->query_first("SELECT userid FROM " . TABLE_PREFIX . "user WHERE username='" . $db->escape_string($vbulletin->GPC['username']) . "'"))
{
$vbulletin->GPC['u'] = $userinfo['userid'];
$vbulletin->GPC['a'] = 'act';
$vbulletin->GPC['i'] = $vbulletin->GPC['activateid'];
}
else
{
eval(standard_error(fetch_error('badlogin', $vbulletin->options['bburl'], $vbulletin->session->vars['sessionurl'], $strikes)));
}
}
if ($vbulletin->GPC['a'] == 'act')
{
$vbulletin->input->clean_array_gpc('r', array(
'u' => TYPE_UINT,
'i' => TYPE_STR,
));
$userinfo = verify_id('user', $vbulletin->GPC['u'], 1, 1);
($hook = vBulletinHook::fetch_hook('register_activate_start')) ? eval($hook) : false;
if ($userinfo['usergroupid'] == 3)
{
// check valid activation id
$user = $db->query_first("
SELECT activationid, usergroupid, emailchange
FROM " . TABLE_PREFIX . "useractivation
WHERE activationid = '" . $db->escape_string($vbulletin->GPC['i']) . "'
AND userid = $userinfo[userid]
AND type = 0
");
if (!$user OR $vbulletin->GPC['i'] != $user['activationid'])
{
// send email again
eval(standard_error(fetch_error('invalidactivateid', $vbulletin->session->vars['sessionurl'], $vbulletin->options['contactuslink'])));
}
// delete activationid
$db->query_write("DELETE FROM " . TABLE_PREFIX . "useractivation WHERE userid=$userinfo[userid] AND type=0");
/*
This shouldn't be needed any more since we handle this during registration
if ($userinfo['coppauser'] OR ($vbulletin->options['moderatenewmembers'] AND !$userinfo['posts']))
{
// put user in moderated group
$user['usergroupid'] = 4;
}*/
if (empty($user['usergroupid']))
{
$user['usergroupid'] = 2; // sanity check
}
// ### DO THE UG/TITLE UPDATE ###
$getusergroupid = iif($userinfo['displaygroupid'] != $userinfo['usergroupid'], $userinfo['displaygroupid'], $user['usergroupid']);
$user_usergroup =& $vbulletin->usergroupcache["$user[usergroupid]"];
$display_usergroup =& $vbulletin->usergroupcache["$getusergroupid"];
// init user data manager
$userdata = datamanager_init('User', $vbulletin, ERRTYPE_STANDARD);
$userdata->set_existing($userinfo);
$userdata->set('usergroupid', $user['usergroupid']);
$userdata->set_usertitle(
$user['customtitle'] ? $user['usertitle'] : '',
false,
$display_usergroup,
($user_usergroup['genericpermissions'] & $vbulletin->bf_ugp_genericpermissions['canusecustomtitle']) ? true : false,
($user_usergroup['genericpermissions'] & $vbulletin->bf_ugp_genericpermissions['cancontrolpanel']) ? true : false
);
require_once(DIR . '/includes/functions_ranks.php');
if ($user['userid'] == $vbulletin->userinfo['userid'])
{
$vbulletin->userinfo['usergroupid'] = $user['usergroupid'];
$vbulletin->userinfo['displaygroupid'] = $user['usergroupid'];
}
// see 3.6.x bug #176
//$userinfo['usergroupid'] = $user['usergroupid'];
($hook = vBulletinHook::fetch_hook('register_activate_process')) ? eval($hook) : false;
if ($userinfo['coppauser'] OR ($vbulletin->options['moderatenewmembers'] AND !$userinfo['posts']))
{
// put user in moderated group
$userdata->save();
eval(standard_error(fetch_error('moderateuser', $userinfo['username'], $vbulletin->options['forumhome'], $vbulletin->session->vars['sessionurl_q']), '', false));
}
else
{
// activate account
$userdata->save();
$username = unhtmlspecialchars($userinfo['username']);
if (!$user['emailchange'])
{
if ($vbulletin->options['welcomemail'])
{
eval(fetch_email_phrases('welcomemail'));
vbmail($userinfo['email'], $subject, $message);
}
$userdata->send_welcomepm();
}
if ($user['emailchange'])
{
eval(standard_error(fetch_error('emailchanged', htmlspecialchars_uni($userinfo['email'])), '', false));
}
else
{
eval(standard_error(fetch_error('registration_complete', $userinfo['username'], $vbulletin->session->vars['sessionurl'], $vbulletin->options['bburl'] . '/' . $vbulletin->options['forumhome'] . '.php'), '', false));
}
}
}
else
{
if ($userinfo['usergroupid'] == 4)
{
// In Moderation Queue
eval(standard_error(fetch_error('activate_moderation'), '', false));
}
else
{
// Already activated
eval(standard_error(fetch_error('activate_wrongusergroup')));
}
}
}
Revise this Paste