[Do Zero] Como criar uma página de login – parte 2

Programando Do Zero

Na primeira parte de como criar uma página de login do zero, nós definimos todos os elementos e criamos toda a estrutura da página.

Se você não viu a primeira parte, volta lá e da uma conferida pra você não ficar perdido aqui.

Se quiser acompanhar e ser notificado, clique aqui e se inscreva para receber as notificações.

Próximos passos

Beleza, já temos nossa página de login, bem simples até então, apenas 5 elementos. E esse foi o resultado final aqui.

Bom o que está faltando na nossa página então? Ação!

Ela não tem nenhuma função até o momento, é uma página estática. Nessa segunda parte vamos começar a trabalhar com Javascript.

A idéia aqui é criar uma função chamada:

  • userLogin() – Essa função vai receber e enviar o dados do formulário para o servidor.

Antes disso precisamos fazer pequenos mudanças no código.

Ajustando o formulário

Para receber os dados da nossa página precisamos incluir mais alguns coisa no nosso formulário HTML.

A primeira delas é definir um id para o nosso formulário, assim o javascript consegue encontrar facilmente o formulário. Podemos fazer isso de forma bem simples, dentro da nossa tag <form> nós adicionamos id="login-form".

Segundo precisamos colocar uma ação de clique no botão de login. Dentro da tag <button> vamos incluir um novo atributo para especificar essa ação.

O atributo com nome da função (a ação que queremos executar) já atribuído fica assim, onclick="userLogin()", bem simples também.
O código do nosso formulário vai ficar desse jeito após essa pequenas inserções.

<div class="row align-items-center h-100 ">
   <div class="col-8 col-md-3 col-xs-8 mx-auto l-form">
     <form id="login-form">
       <img class="row mx-auto" src="https://i.imgur.com/RhJpe7c.png" width="150">
       <div class="form-group ">
         <input type="text" name="email" placeholder="Email" class="form-control i-form">
       </div>
       <div class="form-group">
         <input type="password" name="password" placeholder="Password" class="form-control i-form">
       </div>
       <div class="form-group">
         <button type="button" onclick="userLogin()" class="btn btn-dark btn-md btn-block">Login</button>
       </div>
     </form>
   </div>
</div>

Capturando dados do formulário

Essa é a função que vai receber os dados do usuário assim que ele clicar no botão de login.

Tem diversas formas de fazer isso, aqui resolvi usar Javascript puro para simplificar. O que estou fazendo é buscando nosso formulário na nossa página de login pelo id que definimos ali em cima, utilizando a função document.getElementById() do javascript para isso.

let userLogin = function () {
    let form = document.getElementById("login-form");
    let email = form.elements.namedItem("email").value;
    let password = form.elements.namedItem("password").value;
};

Com nosso formulário nas mãos, precisamos agora buscar os nossos campos de email e senha. O javascript também já oferece uma forma rápida de fazer isso, buscando o campo pelo atributo name="", que também ja foi definido nas etapas anteriores.

Enviando os dados para o servidor com XMLHttpRequest

Já temos toda a informação que precisamos, agora é enviar para o nosso servidor através de uma requisição HTTP.

Para isso nós vamos usar a Api XMLHttpRequest, que apesar do nome, nós podemos usar para obter qualquer tipo de dados, não só XML.

Esse é o código que vou utilizar para enviar os dados para o servidor. Não se preocupa, vou passar a limpo, e explicar o que esta acontecendo aqui.

let userLogin = function () {
    let form = document.getElementById("login-form");
    let email = form.elements.namedItem("email").value;
    let password = form.elements.namedItem("password").value;
    let credentials = "email=" + email + "&password=" + password;
    const xml = new XMLHttpRequest();

    xml.onreadystatechange = function () {
        if (xml.status == 200) {
            console.log(xml.response);
        }
    };

    xml.open("POST", "login.php");
    xml.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    xml.send(credentials);
};

XMLHttpRequest() é o construtor da API. Ele deve ser chamado antes que qualquer outro método da API.

xml.onreadystatechange essa propriedade contém o gerenciador de eventos a ser chamado quando o evento readystatechange for disparado, ou seja, sempre que a propriedade readyState do XMLHttpRequest mudar.

xml.status é a propriedade que retorna o código HTTP da resposta da chamada.

xml.response essa propriedade retorna o conteúdo do corpo da resposta vinda do servidor em diferentes formatos, dependendo do responseType.

xml.open() o método inicializa uma request, ou reinicia uma request já existente.

xml.setRequestHeader() define o valor do cabeçalho de uma requisição HTTP.

xml.send() esse é o método que envia a request para o servidor.

Detalhes da função

Na função xml.open(), defini dois parâmetros, o primeiro define o tipo da requisição, nesse caso, como queremos enviar dados para o servidor, estou usando o método POST. O segundo parâmetro representa a url a qual nós vamos enviar a requisição.

Também inclui dois parâmetros na função, xml.setRequestHeader(). O primeiro parâmetro cria um cabeçalho para a request que define o tipo de conteúdo enviado na requisição e o segundo identifica que tipo de conteúdo é esse.

1, 2, 3… Testando

Para testar a função, criei um arquivo PHP para receber esse dados dentro do localhost. Como você pode ver no código abaixo, bem simples, apenas para testes.

<?php
echo 'Resposta do servidor:';
echo '<br>';
echo 'Email: ' . ($_POST["email"]);
echo '<br>';
echo 'Password: ' . ($_POST["password"]);

Assim que o usuário clica no botão de login, o servidor responde com os dados que foram enviados.

Bom por enquanto é isso, eu convido você a fazer parte do projeto colaborativo, onde você pode colocar as suas idéias e praticar o o que você aprendeu. Basta clicar aqui para contribuir no projeto.

Mas o projeto ainda não terminou, próximo passo agora é conectar com o banco de dados. E podemos também fazer uma mudança para o JAVA.

Deixe nos comentários o que você quer ver no próximo conteúdo da série.
E não deixe de se inscrever, assine a newsletter aqui a baixo, que você vai ser informado assim que sair conteúdo novo.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

0 Comments