Ir para conteúdo

LOSTACCOUNT.PHP (BR + NO SEND E-MAIL)


luanluciano93

Posts Recomendados

LOSTACCOUNT.PHP 2.0 (BR + NO SEND E-MAIL)

Olá amigos, ai vai um arquivo php criado pelo Gesior.pl e totalmente reconfigurado por mim.

• Totalmente em portugûes.
• Não envia e-mail. (ele define uma nova senha se você tiver a RK)
• Configuravel para o tipo de gesior (old gesior e new gesior)

Basta substituir esse código pelo código que esta dentro do arquivo 'lostaccount.php' no seu gesior, configurar a 3ª, 4ª, 5ª e a 154ª linha (bem simples) e pronto!


<?PHP header("Content-Type: text/html; charset=ISO-8859-1",true); 
####################################    CONFIGURAÇÃO  ###############################################
$link = '?subtopic=lostaccount'; # url do lostaccount , exemplo: ?subtopic=lostaccount
$link2 = '?subtopic=accountmanagement'; # url do acountmanagement , exemplo: ?subtopic=accountmanagement
$newplayer = new OTS_Player(); # OLD Gesior = new OTS_Player() / NEW Gesior = new Player()
$step = $_REQUEST['step']; # <input type="hidden" name="step" value="x">


##################################  INSERIR NOME DO PERSONAGEM E OPÇÃO DE RECUPERAÇÃO ##########################################
	
    if($step == '')
	{
		$main_content .= '<B>Bem-vindo a Interface de Conta Perdida!</B><BR><BR>
        Se você perdeu acesso a sua conta, esta interface pode ajudá-lo.
		Naturalmente, você precisa provar que sua reivindicação para a conta ser recuperada.
		Digite os dados solicitados e siga as instruções cuidadosamente.
		Por favor, compreenda não há maneira de obter acesso a sua conta se ela não é registrada.<br><br>
        Como um primeiro passo para usar a Interface de Conta perdida, digite o nome de uma personagem da conta perdida, selecione a opção de recuperação e clique em "Submit".<BR><BR>';
        $main_content .= '<FORM ACTION="'.$link.'" METHOD=post> <INPUT TYPE=hidden NAME="character" VALUE="" /> <TABLE CELLSPACING=1 CELLPADDING=4 BORDER=0 WIDTH=100%>
		<TR><TD BGCOLOR="'.$config['site']['vdarkborder'].'" CLASS=white><B>Por favor coloque o nome do seu personagem</B></TD></TR> <TR><TD BGCOLOR="'.$config['site']['darkborder'].'">
		<INPUT TYPE=text NAME="nick" VALUE="" autocomplete="off" SIZE="26" MAXLENGTH="25"><BR> </TD></TR> </TABLE><br> <TABLE CELLSPACING=1 CELLPADDING=4 BORDER=0 WIDTH=100%>
		<TR><TD BGCOLOR="'.$config['site']['vdarkborder'].'" CLASS=white><B>Oque você quer?</B></TD></TR> <TR><TD BGCOLOR="'.$config['site']['darkborder'].'">
		<INPUT TYPE=radio NAME="step" VALUE="reckey" checked> Tenho a chave de recuperação e quero definir uma nova senha para minha conta.<BR> </TD></TR> </TABLE> 
		<BR> <TABLE CELLSPACING=0 CELLPADDING=0 BORDER=0 WIDTH=100%><TR><TD><center>
		<INPUT TYPE=image NAME="Submit" ALT="Submit" SRC="'.$layout_name.'/images/buttons/sbutton_submit.gif" BORDER=0 WIDTH=120 HEIGHT=18></center> </TD></TR></FORM></TABLE>';
	}
	
