Ir para conteúdo

Featured Replies

Postado

Olá pessoal, estou com um problema e preciso da ajuda de vocês ... 

• Eu fiz umas mudanças no arquivo original do lostaccount.php do gesior para um amigo, porém não esta dando muito certo, o arquivo não esta salvando as novas senhas em sha1. O problema é que eu uso o gesior2012, e no meu esta dando certinho, mas no dele não, ele usa o gesior padrão. Alguém poderia me ajudar?


• Aproveitando para tirar uma outra dúvida ... eu mudei nele a forma de etapas, de action=' ' para step=' ', a diferença é que ao invés da url for mudando de etapa em etapa, como acontece na forma actions, a url, usando a forma de steps não muda, fica patrão (subtopic=lostaccount) em todas as etapas. A pergunta é: isso muda algo do script? Como por exemplo segurança?


lostaccount.php


 
<?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()
$newpassgesior = password_ency($newpassword); # OLD Gesior = password_ency($newpassword) / NEW GESIOR = $newpassword
$step = $_REQUEST['step']; #


################################## 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:&nbsp;&nbsp;&nbsp;&nbsp;<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:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<INPUT id="passor" TYPE=password NAME="new_pass" VALUE="" autocomplete="off" SIZE="31" MAXLENGTH="30"><BR>
                     Repita a nova senha:&nbsp;&nbsp;<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($newpassgesior);
                            $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:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>'.$account->getName().'</b><BR>
                            Nova senha:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<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
?>


Fico no aguardo de respostas. Obrigado!

Editado por luanluciano93 (veja o histórico de edições)

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Responder

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.6k

Informação Importante

Confirmação de Termo