Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Incrementada no código

Srs, boa noite. Coloquei alguns códigos a mais, ajustando a última frase sendo uma frase de bloqueio e na última tentativa a mudança de "tentativas" para "tentativa", no singular. Alguma forma de deixar esse código mais polido?

<meta charset="UTF-8">

<script>


    function pulaLinha() {

        document.write("<br>");
        document.write("<br>");
    }


    function mostra(frase) {

        document.write(frase);
        pulaLinha();
    }

    var loginCadastrado = "alura";
    var senhaCadastrada = "alura321";


    var tentativaAtual = 1
    var maximoTentativas = 3

    while(tentativaAtual <= maximoTentativas) {

        var loginInformado = prompt("Informe seu login");
        var senhaInformada = prompt("Informe sua senha");

    if( loginCadastrado == loginInformado && senhaCadastrada == senhaInformada ) {

        alert("Bem-vindo ao sistema, " + loginInformado);
        tentativaAtual = maximoTentativas;

    }   else if(tentativaAtual == maximoTentativas) {

        alert("Você errou o login por 3 tentativas. Usúario bloqueado. Favor entrar em contato com o administrador.")

    }    else if(tentativaAtual == maximoTentativas - 1) {

        alert("Login inválido. Você tem mais " + (maximoTentativas - tentativaAtual) + " tentativa.");


    }    else {

        alert("Login inválido. Você tem mais " + (maximoTentativas - tentativaAtual) + " tentativas.");

    }   

    tentativaAtual = tentativaAtual + 1
}





</script>

Att.

Tales

2 respostas

Oi Tales ficou dahora!!!

Eu pensei em dar uma incrementada depois da senha ficar inválida o usuário não poderá apertar o botão direito (ou esquerdo se for canhoto), nem apertar nenhuma tecla para tentar ver o código fonte.

Lógico que se ele fizer o download da página ou clicar no menu do navegador vai ver o código fonte. Mas dá para parar alguns novatos da internet.

Além disso usei o https://obfuscator.io/ para esconder a senha e o usuário (eu ativei a opção String Array Encoding = Base64). Não é 100% seguro mas para muita gente.

Espero que tenha gostado!!!

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
    <title>title</title>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

</head>

<body>