##################################  INSERIR CHAVE DE RECUPERAÇÃO ##########################################
	
	elseif($step == 'reckey')
	{
		$nick = stripslashes($_REQUEST['nick']);
		if(check_name($nick))
		{
			$player = $newplayer;
			$account = $newplayer;
			$player->find($nick);
			if($player->isLoaded()) 
			$account = $player->getAccount();
			
			if($account->isLoaded())
			{
				$account_key = $account->getCustomField('key');
				if(!empty($account_key))
				{
					$main_content .= 'Se você digitar chave de recuperação corretamente, vai ver o formulário para definir uma nova senha para a conta.<BR><br>
					<FORM ACTION="'.$link.'" METHOD=post> <input type="hidden" name="step" value="newpass"/> <TABLE CELLSPACING=1 CELLPADDING=4 BORDER=0 WIDTH=100%>
					<TR><TD BGCOLOR="'.$config['site']['vdarkborder'].'" CLASS=white><B>Por favor, coloque sua chave de recuperação.</B></TD></TR>
					<TR><TD BGCOLOR="'.$config['site']['darkborder'].'"><INPUT TYPE=hidden NAME="nick" VALUE="'.$nick.'" autocomplete="off" MAXLENGTH="25" SIZE="26" readonly="readonly" />
					Chave de Recuperação:    <INPUT TYPE=text NAME="key" VALUE="" autocomplete="off" MAXLENGTH="10" SIZE="11" /><BR></TD></TR></TABLE>
					<BR><TABLE CELLSPACING=0 CELLPADDING=0 BORDER=0 WIDTH=100%><TR><TD><center> <INPUT TYPE=image NAME="Submit" ALT="Submit" SRC="'.$layout_name.'/images/buttons/sbutton_submit.gif" BORDER=0 WIDTH=120 HEIGHT=18 /></center> </TD></TR></FORM></TABLE></TABLE>';
				}
				else {$main_content .= '<center>A conta deste personagem não tem chave de recuperação!</center><BR /><TABLE CELLSPACING=0 CELLPADDING=0 BORDER=0 WIDTH=100%><TR><TD><center> <a href="'.$link.'" border="0"><IMG SRC="'.$layout_name.'/images/buttons/sbutton_back.gif" NAME="Back" ALT="Back" BORDER=0 WIDTH=120 HEIGHT=18></a></center> </TD></TR></TABLE>';}
			}
			else {$main_content .= '<center>Personagem ou conta do personagem: <b>'.$nick.'</b> não existe.</center><BR /><TABLE CELLSPACING=0 CELLPADDING=0 BORDER=0 WIDTH=100%><TR><TD><center> <a href="'.$link.'" border="0"><IMG SRC="'.$layout_name.'/images/buttons/sbutton_back.gif" NAME="Back" ALT="Back" BORDER=0 WIDTH=120 HEIGHT=18></a></center> </TD></TR></TABLE>';}
		}
		else {$main_content .= '<center>Nome de personagem inválido. Se você tiver outros personagens na conta tente com outro nome.</center><BR /><TABLE CELLSPACING=0 CELLPADDING=0 BORDER=0 WIDTH=100%><TR><TD><center> <a href="'.$link.'" border="0"><IMG SRC="'.$layout_name.'/images/buttons/sbutton_back.gif" NAME="Back" ALT="Back" BORDER=0 WIDTH=120 HEIGHT=18></a></center> </TD></TR></TABLE>';}		
    }
	
