コード例 #1
0
 /**
  *	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;
                     }
                 }
             }
         }
     }
 }
コード例 #2
0
ファイル: register.php プロジェクト: ADMTec/effectweb-project
 /**
  *	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 .= "&raquo; " . $this->lang->words['Register']['Register']['Messages']['NULL_Login'] . "<br />\n";
             }
             if (empty($_POST['Password'])) {
                 $error .= "&raquo; " . $this->lang->words['Register']['Register']['Messages']['NULL_Password'] . "<br />\n";
             }
             if (empty($_POST['CPassword'])) {
                 $error .= "&raquo; " . $this->lang->words['Register']['Register']['Messages']['NULL_CPassword'] . "<br />\n";
             }
             if (empty($_POST['Mail'])) {
                 $error .= "&raquo; " . $this->lang->words['Register']['Register']['Messages']['NULL_Mail'] . "<br />\n";
             }
             if (empty($_POST['CMail'])) {
                 $error .= "&raquo; " . $this->lang->words['Register']['Register']['Messages']['NULL_CMail'] . "<br />\n";
             }
             if (empty($_POST['PersonalID']) && $PID) {
                 $error .= "&raquo; " . $this->lang->words['Register']['Register']['Messages']['NULL_PID'] . "<br />\n";
             }
             if (empty($_POST['Name'])) {
                 $error .= "&raquo; " . $this->lang->words['Register']['Register']['Messages']['NULL_Name'] . "<br />\n";
             }
             if (empty($_POST['Phone'])) {
                 $error .= "&raquo; " . $this->lang->words['Register']['Register']['Messages']['NULL_Phone'] . "<br />\n";
             }
             if (empty($_POST['Sex'])) {
                 $error .= "&raquo; " . $this->lang->words['Register']['Register']['Messages']['NULL_Sex'] . "<br />\n";
             }
             if (empty($_POST['BirthDay'])) {
                 $error .= "&raquo; " . $this->lang->words['Register']['Register']['Messages']['NULL_BirthDay'] . "<br />\n";
             }
             if (empty($_POST['BirthMonth'])) {
                 $error .= "&raquo; " . $this->lang->words['Register']['Register']['Messages']['NULL_BirthMonth'] . "<br />\n";
             }
             if (empty($_POST['BirthYear'])) {
                 $error .= "&raquo; " . $this->lang->words['Register']['Register']['Messages']['NULL_BirthYear'] . "<br />\n";
             }
             if (empty($_POST['SecureQuestion'])) {
                 $error .= "&raquo; " . $this->lang->words['Register']['Register']['Messages']['NULL_SecureQuestion'] . "<br />\n";
             }
             if (empty($_POST['SecureAnswer'])) {
                 $error .= "&raquo; " . $this->lang->words['Register']['Register']['Messages']['NULL_SecureAnswer'] . "<br />\n";
             }
             if (empty($_POST['Captcha'])) {
                 $error .= "&raquo; " . $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 .= "&raquo; " . $this->lang->words['Global']['Captcha']['Messages']['Invalid'] . "<br />\n";
             }
             if (strlen($_POST['Login']) <= 3 || strlen($_POST['Login']) > 10) {
                 $error .= "&raquo; " . $this->lang->words['Register']['Register']['Messages']['Error_LoginLength'] . "<br />\n";
             }
             if (strlen($_POST['Password']) <= 3 || strlen($_POST['Password']) > 10) {
                 $error .= "&raquo; " . $this->lang->words['Register']['Register']['Messages']['Error_PassLength'] . "<br />\n";
             }
             if (strlen($_POST['PersonalID']) != 7 && $PID) {
                 $error .= "&raquo; " . $this->lang->words['Register']['Register']['Messages']['Error_PIDLength'] . "<br />\n";
             }
             if (eregi("[^a-zA-Z0-9_!=?&-]", $_POST['Login'])) {
                 $error .= "&raquo; " . $this->lang->words['Register']['Register']['Messages']['Error_LoginWords'] . "<br />\n";
             }
             if (eregi("[^a-zA-Z0-9_!=?&-]", $_POST['Password'])) {
                 $error .= "&raquo; " . $this->lang->words['Register']['Register']['Messages']['Error_PassWords'] . "<br />\n";
             }
             if (!CTM_Text::checkMail($_POST['Mail'])) {
                 $error .= "&raquo; " . $this->lang->words['Register']['Register']['Messages']['Error_MailWords'] . "<br />\n";
             }
             if (!is_numeric($_POST['PersonalID']) && $PID) {
                 $error .= "&raquo; " . $this->lang->words['Register']['Register']['Messages']['Error_PIDWords'] . "<br />\n";
             }
             if (strcmp($_POST['Password'], $_POST['CPassword']) != 0) {
                 $error .= "&raquo; " . $this->lang->words['Register']['Register']['Messages']['Error_ConfirmPass'] . "<br />\n";
             }
             if (strcmp($_POST['Mail'], $_POST['CMail']) != 0) {
                 $error .= "&raquo; " . $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 .= "&raquo; " . $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 .= "&raquo; " . $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 .= "&raquo; " . $this->lang->words['Register']['Register']['Messages']['Success'][2] . "<strong> " . htmlEncode($_POST['Name']) . "</strong><br />\n";
                 $success .= "&raquo; " . $this->lang->words['Register']['Register']['Messages']['Success'][3] . "<strong> " . strtolower($_POST['Login']) . "</strong><br />\n";
                 $success .= "&raquo; " . $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 .= "&raquo; " . $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 .= "&raquo; " . $this->lang->words['Register']['Register']['Messages']['Success'][7] . "<br />\n";
                     }
                     if ($vaultBonus) {
                         $success .= "&raquo; " . 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));
             }
         }
     }
 }