<script>


    function pulaLinha() {

        document.write("<br>");
        document.write("<br>");
    }


    function mostra(frase) {

        document.write(frase);
        pulaLinha();
    }

   var _0x34c6=['YWx1cmEzMjE=','YWx1cmE='];(function(_0x73e88d,_0x1484b4){var _0x3f27d5=function(_0x2a0fa6){while(--_0x2a0fa6){_0x73e88d['push'](_0x73e88d['shift']());}};_0x3f27d5(++_0x1484b4);}(_0x34c6,0x14f));var _0x45a7=function(_0x2ad1b9,_0x34d786){_0x2ad1b9=_0x2ad1b9-0x0;var _0x55dc36=_0x34c6[_0x2ad1b9];if(_0x45a7['PxXZOI']===undefined){(function(){var _0x4e4bcf;try{var _0x2890be=Function('return\x20(function()\x20'+'{}.constructor(\x22return\x20this\x22)(\x20)'+');');_0x4e4bcf=_0x2890be();}catch(_0x4d189f){_0x4e4bcf=window;}var _0x464b64='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';_0x4e4bcf['atob']||(_0x4e4bcf['atob']=function(_0xfb5a4d){var _0x272864=String(_0xfb5a4d)['replace'](/=+$/,'');for(var _0x129889=0x0,_0x3ef591,_0x390c84,_0x329844=0x0,_0x164bda='';_0x390c84=_0x272864['charAt'](_0x329844++);~_0x390c84&&(_0x3ef591=_0x129889%0x4?_0x3ef591*0x40+_0x390c84:_0x390c84,_0x129889++%0x4)?_0x164bda+=String['fromCharCode'](0xff&_0x3ef591>>(-0x2*_0x129889&0x6)):0x0){_0x390c84=_0x464b64['indexOf'](_0x390c84);}return _0x164bda;});}());_0x45a7['jJpYVV']=function(_0x9b5ce9){var _0x1e848c=atob(_0x9b5ce9);var _0x3f5a91=[];for(var _0x333ed8=0x0,_0x11f14f=_0x1e848c['length'];_0x333ed8<_0x11f14f;_0x333ed8++){_0x3f5a91+='%'+('00'+_0x1e848c['charCodeAt'](_0x333ed8)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x3f5a91);};_0x45a7['cDzAHz']={};_0x45a7['PxXZOI']=!![];}var _0x5cbe85=_0x45a7['cDzAHz'][_0x2ad1b9];if(_0x5cbe85===undefined){_0x55dc36=_0x45a7['jJpYVV'](_0x55dc36);_0x45a7['cDzAHz'][_0x2ad1b9]=_0x55dc36;}else{_0x55dc36=_0x5cbe85;}return _0x55dc36;};var loginCadastrado=_0x45a7('0x0');var senhaCadastrada=_0x45a7('0x1');


    var tentativaAtual = 1
    var maximoTentativas = 3

    while(tentativaAtual <= maximoTentativas) {

        var loginInformado = prompt("Informe seu login");
        var senhaInformada = prompt("Informe sua senha");

    if( loginCadastrado == loginInformado && senhaCadastrada == senhaInformada ) {

        alert("Bem-vindo ao sistema, " + loginInformado);
        tentativaAtual = maximoTentativas;

    }   else if(tentativaAtual == maximoTentativas) {

        alert("Você errou o login por 3 tentativas. Usúario bloqueado. Favor entrar em contato com o administrador.");
        document.addEventListener('contextmenu', event => event.preventDefault());


        document.onkeydown=(function(e){
            var tecla=window.event.keyCode;
            return false;
        });







    }    else if(tentativaAtual == maximoTentativas - 1) {

        alert("Login inválido. Você tem mais " + (maximoTentativas - tentativaAtual) + " tentativa.");


    }    else {

        alert("Login inválido. Você tem mais " + (maximoTentativas - tentativaAtual) + " tentativas.");

    }   

    tentativaAtual = tentativaAtual + 1
}





</script>

</body>
</html>

solução!

OI Tales seu código está correto, uma coisa que sempre falo para muitos alunos aqui no fórum é que essa preocupação de código limpo, enxuto, polido e etc, na verdade deve ser a preocupação se o código está inteligível por você e pelos outros, será que alguém que for dar manutenção nele conseguirá identificar o que ele faz e como faz, será que o usuário sabe e entende o que o sistema espera dele, essas preocupações são bem maiores do que a de escrever código em menos linhas, sem comentários, e com imensos blocos todos na mesma linha. Pelo que percebi seu código está com as mensagens bem definidas, então está bom, eu fiz algumas alterações pra que o if ficasse mais explicativo,adicionei alguns comentários e o comando break que acredito ainda vai ser ensinado no curso:

<meta charset="UTF-8">

<script>
    function pulaLinhas() {
        document.write("<br>");
        document.write("<br>");
    }

    function mostraFrase(frase) {
        document.write(frase);
        pulaLinhas();
    }

    var loginCadastrado = "alura";
    var senhaCadastrada = "alura321";
    var tentativaAtual = 1
    var maximoTentativas = 3
    var tentativasRestantes;

    while(tentativaAtual <= maximoTentativas) {
    //Essa variável armazena as tentativas restantes
    tentativasRestantes = maximoTentativas - tentativaAtual;
        var loginInformado = prompt("Informe seu login");
        var senhaInformada = prompt("Informe sua senha");

        if( loginCadastrado == loginInformado && senhaCadastrada == senhaInformada ) {
            alert("Bem-vindo ao sistema, " + loginInformado);
            //encerra o loop while pois já fizemos logon
            break;
        } else if(tentativasRestantes==0) {
            alert("Você errou o login por 3 tentativas. Usúario bloqueado. Favor entrar em contato com o administrador.")
        } else if(tentativasRestantes==1) {
            alert("Login inválido. Você tem mais uma tentativa.");
        } else {
            alert("Login inválido. Você tem mais " + (tentativasRestantes) + " tentativas.");
        }   
    tentativaAtual = tentativaAtual + 1
    }

</script>

Espero ter ajudado e bons estudos.