##################################  DEFINIR NOVA SENHA ##########################################
	
	elseif($step == 'newpass')
	{
		$rec_key = trim($_REQUEST['key']);
		$nick = stripslashes($_REQUEST['nick']);
		if(check_name($nick))
		{
			$player = $newplayer;
			$account = $newplayer;
			$player->find($nick);
			if($player->isLoaded()) 
			$account = $player->getAccount();
			
			if($account->isLoaded())
			{
				$account_key = $account->getCustomField('key');
				if(!empty($account_key))
				{
					if($account_key == $rec_key)
					{
					    $main_content .= '<script type="text/javascript">
					
					    function validate_required(field,alerttxt)
					    {
					        with (field)
					        {
					            if (value==null||value==""||value==" ") {alert(alerttxt);return false;}
					            else {return true}
					        }
					    }

					    function validate_form(thisform)
					    {
					        with (thisform)
					        {
								if (verifpass==1) 
			                    {								
								    if (validate_required(passor,"Por favor, defina sua nova senha!")==false) {passor.focus();return false;}
	                                if (validate_required(passor2,"Por favor, repita sua nova senha!")==false) {passor2.focus();return false;}
	                                if (passor2.value!=passor.value) {alert(\'As senhas não são iguais!\');return false;}
					            }
						   }
					    }
					    </script>';
						
						$main_content .= 'Definir uma nova senha para sua conta.<BR><BR>
						<FORM ACTION="'.$link.'" onsubmit="return validate_form(this)" METHOD=post>
						<input type="hidden" name="step" value="changepass"/>
						<INPUT TYPE=hidden NAME="character" VALUE=""> <TABLE CELLSPACING=1 CELLPADDING=4 BORDER=0 WIDTH=100%>
						<script type="text/javascript">var verifpass=1;</script>
						<TR><TD BGCOLOR="'.$config['site']['vdarkborder'].'" CLASS=white><B>Por favor defina sua nova senha</B></TD></TR>
						<TR><TD BGCOLOR="'.$config['site']['darkborder'].'"> <INPUT TYPE=hidden NAME="nick" VALUE="'.$nick.'" autocomplete="off" SIZE="26" MAXLENGTH="25" readonly="readonly" />
						Nova senha:            <INPUT id="passor" TYPE=password NAME="new_pass" VALUE="" autocomplete="off" SIZE="31" MAXLENGTH="30"><BR>
					    Repita a nova senha:  <INPUT id="passor2" TYPE=password NAME="new_pass2" VALUE="" autocomplete="off" SIZE="31" MAXLENGTH="30" ><BR>
						<INPUT TYPE=hidden NAME="key" VALUE="'.$rec_key.'"> </TD></TR></TABLE> <BR><TABLE CELLSPACING=0 CELLPADDING=0 BORDER=0 WIDTH=100%><TR><TD><center>
						<INPUT TYPE=image NAME="Submit" ALT="Submit" SRC="'.$layout_name.'/images/buttons/sbutton_submit.gif" BORDER=0 WIDTH=120 HEIGHT=18></center> </TD></TR></FORM></TABLE></TABLE>';
					}
				    else {$main_content .= '<center>Chave de recuperação errada.</center><BR /><TABLE CELLSPACING=0 CELLPADDING=0 BORDER=0 WIDTH=100%><TR><TD><center> <a href="'.$link.'" border="0"><IMG SRC="'.$layout_name.'/images/buttons/sbutton_back.gif" NAME="Back" ALT="Back" BORDER=0 WIDTH=120 HEIGHT=18></a></center> </TD></TR></TABLE>';}
			    }
				else {$main_content .= '<center>A conta deste personagem não tem chave de recuperação!</center><BR /><TABLE CELLSPACING=0 CELLPADDING=0 BORDER=0 WIDTH=100%><TR><TD><center> <a href="'.$link.'" border="0"><IMG SRC="'.$layout_name.'/images/buttons/sbutton_back.gif" NAME="Back" ALT="Back" BORDER=0 WIDTH=120 HEIGHT=18></a></center> </TD></TR></TABLE>';}
			}
			else {$main_content .= '<center>Personagem ou conta do personagem: <b>'.$nick.'</b> não existe.</center><BR /><TABLE CELLSPACING=0 CELLPADDING=0 BORDER=0 WIDTH=100%><TR><TD><center> <a href="'.$link.'" border="0"><IMG SRC="'.$layout_name.'/images/buttons/sbutton_back.gif" NAME="Back" ALT="Back" BORDER=0 WIDTH=120 HEIGHT=18></a></center> </TD></TR></TABLE>';}
		}
		else {$main_content .= '<center>Nome de personagem inválido. Se você tiver outros personagens na conta tente com outro nome.</center><BR /><TABLE CELLSPACING=0 CELLPADDING=0 BORDER=0 WIDTH=100%><TR><TD><center> <a href="'.$link.'" border="0"><IMG SRC="'.$layout_name.'/images/buttons/sbutton_back.gif" NAME="Back" ALT="Back" BORDER=0 WIDTH=120 HEIGHT=18></a></center> </TD></TR></TABLE>';}		
    }
	
	##################################  SENHA TROCADA! ##########################################
	
	elseif($step == 'changepass')
	{
		$rec_key = trim($_REQUEST['key']);
		$nick = stripslashes($_REQUEST['nick']);
		$new_pass = trim($_POST['new_pass']);

		if(empty($new_pass)) {$main_content .= 'Por favor, defina sua nova senha.';}
		if(empty($new_pass2)) {$main_content .= 'Por favor, repita sua nova senha.';}
		
		if(check_name($nick))
		{
			$player = $newplayer ;
			$account = $newplayer ;
			$player->find($nick);
			if($player->isLoaded()) 
			$account = $player->getAccount();
			
			if($account->isLoaded())
			{
				$account_key = $account->getCustomField('key');
				if(!empty($account_key))
				{
					if($account_key == $rec_key)
					{
						if(check_password($new_pass))
						{
							$account->setPassword(password_ency($new_pass)); # OLD Gesior =  $account->setPassword (password_ency($new_pass)); / NEW GESIOR = $account->setPassword($new_pass);
							$account->save();
							$main_content .= '<BR> <FORM ACTION="'.$link2.'" onsubmit="return validate_form(this)" METHOD=post> <INPUT TYPE=hidden NAME="character" VALUE="">
							<TABLE CELLSPACING=1 CELLPADDING=4 BORDER=0 WIDTH=100%> <TR><TD BGCOLOR="'.$config['site']['vdarkborder'].'" CLASS=white><B>Sua conta e sua nova senha</B></TD></TR> <TR><TD BGCOLOR="'.$config['site']['darkborder'].'">
							Sua Conta:     <b>'.$account->getName().'</b><BR>
							Nova senha:        <b>'.$new_pass.'</b><BR></TD></TR></TABLE></FORM>';
						}
						else {$main_content .= '<center>Formato de senha errado. Use apenas a-Z, A-Z, 0-9</center><br>';}
					}
					else {$main_content .= '<center>Chave de Recuperação errada!</center><br>';}
				}
				else {$main_content .= '<center>A conta deste personagem não tem chave de recuperação!</center><br>';}
			}
			else {$main_content .= '<center>Personagem ou conta do personagem: <b>'.$nick.'</b> não existe.</center><BR />';}
		}
		else {$main_content .= '<center>Nome de personagem inválido. Se você tiver outros personagens na conta tente com outro nome.</center>';}
		
		$main_content .= '<TABLE CELLSPACING=0 CELLPADDING=0 BORDER=0 WIDTH=100%><TR><TD><center> <a href="'.$link.'" border="0"><IMG SRC="'.$layout_name.'/images/buttons/sbutton_back.gif" NAME="Back" ALT="Back" BORDER=0 WIDTH=120 HEIGHT=18></a></center> </TD></TR></FORM></TABLE></TABLE>';
	}
	
	################################## FIM ##########################################
BY LUANLUCIANO
?>

 


Só isso pessoal, abraços e até mais! Qualquer dúvida manda PM! Ajudei/Gostou REP+ biggrin.png

Editado por luanluciano93
Link para o comentário
Compartilhar em outros sites

Muito bom, tenho um tópico procurando por esse script e é o primeiro do xtibia a fazer isso pois não encontrei nenhum deste tipo no xtibia, acho que ninguém se preocupou com pequenos detalhes como esse^^

Me caiu muito bem, estou terminando de editar alguns detalhes de formatação e posto ele 100% aqui depois!

 

Muito obrigado!

 

REP++

Link para o comentário
Compartilhar em outros sites

Maninho achei um problema, mais creio que deve ter como resolver, pelo menos eu não consegui!

 

Ele reconhece a recovery key certinho de cada account, blz até ai tudo bem!

 

Porém ao alterar a nova senha, se eu digitar somente a senha de cima ele mostra que deu algo errado, mais se eu digitar somente a de baixo ele altera sem mostrar nenhuma mensagem pedindo para digitar nos dois campos, entendeu? Mais a senha é alterada com sucesso, até aparece na database e tudo mais, porém!

 

Outra coisa mais grave!

Eu utilizo SHA1 como encriptação para a minha database e após alterar a senha nesse seu script aparentemente ele usa PLAIN e mostra a senha que o player alterou e não consigo logar no server pois ele só aceita em forma de encriptação.

Ex.: Alterei a senha para Floripa e era pra aparecer como b054152779b602c2536c48bfda9924cfba602754

 

na database, mais está aparecendo o nome Floripa.

Link para o comentário
Compartilhar em outros sites

Maninho achei um problema, mais creio que deve ter como resolver, pelo menos eu não consegui!

 

Ele reconhece a recovery key certinho de cada account, blz até ai tudo bem!

 

Porém ao alterar a nova senha, se eu digitar somente a senha de cima ele mostra que deu algo errado, mais se eu digitar somente a de baixo ele altera sem mostrar nenhuma mensagem pedindo para digitar nos dois campos, entendeu? Mais a senha é alterada com sucesso, até aparece na database e tudo mais, porém!

 

Outra coisa mais grave!

 

Eu utilizo SHA1 como encriptação para a minha database e após alterar a senha nesse seu script aparentemente ele usa PLAIN e mostra a senha que o player alterou e não consigo logar no server pois ele só aceita em forma de encriptação.

 

Ex.: Alterei a senha para Floripa e era pra aparecer como b054152779b602c2536c48bfda9924cfba602754

 

na database, mais está aparecendo o nome Floripa.

deve ta faltando um if (!empty($_POST['login'])){ }

 

ae rçrç

 

E ele ta salvando em plain... é só mudar...

Link para o comentário
Compartilhar em outros sites

O script está ai aonde que devo mudar e o que?

 

 

<?PHP header("Content-Type: text/html; charset=ISO-8859-1",true);
#################################### CONFIGURAÇÃO ###############################################
$link = 'index.php?game=lostaccount'; # url do lostaccount , exemplo: ?game=lostaccount
$link2 = 'index.php?game=accountmanagement'; # url do acountmanagement , exemplo: ?game=accountmanagement
$newplayer = new OTS_Player(); # new OTS_Player() (defina a class de players, geralmente encontrada dentro da pasta POT do seu site)
#####################################################################################################
################################## INSERIR NOME DO PERSONAGEM E OPÇÃO DE RECUPERAÇÃO ##########################################
if($action == '')
{
$main_content .= '<B>Bem-Vindo a Recuperação de sua Account!</B><BR><BR>
Se você perdeu acesso a sua account, esta interface pode ajudá-lo.
Naturalmente, você precisa provar que a account é sua para poder recuperá-la.
Digite os dados solicitados e siga as instruções cuidadosamente.
Por favor, compreenda que não há maneira de obter acesso a sua account se ela não estiver registrada.<br><br>
Primeiramente para utilizar a Recuperação de Account, digite o nome de um personagem da sua account perdida, selecione a opção de recuperação e clique em "Submit".<BR><BR>
<FORM ACTION="'.$link.'&action=step1" METHOD=post>
<INPUT TYPE=hidden NAME="character" VALUE="" />
<TABLE CELLSPACING=1 CELLPADDING=4 BORDER=0 WIDTH=100%>
<TR><TD BGCOLOR="'.$config['site']['vdarkborder'].'" CLASS=white><B>Nome do personagem:</B></TD></TR>
<TR><TD BGCOLOR="'.$config['site']['darkborder'].'">
<INPUT TYPE=text NAME="nick" VALUE="" autocomplete="off" SIZE="26" MAXLENGTH="25"><BR>
</TD></TR>
</TABLE><br>
<TABLE CELLSPACING=1 CELLPADDING=4 BORDER=0 WIDTH=100%>
<TR><TD BGCOLOR="'.$config['site']['vdarkborder'].'" CLASS=white><B>Selecione a opção a baixo:</B></TD></TR>
<TR><TD BGCOLOR="'.$config['site']['darkborder'].'">
<INPUT TYPE=radio NAME="action_type" VALUE="reckey"><b> Tenho a <font color=red>Recovery Key</font> e quero definir um novo password para minha account.<BR>
</TD></TR>
</TABLE>
<BR>
<TABLE CELLSPACING=0 CELLPADDING=0 BORDER=0 WIDTH=100%><TR><TD><center>
<INPUT TYPE=image NAME="Submit" ALT="Submit" SRC="'.$layout_name.'/images/buttons/sbutton_submit.gif" BORDER=0 WIDTH=120 HEIGHT=18></center>
</TD></TR></FORM></TABLE>';
}
elseif($action == 'step1' && $_REQUEST['action_type'] == '')
{
$main_content .= '<center><font size=3>Selecione a opção de recuperação.</center><br><TABLE CELLSPACING=0 CELLPADDING=0 BORDER=0 WIDTH=100%><TR><TD><center>
<a href="'.$link.'" border="0"><IMG SRC="'.$layout_name.'/images/buttons/sbutton_back.gif" NAME="Back" ALT="Back" BORDER=0 WIDTH=120 HEIGHT=18></a></center> </TD></TR></FORM></TABLE></TABLE>';
}
################################## INSERIR CHAVE DE RECUPERAÇÃO ##########################################
elseif($action == 'step1' && $_REQUEST['action_type'] == 'reckey')
{
$nick = stripslashes($_REQUEST['nick']);
if(check_name($nick))
{
$player = $newplayer;
$account = $newplayer;
$player->find($nick);
if($player->isLoaded()) $account = $player->getAccount();
if($account->isLoaded())
{
$account_key = $account->getCustomField('key');
if(!empty($account_key))
{
$main_content .= 'Digitando a <font color=red>Recovery Key</font> corretamente, vai abrir um formulário para definir um novo password para a sua account.<BR><br>
<FORM ACTION="'.$link.'&action=step2" METHOD=post> <TABLE CELLSPACING=1 CELLPADDING=4 BORDER=0 WIDTH=100%>
<TR><TD BGCOLOR="'.$config['site']['vdarkborder'].'" CLASS=white><B>Digite sua Recovery Key:.</B></TD></TR>
<TR><TD BGCOLOR="'.$config['site']['darkborder'].'"><INPUT TYPE=hidden NAME="nick" VALUE="'.$nick.'" autocomplete="off" MAXLENGTH="25" SIZE="26" readonly="readonly" />
Recovery Key:    <INPUT TYPE=text NAME="key" VALUE="" autocomplete="off" MAXLENGTH="22" SIZE="25" /><BR></TD></TR></TABLE>
<BR><TABLE CELLSPACING=0 CELLPADDING=0 BORDER=0 WIDTH=100%><TR><TD><center> <INPUT TYPE=image NAME="Submit" ALT="Submit" SRC="'.$layout_name.'/images/buttons/sbutton_submit.gif" BORDER=0 WIDTH=120 HEIGHT=18 /></center> </TD></TR></FORM></TABLE></TABLE>';
}
else {$main_content .= '<center><font size=3>A account deste personagem não tem <font color=red>Recovery Key!</center><BR /><TABLE CELLSPACING=0 CELLPADDING=0 BORDER=0 WIDTH=100%><TR><TD><center> <a href="'.$link.'" border="0"><IMG SRC="'.$layout_name.'/images/buttons/sbutton_back.gif" NAME="Back" ALT="Back" BORDER=0 WIDTH=120 HEIGHT=18></a></center> </TD></TR></TABLE>';}
}
else {$main_content .= '<center><font size=3>Personagem <b>'.$nick.'</b> não existe ou está digitado de forma errada.</center><BR /><TABLE CELLSPACING=0 CELLPADDING=0 BORDER=0 WIDTH=100%><TR><TD><center> <a href="'.$link.'" border="0"><IMG SRC="'.$layout_name.'/images/buttons/sbutton_back.gif" NAME="Back" ALT="Back" BORDER=0 WIDTH=120 HEIGHT=18></a></center> </TD></TR></TABLE>';}
}
else {$main_content .= '<center><font size=3>Nome de personagem está errado ou você deixou em branco, tente novamente. Se caso tiver outros personagens na mesma account tente com o nome deles.</center><BR /><TABLE CELLSPACING=0 CELLPADDING=0 BORDER=0 WIDTH=100%><TR><TD><center> <a href="'.$link.'" border="0"><IMG SRC="'.$layout_name.'/images/buttons/sbutton_back.gif" NAME="Back" ALT="Back" BORDER=0 WIDTH=120 HEIGHT=18></a></center> </TD></TR></TABLE>';}
}
################################## DEFINIR NOVO PASSWORD##########################################
elseif($action == 'step2')
{
$rec_key = trim($_REQUEST['key']);
$nick = stripslashes($_REQUEST['nick']);
if(check_name($nick))
{
$player = $newplayer;
$account = $newplayer;
$player->find($nick);
if($player->isLoaded()) $account = $player->getAccount();
if($account->isLoaded())
{
$account_key = $account->getCustomField('key');
if(!empty($account_key))
{
if($account_key == $rec_key)
{
$main_content .= '<script type="text/javascript">
function validate_required(field,alerttxt)
{
with (field)
{
if (value==null||value==""||value==" ")
{alert(alerttxt);return false;}
else {return true}
}
}
function validate_email(field,alerttxt)
{
with (field)
{
apos=value.indexOf("@");
dotpos=value.lastIndexOf(".");
if (apos<1||dotpos-apos<2)
{alert(alerttxt);return false;}
else {return true;}
}
}
function validate_form(thisform)
{
with (thisform)
{
if (validate_required(email,"Please enter your e-mail!")==false)
{email.focus();return false;}
if (validate_email(email,"Invalid e-mail format!")==false)
{email.focus();return false;}
if (validate_required(passor,"Please enter password!")==false)
{passor.focus();return false;}
if (validate_required(passor2,"Please repeat password!")==false)
{passor2.focus();return false;}
if (passor2.value!=passor.value)
{alert(\'Repeated password is not equal to password!\');return false;}
}
}
</script>';
$main_content .= 'Defina um novo password para sua account.<BR><BR>
<FORM ACTION="'.$link.'&action=step3" onsubmit="return validate_form(this)" METHOD=post>
<INPUT TYPE=hidden NAME="character" VALUE=""> <TABLE CELLSPACING=1 CELLPADDING=4 BORDER=0 WIDTH=100%>
<TR><TD BGCOLOR="'.$config['site']['vdarkborder'].'" CLASS=white><B>Defina seu novo password:</B></TD></TR>
<TR><TD BGCOLOR="'.$config['site']['darkborder'].'"> <INPUT TYPE=hidden NAME="nick" VALUE="'.$nick.'" autocomplete="off" SIZE="26" MAXLENGTH="25" readonly="readonly" />
Novo password:            <INPUT id="passor" TYPE=password NAME="passor" VALUE="" autocomplete="off" SIZE="31" MAXLENGTH="30"><BR>
Repita novo password:  <INPUT id="passor2" TYPE=password NAME="passor" VALUE="" autocomplete="off" SIZE="31" MAXLENGTH="30" ><BR>
<INPUT TYPE=hidden NAME="key" VALUE="'.$rec_key.'"> </TD></TR></TABLE> <BR><TABLE CELLSPACING=0 CELLPADDING=0 BORDER=0 WIDTH=100%><TR><TD><center>
<INPUT TYPE=image NAME="Submit" ALT="Submit" SRC="'.$layout_name.'/images/buttons/sbutton_submit.gif" BORDER=0 WIDTH=120 HEIGHT=18></center> </TD></TR></FORM></TABLE></TABLE>';
}
else {$main_content .= '<center><font color=red size=3>Recovery Key</font> está errada, tente novamente.</center><BR /><TABLE CELLSPACING=0 CELLPADDING=0 BORDER=0 WIDTH=100%><TR><TD><center> <a href="'.$link.'" border="0"><IMG SRC="'.$layout_name.'/images/buttons/sbutton_back.gif" NAME="Back" ALT="Back" BORDER=0 WIDTH=120 HEIGHT=18></a></center> </TD></TR></TABLE>';}
}
else {$main_content .= '<center>A account deste personagem não tem chave de recuperação!</center><BR /><TABLE CELLSPACING=0 CELLPADDING=0 BORDER=0 WIDTH=100%><TR><TD><center> <a href="'.$link.'" border="0"><IMG SRC="'.$layout_name.'/images/buttons/sbutton_back.gif" NAME="Back" ALT="Back" BORDER=0 WIDTH=120 HEIGHT=18></a></center> </TD></TR></TABLE>';}
}
else {$main_content .= '<center>Personagem <b>'.$nick.'</b>
ou está digitado de forma errada.</center><BR /><TABLE CELLSPACING=0 CELLPADDING=0 BORDER=0 WIDTH=100%><TR><TD><center> <a href="'.$link.'" border="0"><IMG SRC="'.$layout_name.'/images/buttons/sbutton_back.gif" NAME="Back" ALT="Back" BORDER=0 WIDTH=120 HEIGHT=18></a></center> </TD></TR></TABLE>';}
}
else {$main_content .= '<center>Nome de personagem inválido. Se você tiver outros personagens na account tente com outro nome.</center><BR /><TABLE CELLSPACING=0 CELLPADDING=0 BORDER=0 WIDTH=100%><TR><TD><center> <a href="'.$link.'" border="0"><IMG SRC="'.$layout_name.'/images/buttons/sbutton_back.gif" NAME="Back" ALT="Back" BORDER=0 WIDTH=120 HEIGHT=18></a></center> </TD></TR></TABLE>';}
}
################################## PASSWORD ALTERADO! ##########################################
elseif($action == 'step3')
{
$rec_key = trim($_REQUEST['key']);
$nick = stripslashes($_REQUEST['nick']);
$new_pass = trim($_REQUEST['passor']);
if(check_name($nick))
{
$player = $newplayer ;
$account = $newplayer ;
$player->find($nick);
if($player->isLoaded()) $account = $player->getAccount();
if($account->isLoaded())
{
$account_key = $account->getCustomField('key');
if(!empty($account_key))
{
if($account_key == $rec_key)
{
if(check_password($new_pass))
{
$account->setPassword($new_pass);
$account->save();
$main_content .= '<BR> <FORM ACTION="'.$link2.'" onsubmit="return validate_form(this)" METHOD=post> <INPUT TYPE=hidden NAME="character" VALUE="">
<TABLE CELLSPACING=1 CELLPADDING=4 BORDER=0 WIDTH=100%> <TR><TD BGCOLOR="'.$config['site']['vdarkborder'].'" CLASS=white><B>Account e Password:</B></TD></TR> <TR><TD BGCOLOR="'.$config['site']['darkborder'].'">
Account:     <b>'.$account->getName().'</b><BR>
Password:        <b>'.$new_pass.'</b><BR></TD></TR></TABLE></FORM>';
}
else {$main_content .= '<center><font size=3>Formato inválido, digite o mesmo password para os dois campos. Use apenas letras e números de a-Z, A-Z, 0-9.</center><br>';}
}
else {$main_content .= '<center>Chave de Recuperação errada!</center><br>';}
}
else {$main_content .= '<center>A account deste personagem não tem chave de recuperação!</center><br>';}
}
else {$main_content .= '<center>Personagem <b>'.$nick.'</b> não existe ou está digitado de forma errada.</center><BR />';}
}
else {$main_content .= '<center>Nome de personagem inválido. Se você tiver outros personagens na account tente com outro nome.</center>';}
$main_content .= '<TABLE CELLSPACING=0 CELLPADDING=0 BORDER=0 WIDTH=100%><TR><TD><center> <a href="'.$link.'" border="0"><IMG SRC="'.$layout_name.'/images/buttons/sbutton_back.gif" NAME="Back" ALT="Back" BORDER=0 WIDTH=120 HEIGHT=18></a></center> </TD></TR></FORM></TABLE></TABLE>';
}
################################## FIM ##########################################
# BY LUANLUCIANO - AJUDEI REP+
?>
Link para o comentário
Compartilhar em outros sites

serve pra SHA1?


Ainda não funcionar corretamente, muito menos para Sha1 ele ainda continua alterando a senha e deixa no formato PLAIN aonde qualquer um pode ler a senha na database, porém não consegue logar no jogo ou acessar a conta no site depois.

 

Você não arrumou o espaço para digitar a Recovery Key que ainda continua com 10 espaços sendo que ela pode ter até 22 caracteres.

 

Tudo isso eu te mandei mensagem e você ainda não arrumou, outra coisa eu pedi para fazer um que funcionasse em SHA1 e você também não fez!

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...