/** * Option: Change Name * Change the name from character * * @return void */ public function ChangeName() { if ($_GET['write'] == true) { if (empty($_POST['NewName'])) { setResult(showMessage($this->lang->words['UserPanel']['ChangeName']['Messages']['FieldVoid'], 1)); } elseif (empty($_POST['Captcha'])) { setResult(showMessage($this->lang->words['Global']['Captcha']['Messages']['Void'], 1)); } elseif (!CTM_Captcha::Check($_POST['Captcha'])) { setResult(showMessage($this->lang->words['Global']['Captcha']['Messages']['Invalid'], 2)); } elseif (strlen($_POST['NewName']) < 4) { setResult(showMessage($this->lang->words['UserPanel']['ChangeName']['Messages']['ErrorLength'], 2)); } elseif (eregi("[^a-zA-Z0-9_!=?&-]", $_POST['NewName'])) { setResult(showMessage($this->lang->words['UserPanel']['ChangeName']['Messages']['ErrorWords'], 2)); } else { $bad_syntax = FALSE; foreach ($this->settings['USERPANEL']['CHARACTER']['CHANGE_NAME']['BAD_SYNTAX'] as $badSyntax) { if (stristr($_POST['NewName'], $badSyntax)) { $bad_syntax = TRUE; break; } } if ($bad_syntax == true) { setResult(showMessage($this->lang->words['UserPanel']['ChangeName']['Messages']['ErrorSyntax'], 2)); } else { $this->DB->Arguments($this->character); $this->DB->Query("SELECT Name FROM " . MUGEN_CORE . ".dbo.GuildMember WHERE Name = '%s'", $find_guild); if ($this->DB->CountRows($find_guild) > 0) { setResult(showMessage($this->lang->words['UserPanel']['ChangeName']['Messages']['ErrorGuild'], 2)); } else { $change_name_result = $this->MuLib('Member')->RenameCharacter($this->character, USER_ACCOUNT, $_POST['NewName']); switch ($change_name_result) { case "NAME_IN_USE": setResult(showMessage($this->lang->words['UserPanel']['ChangeName']['Messages']['ErrorName'], 2)); break; case "ALL_OK": $temp_name = $this->character; $this->character = $_POST['NewName']; $_SESSION['USERCP_CHARACTER_SELECTED'] = $_POST['NewName']; $GLOBALS['userpanel']['character'] = $_POST['NewName']; CTM_Captcha::gerateCaptchaText(); $this->WriteLog(array("option" => "Change Name", "character" => true, "data" => array("[Before] Name: " . $temp_name, "[After] Name: " . $this->character))); $string = showMessage(sprintf($this->lang->words['UserPanel']['ChangeName']['Messages']['Success'], $_POST['NewName']), 3); if (loadIsAjax() == true) { $string .= "\n<script>\$('#cpCharSelected').val('" . $_POST['NewName'] . "');\n"; $string .= "\$('#currentCharName').val('" . $_POST['NewName'] . "');</script>"; } setResult($string); break; case "ID_ERROR": $this->WriteLog(array("option" => "Change Name", "character" => true, "data" => array("Error #" . CoreVariables::ErrorsCode()->CharGameIDFail))); setResult(showMessage(sprintf($this->lang->words['UserPanel']['ChangeName']['Messages']['GeneralError'], CoreVariables::ErrorsCode()->CharGameIDFail), 2)); break; } } } } } }
/** * Register Account * * @return void */ private function loadRegisterAccount() { if ($_GET['write'] == true) { if ($_POST['Terms'] != 1) { setResult(showMessage($this->lang->words['Register']['Register']['Messages']['CheckTerms'], 2)); } else { $error = NULL; $finishRegister = FALSE; $PID = $this->settings['REGISTER']['REGISTER_PID']; /* Variables to lower */ $_POST['Login'] = strtolower($_POST['Login']); $_POST['Mail'] = strtolower($_POST['Mail']); $_POST['CMail'] = strtolower($_POST['CMail']); /* Check Void Fields */ if (empty($_POST['Login'])) { $error .= "» " . $this->lang->words['Register']['Register']['Messages']['NULL_Login'] . "<br />\n"; } if (empty($_POST['Password'])) { $error .= "» " . $this->lang->words['Register']['Register']['Messages']['NULL_Password'] . "<br />\n"; } if (empty($_POST['CPassword'])) { $error .= "» " . $this->lang->words['Register']['Register']['Messages']['NULL_CPassword'] . "<br />\n"; } if (empty($_POST['Mail'])) { $error .= "» " . $this->lang->words['Register']['Register']['Messages']['NULL_Mail'] . "<br />\n"; } if (empty($_POST['CMail'])) { $error .= "» " . $this->lang->words['Register']['Register']['Messages']['NULL_CMail'] . "<br />\n"; } if (empty($_POST['PersonalID']) && $PID) { $error .= "» " . $this->lang->words['Register']['Register']['Messages']['NULL_PID'] . "<br />\n"; } if (empty($_POST['Name'])) { $error .= "» " . $this->lang->words['Register']['Register']['Messages']['NULL_Name'] . "<br />\n"; } if (empty($_POST['Phone'])) { $error .= "» " . $this->lang->words['Register']['Register']['Messages']['NULL_Phone'] . "<br />\n"; } if (empty($_POST['Sex'])) { $error .= "» " . $this->lang->words['Register']['Register']['Messages']['NULL_Sex'] . "<br />\n"; } if (empty($_POST['BirthDay'])) { $error .= "» " . $this->lang->words['Register']['Register']['Messages']['NULL_BirthDay'] . "<br />\n"; } if (empty($_POST['BirthMonth'])) { $error .= "» " . $this->lang->words['Register']['Register']['Messages']['NULL_BirthMonth'] . "<br />\n"; } if (empty($_POST['BirthYear'])) { $error .= "» " . $this->lang->words['Register']['Register']['Messages']['NULL_BirthYear'] . "<br />\n"; } if (empty($_POST['SecureQuestion'])) { $error .= "» " . $this->lang->words['Register']['Register']['Messages']['NULL_SecureQuestion'] . "<br />\n"; } if (empty($_POST['SecureAnswer'])) { $error .= "» " . $this->lang->words['Register']['Register']['Messages']['NULL_SecureAnswer'] . "<br />\n"; } if (empty($_POST['Captcha'])) { $error .= "» " . $this->lang->words['Global']['Captcha']['Messages']['Void']; } if (strlen($error) > 0) { return setResult(showMessage($this->lang->words['Register']['Register']['Messages']['NULL_Message'] . "<br /><br />" . $error, 1)); } /* Check Error Fields */ if (!CTM_Captcha::Check($_POST['Captcha'])) { $error .= "» " . $this->lang->words['Global']['Captcha']['Messages']['Invalid'] . "<br />\n"; } if (strlen($_POST['Login']) <= 3 || strlen($_POST['Login']) > 10) { $error .= "» " . $this->lang->words['Register']['Register']['Messages']['Error_LoginLength'] . "<br />\n"; } if (strlen($_POST['Password']) <= 3 || strlen($_POST['Password']) > 10) { $error .= "» " . $this->lang->words['Register']['Register']['Messages']['Error_PassLength'] . "<br />\n"; } if (strlen($_POST['PersonalID']) != 7 && $PID) { $error .= "» " . $this->lang->words['Register']['Register']['Messages']['Error_PIDLength'] . "<br />\n"; } if (eregi("[^a-zA-Z0-9_!=?&-]", $_POST['Login'])) { $error .= "» " . $this->lang->words['Register']['Register']['Messages']['Error_LoginWords'] . "<br />\n"; } if (eregi("[^a-zA-Z0-9_!=?&-]", $_POST['Password'])) { $error .= "» " . $this->lang->words['Register']['Register']['Messages']['Error_PassWords'] . "<br />\n"; } if (!CTM_Text::checkMail($_POST['Mail'])) { $error .= "» " . $this->lang->words['Register']['Register']['Messages']['Error_MailWords'] . "<br />\n"; } if (!is_numeric($_POST['PersonalID']) && $PID) { $error .= "» " . $this->lang->words['Register']['Register']['Messages']['Error_PIDWords'] . "<br />\n"; } if (strcmp($_POST['Password'], $_POST['CPassword']) != 0) { $error .= "» " . $this->lang->words['Register']['Register']['Messages']['Error_ConfirmPass'] . "<br />\n"; } if (strcmp($_POST['Mail'], $_POST['CMail']) != 0) { $error .= "» " . $this->lang->words['Register']['Register']['Messages']['Error_ConfirmMail'] . "<br />\n"; } $this->DB->Arguments($_POST['Login']); $this->DB->Query("SELECT 1 FROM " . MUACC_CORE . ".dbo.MEMB_INFO WHERE LOWER(memb___id) = '%s'", $checkLoginQ); if ($this->DB->CountRows($checkLoginQ) > 0) { $error .= "» " . $this->lang->words['Register']['Register']['Messages']['Error_LoginExists'] . "<br />\n"; } $this->DB->Arguments($_POST['Mail']); $this->DB->Query("SELECT 1 FROM " . MUACC_CORE . ".dbo.MEMB_INFO WHERE LOWER(mail_addr) = '%s'", $checkMailQ); if ($this->DB->CountRows($checkMailQ) > 0) { $error .= "» " . $this->lang->words['Register']['Register']['Messages']['Error_MailExists'] . "<br />\n"; } if (strlen($error) > 0) { return setResult(showMessage($this->lang->words['Register']['Register']['Messages']['Error_Message'] . "<br /><br />" . $error, 2)); } /* Finish and save fields values */ CTM_MuOnline::Lib('Member')->CreateAccount(array("Name" => utf8_encode($_POST['Name']), "Login" => $_POST['Login'], "Password" => $_POST['Password'], "Mail" => $_POST['Mail'], "PID" => $PID ? $_POST['PersonalID'] : $this->settings['REGISTER']['DEFAULT_PID'], "Phone" => $_POST['Phone'], "Sex" => $_POST['Sex'], "Birth" => $_POST['BirthDay'] . "/" . $_POST['BirthMonth'] . "/" . $_POST['BirthYear'], "SecureQuestion" => array(utf8_encode($_POST['SecureQuestion']), utf8_encode($_POST['SecureAnswer'])), "Lock" => $this->settings['REGISTER']['CONFIRM_MAIL'] == true ? 1 : 0, "Status" => $this->settings['REGISTER']['CONFIRM_MAIL'] == true ? 1 : 0)); $bonusCount = 0; $VIPBonus = FALSE; $coinBonus = FALSE; $vaultBonus = FALSE; if ($this->settings['REGISTER']['VIP']['SWITCH'] == TRUE && $_POST['VIPBonus'] == 1) { $this->DB->Arguments($this->settings['REGISTER']['VIP']['TYPE'], $this->settings['REGISTER']['VIP']['TIME'], time(), $_POST['Login']); $this->DB->Query("UPDATE " . VIP_CORE . ".dbo." . VIP_TABLE . " SET " . VIP_COLUMN . " = %d, " . VIP_TIME . " = %d, " . VIP_BEGIN . " = %d WHERE " . VIP_LOGIN . " = '%s'"); $VIPBonus = TRUE; $bonusCount++; } if ($this->settings['REGISTER']['COIN']['SWITCH'] == true && $_POST['CoinBonus'] == 1) { $column = constant("COIN_COLUMN_" . $this->settings['REGISTER']['COIN']['TYPE']); $this->DB->Arguments($column, $this->settings['REGISTER']['COIN']['NUMBER'], $_POST['Login']); $this->DB->Query("UPDATE " . COIN_CORE . ".dbo." . COIN_TABLE . " SET %s = %d WHERE " . COIN_LOGIN . "= '%s'"); $coinBonus = TRUE; $bonusCount++; } if ($this->settings['REGISTER']['VAULT_BONUS']['SWITCH'] == true && $_POST['VaultBonus'] != NULL) { if (array_key_exists($_POST['VaultBonus'], $this->settings['REGISTER']['VAULT_BONUS']['OPTIONS'])) { $this->loadVaultBonus($_POST['VaultBonus'], $_POST['Login']); $vaultBonus = TRUE; $bonusCount++; } } if ($this->settings['REGISTER']['CONFIRM_MAIL'] == true) { $dechex = create_function("\$integer", "return str_pad(dechex(\$integer >= 255 ? 255 : \$integer), 2, 0, STR_PAD_LEFT);"); $currentId = $this->DB->GetCurrentId("CTM_ValidingAccounts") + 1; $confirmCode = $dechex($currentId); $confirmCode .= ":" . $dechex(0xff - strlen($_POST['Account']) + mt_rand(0, 50)); $confirmCode .= ":" . $dechex(strlen($_POST['Mail']) + mt_rand(0, 50)); $confirmCode .= ":" . $dechex(mt_rand(0, 150)); $confirmCode .= ":" . $dechex(mt_rand(151, 255)); $confirmCode .= ":" . $dechex(0xff / intval(date("d")) + intval(date("H")) + intval(date("m")) + intval(date("s")) + mt_rand(0, 50)); $confirmCode .= ":" . $dechex(0xff / intval(date("m")) + intval(date("H")) + intval(date("m")) + intval(date("s")) + mt_rand(0, 50)); $confirmCode .= ":" . $dechex(intval(date("Y")) / 0xff + intval(date("H")) + intval(date("m")) + intval(date("s")) + mt_rand(0, 50)); $confirmCode = strtoupper($confirmCode); $link = gerateFullLink("?/register/confirm"); $this->DB->Arguments($_POST['Login'], utf8_encode($_POST['Name']), $_POST['Mail'], $confirmCode); $this->DB->Query("INSERT INTO dbo.CTM_ValidatingAccounts (Account,Name,Mail,ConfirmCode) VALUES ('%s','%s','%s','%s')"); $this->email->arguments = array("NAME" => htmlEncode($_POST['Name']), "LOGIN" => $_POST['Login'], "EMAIL" => $_POST['Mail'], "SECURE_QUESTION" => htmlEncode($_POST['SecureQuestion']), "SECURE_ANSWER" => htmlEncode($_POST['SecureAnswer']), "VALIDATION_LINK" => $currentId, "VALIDATION_CODE" => $confirmCode, "SYSTEM_LINK" => $link); $this->email->LoadTemplate("RegisterNewMember"); $this->email->GetMailContent($mail); $this->mailer->AddAddress($_POST['Mail'], $_POST['Name']); $this->mailer->SetSubject($mail['subject']); $this->mailer->SetBody($mail['content']); if ($this->mailer->SendMail() == true) { $finishRegister = TRUE; $this->lang->setArguments("Register,Register,Messages,Success,NotCompleted", $_POST['Mail']); $success = "<strong>" . $this->lang->words['Register']['Register']['Messages']['Success'][1] . "</strong><br /><br />\n"; $success .= $this->lang->words['Register']['Register']['Messages']['Success']['NotCompleted']; } else { CTM_MuOnline::Lib('Member')->DeleteAccount($_POST['Login']); $this->lang->setArguments("Register,Register,Messages,Error_SendMail", CoreVariables::ErrorsCode()->SendMailError); setResult(showMessage($this->lang->words['Register']['Register']['Messages']['Error_SendMail'], 2)); } } else { $finishRegister = TRUE; $success = "<strong>" . $this->lang->words['Register']['Register']['Messages']['Success'][1] . "</strong><br /><br />\n"; $success .= "» " . $this->lang->words['Register']['Register']['Messages']['Success'][2] . "<strong> " . htmlEncode($_POST['Name']) . "</strong><br />\n"; $success .= "» " . $this->lang->words['Register']['Register']['Messages']['Success'][3] . "<strong> " . strtolower($_POST['Login']) . "</strong><br />\n"; $success .= "» " . $this->lang->words['Register']['Register']['Messages']['Success'][4] . "<strong> " . $_POST['Mail'] . "</strong>\n"; } if ($finishRegister == true) { if ($bonusCount > 0) { $success .= "<br /><br />\n"; $success .= "<strong>" . $this->lang->words['Register']['Register']['Messages']['Success'][5] . "</strong><br /><br />\n"; if ($VIPBonus) { $this->lang->setTags("Register,Register,Messages,Success,6", $this->settings['REGISTER']['VIP']['TIME'], constant("VIP_NAME_" . $this->settings['REGISTER']['VIP']['TYPE'])); $success .= "» " . $this->lang->words['Register']['Register']['Messages']['Success'][6] . "<br />\n"; } if ($coinBonus) { $this->lang->setTags("Register,Register,Messages,Success,7", $this->settings['REGISTER']['COIN']['NUMBER'], constant("COIN_NAME_" . $this->settings['REGISTER']['COIN']['TYPE'])); $success .= "» " . $this->lang->words['Register']['Register']['Messages']['Success'][7] . "<br />\n"; } if ($vaultBonus) { $success .= "» " . htmlEncode($this->settings['REGISTER']['VAULT_BONUS']['OPTIONS'][$_POST['VaultBonus']]) . "<br />\n"; } } $success .= "<br />\n"; $success .= $this->lang->words['Register']['Register']['Messages']['Success'][8]; CTM_Captcha::gerateCaptchaText(); setResult(showMessage($success, 3)); } } } }