/** * 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; } } } } } }
//**********************************************// // -> Effect Web // // -> Powered by Erick-Master // // -> CTM TEAM Softwares // // -> www.ctmts.com.br // //**********************************************// define("SESSION_NAME", "df5A279HCERUxcpA"); ob_start(); session_name(SESSION_NAME); session_start(); if (isset($_GET["public"])) { switch ($_GET["public"]) { case "captcha": require_once "modules/classes/CTM_Captcha.class.php"; $CTM_Captcha = new CTM_Captcha(); $CTM_Captcha->Captcha_Image(130, 25); exit; break; case "logoGuild": require_once "modules/classes/CTM_LogoGuild.class.php"; $CTM_LogoGuild = new CTM_LogoGuild(); $CTM_LogoGuild->ShowLogo(); exit; break; } } require_once "modules/Settings.php"; require_once "modules/load.inc.php"; $CTM_General = new CTM_General(); $CTM_CronJob = new CTM_CronJob();
private function Change_Nick() { global $CTM_Template, $CTM_Crypt, $CTM, $_Panel, $_Ranking; $CTM_Captcha = new CTM_Captcha(); $Character = $_SESSION["Web_ManageChar"]; $CTM_Template->Set("Manage_Character", $Character); $CTM_Template->Set("Captcha_Image", "?public=captcha"); if ($_GET["cmd"] == TRUE) { $Nick = $_POST["Nick"]; $Captcha = $_POST["Captcha"]; $Check_Nick = $this->NumQuery("SELECT Name FROM " . MuGen_DB . ".dbo.Character WHERE Name='{$Nick}'"); $Check_Img = $this->FetchQuery("SELECT {$CTM[C][0]} FROM " . MuGen_DB . ".dbo.Character WHERE Name='{$Character}' and AccountID='" . $this->Login . "'"); if ($_Panel["Char"]["Change_Nick"]["CheckGuild"] == 1) { $Check_Guild = $this->NumQuery("SELECT * FROM " . MuGen_DB . ".dbo.GuildMember WHERE Name='" . $Character . "'"); } if (empty($Nick)) { $this->Error[0] .= "» Novo Nick<br />\n"; } if (empty($Captcha)) { $this->Error[0] .= "» Codigo de Segurança<br />\n"; } if (strlen($Nick) < 4) { $this->Error[1] .= "» Minimo 4 Caracteres<br />\n"; } if (strlen($Nick) > 10) { $this->Error[1] .= "» Maximo 10 Caracteres<br />\n"; } if (eregi("[^a-zA-Z0-9_!=?&-]", $Nick)) { $this->Error[1] .= "» Caracteres inválidos<br />\n"; } if ($Check_Nick > 0) { $this->Error[1] .= "» O Nick informado já existe<br />\n"; } if ($_Panel["Char"]["Change_Nick"]["CheckGuild"] == 1) { if ($Check_Guild > 0) { $this->Error[1] .= "» Saia da Guild antes de alterar o Nick<br />\n"; } } for ($WzAG = 0; $WzAG < count($_Panel["Char"]["Change_Nick"]["Security"]); $WzAG++) { $Security .= stristr($Nick, $_Panel["Char"]["Change_Nick"]["Security"][$WzAG]); } if ($Security == TRUE) { $this->Error[1] .= "» Este Nick contem informações invalidas<br />\n"; } if ($CTM_Captcha->Check($Captcha) == FALSE) { $this->Error[1] .= "» Codigo de Segurança incorreto<br />\n"; } if ($this->Error[0] == TRUE) { exit("<div class=\"warning-box\"> Os seguinte campos se encontram em Branco:<br /><Br />{$this->Error[0]}</div>"); } elseif ($this->Error[1] == TRUE) { exit("<div class=\"error-box\"> Os seguintes erros foram encontrados:<br /><br />{$this->Error[1]}</div>"); } else { $prepare = NULL; $prepare .= "UPDATE " . MuGen_DB . ".dbo.Guild SET G_Master = '{$Nick}' WHERE G_Master = '{$Character}';\n"; $prepare .= "UPDATE " . MuGen_DB . ".dbo.GuildMember SET Name = '{$Nick}' WHERE Name = '{$Character}';\n"; if (GS_Version > 1) { $prepare .= "UPDATE " . MuGen_DB . ".dbo.T_CGuid SET Name = '{$Nick}' WHERE Name = '{$Character}';\n"; $prepare .= "UPDATE " . MuGen_DB . ".dbo.T_FriendMain SET Name = '{$Nick}' WHERE Name = '{$Character}';\n"; $prepare .= "UPDATE " . MuGen_DB . ".dbo.T_FriendMail SET FriendName = '{$Nick}' WHERE FriendName = '{$Character}';\n"; $prepare .= "UPDATE " . MuGen_DB . ".dbo.T_FriendList SET FriendName = '{$Nick}' WHERE FriendName = '{$Character}';\n"; $prepare .= "UPDATE " . MuGen_DB . ".dbo.T_WaitFriend SET FriendName = '{$Nick}' WHERE FriendName = '{$Character}';\n"; } if (Server_Files == 0) { $prepare .= "UPDATE " . MuGen_DB . ".dbo.OptionData SET Name = '{$Nick}' WHERE Name = '{$Character}';\n"; $prepare .= "UPDATE " . MuGen_DB . ".dbo.T_MasterLevelSystem SET CHAR_NAME = '{$Nick}' WHERE CHAR_NAME = '{$Character}';\n"; if ($_Ranking["Gens"]["Enable"] === TRUE) { $prepare .= "UPDATE " . MuGen_DB . ".dbo.T_GensSystem SET CHAR_NAME = '{$Nick}' WHERE CHAR_NAME = '{$Character}';\n"; } } if (Server_Files == 1) { $prepare .= "UPDATE " . MuGen_DB . ".dbo.OptionData SET Name = '{$Nick}' WHERE Name = '{$Character}';\n"; } if (Server_Files == 2) { $prepare .= "UPDATE " . MuGen_DB . ".dbo.OptionData SET Name = '{$Nick}' WHERE Name = '{$Character}';\n"; $prepare .= "UPDATE " . MuGen_DB . ".dbo.QuestWorld SET Name = '{$Nick}' WHERE Name = '{$Character}';\n"; $prepare .= "UPDATE " . MuGen_DB . ".dbo.QuestKillCount SET Name = '{$Nick}' WHERE Name = '{$Character}';\n"; $prepare .= "UPDATE " . MuGen_DB . ".dbo.RankingBloodCastle SET Name = '{$Nick}' WHERE Name = '{$Character}';\n"; $prepare .= "UPDATE " . MuGen_DB . ".dbo.RankingDevilSquare SET Name = '{$Nick}' WHERE Name = '{$Character}';\n"; $prepare .= "UPDATE " . MuGen_DB . ".dbo.RankingChaosCastle SET Name = '{$Nick}' WHERE Name = '{$Character}';\n"; $prepare .= "UPDATE " . MuGen_DB . ".dbo.RankingIllusionTemple SET Name = '{$Nick}' WHERE Name = '{$Character}';\n"; $prepare .= "UPDATE " . MuGen_DB . ".dbo.RankingDuel SET Name = '{$Nick}' WHERE Name = '{$Character}';\n"; $prepare .= "UPDATE " . MuGen_DB . ".dbo.Gens_Rank SET Name = '{$Nick}' WHERE Name = '{$Character}';\n"; $prepare .= "UPDATE " . MuGen_DB . ".dbo.Gens_Reward SET Name = '{$Nick}' WHERE Name = '{$Character}';\n"; $prepare .= "UPDATE " . MuGen_DB . ".dbo.EventSantaClaus SET Name = '{$Nick}' WHERE Name = '{$Character}';\n"; $prepare .= "UPDATE " . MuGen_DB . ".dbo.EventLeoTheHelper SET Name = '{$Nick}' WHERE Name = '{$Character}';\n"; } $img = NULL; if (!empty($Check_Img[0])) { $Crypt = $CTM_Crypt->CharImg($Nick . time()); $File = explode(".", $Check_Img[0]); @rename(constant("Upload_Img") . $Check_Img[0], $Request . "/" . $Crypt . "." . $File[1]); $img = ",{$CTM[C][0]} = '" . $Crypt . "." . $File[1] . "'"; } $prepare .= "UPDATE " . MuGen_DB . ".dbo.AccountCharacter SET GameID1 = '{$Nick}' WHERE GameID1 = '{$Character}' AND Id = '" . $this->Login . "';\n"; $prepare .= "UPDATE " . MuGen_DB . ".dbo.AccountCharacter SET GameID2 = '{$Nick}' WHERE GameID2 = '{$Character}' AND Id = '" . $this->Login . "';\n"; $prepare .= "UPDATE " . MuGen_DB . ".dbo.AccountCharacter SET GameID3 = '{$Nick}' WHERE GameID3 = '{$Character}' AND Id = '" . $this->Login . "';\n"; $prepare .= "UPDATE " . MuGen_DB . ".dbo.AccountCharacter SET GameID4 = '{$Nick}' WHERE GameID4 = '{$Character}' AND Id = '" . $this->Login . "';\n"; $prepare .= "UPDATE " . MuGen_DB . ".dbo.AccountCharacter SET GameID5 = '{$Nick}' WHERE GameID5 = '{$Character}' AND Id = '" . $this->Login . "';\n"; $prepare .= "UPDATE " . MuGen_DB . ".dbo.AccountCharacter SET GameIDC = '{$Nick}' WHERE GameIDC = '{$Character}' AND Id = '" . $this->Login . "';\n"; $prepare .= "UPDATE " . MuGen_DB . ".dbo.Character SET Name = '{$Nick}'{$img} WHERE Name = '{$Character}';"; $this->Query($prepare); $_SESSION["Web_ManageChar"] = $Nick; $this->WriteLog("CHANGE_NICK", "Novo nick: " . $Nick); exit("<script>CTM_Load('?pag=panel&cmd=char','Panel_Char','GET');</script>\r\n\t\t\t\t<div class=\"success-box\"> Nick alterado para <strong>{$Nick}</strong> com Sucesso!</div>"); } } if ($_GET["cmd"] == "check_captcha") { $Captcha = $_GET["captcha"]; if (empty($Captcha)) { exit("<script>VerifyDatas('Captcha', 'CaptchaResult', 'Campo em branco', '#efdc75', 'warning');</script>"); } else { if ($CTM_Captcha->Check($Captcha) == FALSE) { exit("<script>VerifyDatas('Captcha', 'CaptchaResult', 'Codigo de Seguança Incorreto', '#FF0000', 'error');</script>"); } else { exit("<script>VerifyDatas('Captcha', 'CaptchaResult', 'Codigo de Seguança válido', 'green', 'success');</script>"); } } } }
private function VerifyDatas() { if ($_GET["cmd"] == "verify") { header("Content-Type: text/javascript", true); if ($_GET["id"] == "code") { $Code = $_GET["code"]; $HashCode = "0x" . bin2hex($Code); $Check = $this->NumQuery("SELECT * FROM dbo." . $GLOBALS["CTM"][18] . " WHERE HashCode={$HashCode}"); if (empty($Code)) { exit("<script>VerifyDatas('Code', 'CodeResult', 'Campo em branco', '#efdc75', 'warning');</script>"); } else { if ($Check < 1) { exit("<script>VerifyDatas('Code', 'CodeResult', 'Codigo invalido', '#FF0000', 'error');</script>"); } else { exit("<script>VerifyDatas('Code', 'CodeResult', 'Codigo válido', 'green', 'success');</script>"); } } } if ($_GET["id"] == "login") { $lower = (bool) constant("Register[ForceLower]"); $Acc = $_GET["account"]; $Check = $this->NumQuery("SELECT memb___id FROM " . MuAcc_DB . ".dbo.MEMB_INFO WHERE memb___id=" . ($lower ? "LOWER" : NULL) . "('{$Acc}')"); if (empty($Acc)) { exit("<script>VerifyDatas('Account', 'AccountResult', 'Campo em branco', '#efdc75', 'warning');</script>"); } elseif (strlen($Acc) > 10) { exit("<script>VerifyDatas('Account', 'AccountResult', 'Maximo 10 Digitos', '#FF0000', 'error');</script>"); } elseif (strlen($Acc) < 4) { exit("<script>VerifyDatas('Account', 'AccountResult', 'Minimo 4 Digitos', '#FF0000', 'error');</script>"); } else { if ($Check > 0) { exit("<script>VerifyDatas('Account', 'AccountResult', 'Login já Existe', '#FF0000', 'error');</script>"); } else { exit("<script>VerifyDatas('Account', 'AccountResult', 'Login válido', 'green', 'success');</script>"); } } } if ($_GET["id"] == "mail") { $Mail_Addr = $_GET["mail"]; $Check = $this->NumQuery("SELECT mail_addr FROM " . MuAcc_DB . ".dbo.MEMB_INFO WHERE mail_addr='{$Mail_Addr}'"); if (empty($Mail_Addr)) { exit("<script>VerifyDatas('Mail', 'MailResult', 'Campo em branco', '#efdc75', 'warning');</script>"); } else { if (preg_match("/(.*?)@(.*?).(.).([com|net|org])/i", $Mail_Addr) == FALSE) { exit("<script>VerifyDatas('Mail', 'MailResult', 'E-Mail inválido', '#FF0000', 'error');</script>"); } elseif ($Check > 0) { exit("<script>VerifyDatas('Mail', 'MailResult', 'E-Mail já Existe', '#FF0000', 'error');</script>"); } else { exit("<script>VerifyDatas('Mail', 'MailResult', 'E-Mail válido', 'green', 'success');</script>"); } } } if ($_GET["id"] == "pwd") { $Pwd_1 = $_GET["pwd_1"]; $Pwd_2 = $_GET["pwd_2"]; if (empty($Pwd_2)) { exit("<script>VerifyDatas('Re_Password', 'Re_PasswordResult', 'Campo em branco', '#efdc75', 'warning');</script>"); } else { if ($Pwd_1 != $Pwd_2) { exit("<script>VerifyDatas('Re_Password', 'Re_PasswordResult', 'Senhas não conferem', '#FF0000', 'error');</script>"); } else { exit("<script>VerifyDatas('Re_Password', 'Re_PasswordResult', 'Senha Confirmada', 'green', 'success');</script>"); } } } if ($_GET["id"] == "re_mail") { $Mail_1 = $_GET["mail_1"]; $Mail_2 = $_GET["mail_2"]; if (empty($Mail_2)) { exit("<script>VerifyDatas('Re_Mail', 'Re_MailResult', 'Campo em branco', '#efdc75', 'warning');</script>"); } else { if ($Mail_1 != $Mail_2) { exit("<script>VerifyDatas('Re_Mail', 'Re_MailResult', 'E-Mails não conferem', '#FF0000', 'error');</script>"); } else { exit("<script>VerifyDatas('Re_Mail', 'Re_MailResult', 'E-Mail Confirmado', 'green', 'success');</script>"); } } } if ($_GET["id"] == "captcha") { $CTM_Captcha = new CTM_Captcha(); $Captcha = $_GET["captcha"]; if (empty($Captcha)) { exit("<script>VerifyDatas('Captcha', 'CaptchaResult', 'Campo em branco', '#efdc75', 'warning');</script>"); } else { if ($CTM_Captcha->Check($Captcha) == FALSE) { exit("<script>VerifyDatas('Captcha', 'CaptchaResult', 'Codigo de Seguança Incorreto', '#FF0000', 'error');</script>"); } else { exit("<script>VerifyDatas('Captcha', 'CaptchaResult', 'Codigo de Seguança válido', 'green', 'success');</script>"); } } } } }
private function Check_Datas() { header("Content-Type: text/javascript", true); if ($_GET["cmd"] == "verify") { if ($_GET["id"] == "code") { $Code = $_GET["code"]; $HashCode = "0x" . bin2hex($Code); $Check = $this->NumQuery("SELECT * FROM dbo." . $GLOBALS["CTM"][14] . " WHERE HashCode={$HashCode}"); if (empty($Code)) { exit("<script>VerifyDatas('Code', 'CodeResult', 'Campo em branco', '#efdc75', 'warning');</script>"); } else { if ($Check < 1) { exit("<script>VerifyDatas('Code', 'CodeResult', 'Codigo invalido', '#FF0000', 'error');</script>"); } else { exit("<script>VerifyDatas('Code', 'CodeResult', 'Codigo válido', 'green', 'success');</script>"); } } } if ($_GET["id"] == "pwd") { $Pwd_1 = $_GET["pwd_1"]; $Pwd_2 = $_GET["pwd_2"]; if (empty($Pwd_2)) { exit("<script>VerifyDatas('Re_Password', 'Re_PasswordResult', 'Campo em branco', '#efdc75', 'warning');</script>"); } else { if ($Pwd_1 != $Pwd_2) { exit("<script>VerifyDatas('Re_Password', 'Re_PasswordResult', 'Senhas não conferem', '#FF0000', 'error');</script>"); } else { exit("<script>VerifyDatas('Re_Password', 'Re_PasswordResult', 'Senha Confirmada', 'green', 'success');</script>"); } } } if ($_GET["id"] == "captcha") { $CTM_Captcha = new CTM_Captcha(); $Captcha = $_GET["captcha"]; if (empty($Captcha)) { exit("<script>VerifyDatas('Captcha', 'CaptchaResult', 'Campo em branco', '#efdc75', 'warning');</script>"); } else { if ($CTM_Captcha->Check($Captcha) == FALSE) { exit("<script>VerifyDatas('Captcha', 'CaptchaResult', 'Codigo de Seguança Incorreto', '#FF0000', 'error');</script>"); } else { exit("<script>VerifyDatas('Captcha', 'CaptchaResult', 'Codigo de Seguança válido', 'green', 'success');</script>"); } } } } }
if (!empty($_GET['showLoad'])) { require_once CTM_ROOT_PATH . "modules/kernel/ctmCaptcha.php"; require_once CTM_ROOT_PATH . "modules/sources/includes/functions.inc.php"; require_once CTM_ROOT_PATH . "modules/sources/extras/classGuildMark.php"; switch ($_GET["showLoad"]) { case "captcha": CTM_Captcha::$number = 8; CTM_Captcha::$size = 18; CTM_Captcha::$words = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"; CTM_Captcha::$bg = PUBLIC_DIRECTORY . "/style_captcha/backgrounds/{rand}.gif"; CTM_Captcha::$fontDir = PUBLIC_DIRECTORY . "/style_captcha/fonts/"; CTM_Captcha::$fonts = array(0 => array("constan.ttf", 8), 1 => array("FRABK.ttf", 8), 2 => array("MAIAN.ttf", 8)); CTM_Captcha::$colors = array(0 => array(131, 7, 124), 1 => array(70, 138, 239), 2 => array(30, 30, 30), 3 => array(118, 106, 0), 4 => array(157, 10, 79), 5 => array(72, 104, 33), 6 => array(214, 0, 0), 7 => array(48, 71, 160)); CTM_Captcha::$border = array(0 => true, 1 => array(0, 0, 0)); CTM_Captcha::$setLines = array(0 => true, 1 => array(0 => array(70, 120, 278), 1 => array(0, 0, 0), 2 => array(48, 71, 160))); CTM_Captcha::CaptchaImage(186, 27); exit; break; case "gmark": GuildMark::getMark($_GET['hexa'], 100); exit; break; case "jslang": if ($_GET['lang']) { if (file_exists(CTM_ROOT_PATH . "cache/lang_cache/" . $_GET['lang'] . "/web_" . CTM_ROOT_AREA . ".js")) { header("Content-type: text/javascript"); readfile(CTM_ROOT_PATH . "cache/lang_cache/" . $_GET['lang'] . "/web_" . CTM_ROOT_AREA . ".js"); } } exit; 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)); } } } }
/** * Generate Captcha Text * Generate the new captcha text * * @param integer Letters number * @return void */ public static function GerateCaptchaText($number = -1) { self::$captcha = NULL; $number = $number == -1 ? self::$number : $number; $length = strlen(self::$words); for ($i = 0; $i < $number; $i++) { if ($length > 0) { self::$captcha .= self::$words[mt_rand(0, $length - 1)]; } else { self::$captch .= chr(mt_rand(65, 90)); } } $_SESSION['CTM_SECURE_CAPTCHA'] = md5(sha1(self::$captcha)); }