Código:
<?php
//**********************************************//
// -> Effect Web //
// -> Powered By: Erick-Master //
// -> CTM TeaM Softwares //
// -> www.ctmts.com.br //
//**********************************************//
$Page_Request = strtolower(basename($_SERVER['REQUEST_URI']));
$Page_File = strtolower(basename(__FILE__));
if ($Page_Request == $Page_File)
{
exit("<span style=\"border:1px dashed #c00; color:#c00; padding:6px; background-color:#ffebe8;\"><strong>CTM-Error: Não é permitido acessar o arquivo diretamente.</strong></span>");
}
if(!class_exists("CTM_Register")) :
class CTM_Register extends CTM_MSSQL
{
private $Error = NULL;
private $Pwd_Query = NULL;
public function __construct()
{
global $CTM_General, $CTM_Template, $Login, $_Register;
if(constant("Register[Enable]") == true)
{
if($CTM_General->Check_Logged(false) == TRUE)
{
exit("<div class=\"info-box\"> Notamos que você se encontra Logado com a conta \"".$_SESSION["Hash_Account"]."\", o cadastro não pode ser Efetuado.</div>");
}
elseif(isset($_GET["run"]) == TRUE)
{
$this->VerifyDatas();
$this->Confirm_Register();
echo("<script type=\"text/javascript\">
function Security_Captcha(div)
{
document.getElementById(div).src = '?public=captcha&' + Math.random();
}
Security_Captcha('captcha');
</script>
<div id=\"Verify\" style=\"display: none;\"></div>");
$CTM_Template->Load("templates/".$CTM_Template->Open()."/pages/register[CONFIRM].pag.php");
}
else
{
$this->VerifyDatas();
$this->RegisterNow();
echo("<script type=\"text/javascript\">
function Security_Captcha(div)
{
document.getElementById(div).src = '?public=captcha&' + Math.random();
}
Security_Captcha('captcha');
</script>
<div id=\"Verify\" style=\"display: none;\"></div>");
$CTM_Template->Load("templates/".$CTM_Template->Open()."/pages/register.pag.php");
}
}
else
{
exit("<div class=\"info-box\"> O registro se encontra Desativado no Momento.</div>");
}
}
private function RegisterNow()
{
global $CTM, $_Register, $_Mailer;
$CTM_Captcha = new CTM_Captcha();
if($_GET["cmd"] == TRUE)
{
#Define POST
$Account = strtolower($_POST["Account"]);
$Password = $_POST["Password"];
$Re_Password = $_POST["Re_Password"];
$Per_ID = $_POST["Per_ID"];
$Mail = $_POST["Mail"];
$Re_Mail = $_POST["Re_Mail"];
$Name = $_POST["Name"];
$Phone = $_POST["Phone"];
$Sex = $_POST["Sex"];
$Date_D = $_POST["Date_D"];
$Date_M = $_POST["Date_M"];
$Date_Y = $_POST["Date_Y"];
$Question = $_POST["Question"];
$Answer = $_POST["Resp"];
$Captcha = $_POST["Captcha"];
# Define Empty POST
if(empty($Account)) { $this->Error = "» Login em Branco<br />"; }
if(empty($Password)) { $this->Error .= "» Senha em Branco<br />"; }
if(empty($Re_Password)) { $this->Error .= "» Confirmação de Senha em Branco<br />"; }
if(empty($Per_ID)) { $this->Error .= "» Personal ID em Branco<br />"; }
if(empty($Mail)) { $this->Error .= "» E-Mail em Branco<br />"; }
if(empty($Re_Mail)) { $this->Error .= "» Confirmação de E-Mail em Branco<br />"; }
if(empty($Name)) { $this->Error .= "» Nome em Branco<br />"; }
if(empty($Phone)) { $this->Error .= "» Telefone em Branco<br />"; }
if(empty($Sex)) { $this->Error .= "» Selecione seu Sexo<br />"; }
if(empty($Date_D)) { $this->Error .= "» Selecione o dia de seu nascimento<br />"; }
if(empty($Date_M)) { $this->Error .= "» Selecione o mês de seu nascimento<br />"; }
if(empty($Date_Y)) { $this->Error .= "» Selecione o ano de seu nascimento<br />"; }
if(empty($Question)) { $this->Error .= "» Selecione uma Pergunta Secreta<br />"; }
if(empty($Answer)) { $this->Error .= "» Digite a resposta Secreta<br />"; }
if(empty($Captcha)) { $this->Error .= "» Codigo de Seguança em Branco<br />"; }
# Define POST Erros
if($CTM_Captcha->Check($Captcha) == FALSE) { $this->Error .= "» Codigo de Segurança Incorreto.<br />"; }
if(eregi("[^a-zA-Z0-9_!=?&-]", $Account)) { $this->Error .= "» Não use símbolos no Login<br />"; }
if(eregi("[^a-zA-Z0-9_!=?&-]", $Password) || eregi("[^a-zA-Z0-9_!=?&-]", $Re_Password)) { $this->Error .= "» Não use símbolos na Senha<br />"; }
if(eregi("[^a-zA-Z0-9_!=?&-]", $Re_Password)) {
$this->Error .= "» Não use símbolos na Confirmação de Senha<br />"; }
if(preg_match("/(.*?)@(.*?)\..([com|net|org])/i", $Mail) == FALSE) { $this->Error .= "» E-Mail inválido<br />"; }
# Define Verify POST
if($Password != $Re_Password) { $this->Error .= "» Senhas não conferem<br />"; }
if($Mail != $Re_Mail) { $this->Error .= "» E-Mails não conferem<br />"; }
# Define Check POST
$Check[0] = $this->NumQuery("SELECT memb___id FROM ".MuAcc_DB.".dbo.MEMB_INFO WHERE memb___id='{$Account}'");
$Check[1] = $this->NumQuery("SELECT mail_addr FROM ".MuAcc_DB.".dbo.MEMB_INFO WHERE mail_addr='{$Mail}'");
if($Check[0] > 0) { $this->Error .= "» Login em Uso<br />"; }
if($Check[1] > 0) { $this->Error .= "» E-Mail em Uso<br />"; }
# Define Show Errors
if(isset($this->Error))
{
exit("<div class=\"error-box\">Os seguintes erros forão encontrados: <br />".$this->Error."</div>");
}
# Define Send Variables
$Date = date("d/m/Y - H:i:s");
$Date_G = $Date_D."/".$Date_M."/".$Date_Y;
# Define Password Module
if(USE_MD5 == 1)
{
$this->Pwd_Query = "CONVERT(varbinary(16),'0x00')";
}
else
{
$this->Pwd_Query = "'".$Password."'";
}
# Define Mail Register
if(constant("Register[Confirm_Mail]") === TRUE)
{
for ($WzAG = 0; $WzAG < 25; $WzAG++)
{
$Rand .= chr(mt_rand(65, 90));
}
$Define["Account"] = substr(md5($Rand.sha1(time())), 0, 10);
$Define["Mail_Check"] = 0;
$HashCode = md5(sha1($Rand));
$Binarry = "0x".bin2hex($HashCode);
$this->Query("INSERT INTO dbo.{$CTM[18]} (Account,Temp_Account,HashCode,Status) VALUES (
'".$Account."','".$Define["Account"]."',".$Binarry.",0xFFFF)");
}
else
{
$Define["Account"] = $Account;
$Define["Mail_Check"] = 1;
}
# Define Register Query
$this->Query("INSERT INTO ".MuAcc_DB.".dbo.MEMB_INFO (memb___id,memb__pwd,memb_name,sno__numb,post_code,addr_info,addr_deta,tel__numb,mail_addr,phon_numb,fpas_ques,fpas_answ,job__code,CTM_Date,CTM_Birth,CTM_Sex,appl_days,modi_days,out__days,true_days,mail_chek,bloc_code,ctl1_code) VALUES ('".$Define["Account"]."',".$this->Pwd_Query.",'{$Name}','{$Per_ID}111111','s-n','11111','','{$Phone}','{$Mail}','','{$Question}','{$Answer}','1','{$Date}','{$Date_G}','{$Sex}','2003-11-21','2003-11-22','2014-03-28','2003-11-25','".$Define["Mail_Check"]."','0','1')");
if (USE_MD5 == 1)
{
$this->Query("exec dbo.CTM_CryptPwd '".$Account."','".$Password."'");
}
# Define Register VI_CURR_INFO
if(VI_CURR_INFO == TRUE)
{
$this->Query("INSERT INTO ".MuAcc_DB.".dbo.VI_CURR_INFO (ends_days,chek_code,used_time,memb___id,memb_name,memb_guid,sno__numb,Bill_Section,Bill_value,Bill_Hour,Surplus_Point,Surplus_Minute,Increase_Days) VALUES ('2005','1',1234,'".$Account."','{$Name}',1,'7','6','3','6','6','2003-11-23 10:36:00','0')");
}
# Define VIP Table
if(VIP_Table != "MEMB_INFO")
{
$this->Query("INSERT INTO ".VIP_DB.".dbo.".VIP_Table." (".VIP_Login.",".VIP_Column.",".VIP_Begin.",".VIP_Time.",".VIP_Credits.") VALUES ('".$Define["Account"]."',0,0,0,0)");
}
# Define Cash Table
if(GL_Table != "MEMB_INFO")
{
$this->Query("INSERT INTO ".GL_DB.".dbo.".GL_Table." (".GL_Column_1.",".GL_Login.") VALUES (0,'".$Define["Account"]."')");
}
# Define Bonus Register
if(constant("Register[VIP][Enable]") === TRUE)
{
switch(constant("Register[VIP][Type]"))
{
case 1 : $VIP_Type = constant("VIP_1"); break;
case 2 : $VIP_Type = constant("VIP_2"); break;
case 3 : $VIP_Type = constant("VIP_3"); break;
case 4 : $VIP_Type = constant("VIP_4"); break;
case 5 : $VIP_Type = constant("VIP_5"); break;
}
$VIP_Begin = strtotime("now");
$VIP_Time = strtotime("+ ".constant("Register[VIP][Time]")." days");
$this->Query("UPDATE ".VIP_DB.".dbo.".VIP_Table." SET ".VIP_Column."=".constant("Register[VIP][Type]").",".VIP_Begin."=".$VIP_Begin.",".VIP_Time."=".$VIP_Time.",".VIP_Credits."=".constant("Register[VIP][Time]")." WHERE ".VIP_Login."='".$Define["Account"]."'");
$Bonus .= "» ".constant("Register[VIP][Time]")." dias de ".$VIP_Type.".<br />";
}
if(constant("Register[Cash][Enable]") === TRUE)
{
$this->Query("UPDATE ".GL_DB.".dbo.".GL_Table." SET ".constant("GL_Column_".constant("Register[Cash][Coin]"))."=".constant("GL_Column_".constant("Register[Cash][Coin]"))."+".constant("Register[Cash][Number]")." WHERE ".GL_Login."='".$Define["Account"]."'");
$Bonus .= "» ".constant("Register[Cash][Number]")." ".constant("Coin_".constant("Register[Cash][Coin]"))."";
}
if($Bonus == TRUE) { $Echo_Bonus = "<br /><br />Você foi premiado com: <br />{$Bonus}"; }
# Define Message
if(constant("Register[Confirm_Mail]") === TRUE)
{
$Exit = "Cadastro Realizado com Sucesso!<br />Foi enviado 1 e-mail para <strong>{$Mail}</strong> contendo informações para confirmar o seu cadastro.<br />Entre em seu E-Mail e siga as instruções para confirmar o seu cadastro.<br /><strong style=\"color: red;\">Caso seu E-Mail seja na hotmail, verifique sua caixa de Spam.</strong><br />A Equipe ".Server_Name." agradece.";
}
else
{
$Exit = "Cadastro Realizado com Sucesso!<br /><br />» Nome: <b>{$Name}</b><br />» E-Mail: <b>{$Mail}</b><br />» Login: <b>{$Account}</b><br />» Senha: <b>{$Password}</b>{$Echo_Bonus}<br /><br />Seja Bem Vindo ao ".Server_Name.". Baixe o Client em nossa área de Downloads e Divirta-se.<br />A Equipe ".Server_Name." agradece.";
}
# Define Send Mail
if(constant("Register[Confirm_Mail]") === TRUE)
{
$Link .= "http://";
$Link .= $_SERVER["HTTP_HOST"];
$Link .= $_SERVER["PHP_SELF"];
$Link .= "?do=register&run=true";
$Code_Link = "&code=".$HashCode;
$Message .= "Olá <strong>".$Name."</strong>!<br /><br />";
$Message .= "Obrigado por cadastrar em nosso servidor,,";
$Message .= "<br />Segue abaixo alguns dados referentes a sua conta:<br /><br />";
$Message .= "<strong>Login:</strong> ".$Account."<br />";
$Message .= "<strong>E-Mail:</strong> ".$Mail."<br />";
$Message .= "<strong>Senha:</strong> ".$Password."<br />";
$Message .= "<strong>Senha:</strong> ".$Password."<br />";
$Message .= "<strong>Personal Id:</strong> ".$Per_ID."<br />";
$Message .= "<strong>Resposta Secreta:</strong> ".$Answer."<br /><br />";
$Message .= "Para completar este processo, clique no link abaixo para confirmar o seu cadastro:<br />";
$Message .= "<strong>Link:</strong> <a target=\"_blank\" href=\"".$Link.$Code_Link."\">".$Link.$Code_Link;
$Message .= "</a><br /><br />";
$Message .= "<h3><strong>Não funciona?</strong></h3>";
$Message .= "Então clique no link abaixo de digite o seguinte codigo:<br />";
$Message .= "Codigo: <strong>".$HashCode."</strong><br />";
$Message .= "<strong>Link:</strong> <a target=\"_black\" href=\"".$Link."\">".$Link."</a><br />";
$Message .= "{$Echo_Bonus}";
$Message .= "<br /><br />Caso tenha mais problemas, por favor contate o Suporte.<br /><br />";
$CTM_Mailer = new CTM_Mailer();
$CTM_Mailer->SMTP_Server = $_Mailer["SMTP"]["Server"];
$CTM_Mailer->SMTP_Port = $_Mailer["SMTP"]["Port"];
$CTM_Mailer->SMTP_User = $_Mailer["SMTP"]["User"];
$CTM_Mailer->SMTP_Pass = $_Mailer["SMTP"]["Pass"];
$CTM_Mailer->Mail_From = $_Mailer["SMTP"]["Mail"];
$CTM_Mailer->SMTP_Debug = $_Mailer["SMTP"]["Debug"];
$CTM_Mailer->Mail_To = $Mail;
$CTM_Mailer->Mail_Sender = "Suporte ".constant("Server_Name");
$CTM_Mailer->Mail_Recipient = $Find_Account[1];
$CTM_Mailer->Mail_Subject = utf8_decode("Confirmação de Cadastro - ".constant("Server_Name"));
$CTM_Mailer->Mail_Message = $Message;
if($CTM_Mailer->Send_Mail() == FALSE)
{
exit("<div class=\"error-box\"> Erro ao enviar o E-Mail!</div>");
}
else
{
unset($Link);
unset($Message);
}
}
$_SESSION['CTM_Captcha'] = md5(sha1(mt_rand(0, 9999)));
exit("<div class=\"success-box\">".$Exit."</div>");
}
}
private function Confirm_Register()
{
global $CTM;
$CTM_Captcha = new CTM_Captcha();
if($_GET["code"] == TRUE)
{
echo("<div class=\"col2\">");
if(empty($_GET["code"]))
{
exit("<div class=\"error-box\"> Este link de validação é invalido.</div>");
}
else
{
$Encode = "0x".bin2hex($_GET["code"]);
$Check_Link = $this->NumQuery("SELECT * FROM dbo.{$CTM[18]} WHERE HashCode={$Encode}");
$Find_Link = $this->FetchQuery("SELECT Status,Account,Temp_Account
FROM dbo.{$CTM[18]} WHERE HashCode={$Encode}");
if($Check_Link < 1)
{
exit("<div class=\"error-box\"> Este link de validação é invalido.</div>");
}
if(strtoupper(bin2hex($Find_Link[0])) == "F41E")
{
exit("<div class=\"error-box\"> Este Link já se encontra usado.</div>");
}
else
{
$this->Query("UPDATE dbo.{$CTM[18]} SET Status=0xF41E WHERE HashCode={$Encode}");
$this->Query("UPDATE ".MuAcc_DB.".dbo.MEMB_INFO SET memb___id='".$Find_Link[1]."',mail_chek=1 WHERE memb___id='".$Find_Link[2]."'");
if(VIP_table != "MEMB_INFO")
{
$this->Query("UPDATE ".VIP_DB.".dbo.".VIP_Table." SET ".VIP_Login."='".$Find_Link[1]."' WHERE ".VIP_Login."='".$Find_Link[2]."'");
}
if(GL_Table != "MEMB_INFO")
{
$this->Query("UPDATE ".GL_DB.".dbo.".GL_Table." SET ".GL_Login."='".$Find_Link[1]."' WHERE ".GL_Login."='".$Find_Link[2]."'");
}
exit("<div class=\"success-box\"> Cadastrado confirmado com Sucesso!<br /><br />Seja Bem Vindo ao ".Server_Name.". Baixe o Client em nossa área de Downloads e Divirta-se.<br />A Equipe ".Server_Name." agradece.</div>");
}
}
}
else
{
if($_GET["cmd"] == TRUE)
{
$Code = $_POST["Code"];
$Captcha = $_POST["Captcha"];
$Encode = "0x".bin2hex($Code);
$Check_Link = $this->NumQuery("SELECT * FROM dbo.{$CTM[18]} WHERE HashCode={$Encode}");
$Find_Link = $this->FetchQuery("SELECT Status,Account,Temp_Account
FROM dbo.{$CTM[18]} WHERE HashCode={$Encode}");
if(empty($Code))
{
exit("<div class=\"warning-box\"> Digite o codigo de validação.</div>");
}
elseif(empty($Captcha))
{
exit("<div class=\"warning-box\"> Digite o codigo de segurança.</div>");
}
elseif($CTM_Captcha->Check($Captcha) == FALSE)
{
exit("<div class=\"error-box\"> Codigo de segurança incorreto!</div>");
}
if($Check_Link < 1)
{
exit("<div class=\"error-box\"> Este codigo de validação é invalido.</div>");
}
elseif(strtoupper(bin2hex($Find_Link[0])) == "F41E")
{
exit("<div class=\"error-box\"> Este codigo já se encontra usado.</div>");
}
else
{
$this->Query("UPDATE ".MuAcc_DB.".dbo.MEMB_INFO SET memb___id='".$Find_Link[1]."',mail_chek=1 WHERE memb___id='".$Find_Link[2]."'");
if(VIP_table != "MEMB_INFO")
{
$this->Query("UPDATE ".VIP_DB.".dbo.".VIP_Table." SET ".VIP_Login."='".$Find_Link[1]."' WHERE ".VIP_Login."='".$Find_Link[2]."'");
}
if(GL_Table != "MEMB_INFO")
{
$this->Query("UPDATE ".GL_DB.".dbo.".GL_Table." SET ".GL_Login."='".$Find_Link[1]."' WHERE ".GL_Login."='".$Find_Link[2]."'");
}
$this->Query("UPDATE dbo.{$CTM[18]} SET Status=0xF41E WHERE HashCode={$Encode}");
exit("<div class=\"success-box\"> Cadastrado confirmado com Sucesso!<br /><br />Seja Bem Vindo ao ".Server_Name.". Baixe o Client em nossa área de Downloads e Divirta-se.<br />A Equipe ".Server_Name." agradece.</div>");
}
}
}
}
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")
{
$Acc = $_GET["account"];
$Check = $this->NumQuery("SELECT memb___id FROM ".MuAcc_DB.".dbo.MEMB_INFO WHERE memb___id='{$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>");
}
}
}
}
}
}
endif;
?>
tem como resolver isso?