1
resposta

Duvida sobre arquivo login.php

Estou com uma duvida na parte do login, porque eu coloquei tanto o formulário e como a lógica dentro do arquivo 'login.php', conforme abaixo.

// login.php
<?php
    include("header.php");
    include("connect.php");
    include("table-user.php");

    if (array_key_exists("email", $_POST) &&
        array_key_exists("password", $_POST)) {
        $email = $_POST["email"];
        $password = $_POST["password"];

        $user = searchUser($link, $email, $password);

        if ($user == NULL) {
            // header("Location: ./index.php?login=0");
            printf("<p class='alert-fail'>Login Failed: Incorrect Email or Password<p>");
        } else {
            header("Location: ./index.php?login=1");
        }

        // die();
    }

?>

<form name="login" class="form-control" method="post" action="./login.php">

    <h2 class="full-width">Login</h2>

    <input id="email" name="email" type="email" placeholder="email@gamestore.com" autofocus required>

    <input id="password" name="password" type="password" placeholder="Password" required pattern="[A-Za-z0-9]{6,16}">

    <button type="submit">Login</button>

    <a href="./login.php?forgot-password"><small>Forgot Password?</small></a>

</form>

<?php include("footer.php"); ?>

Então, se você entrar uma email/login errados você continuara na página login.php, e caso o login tenha sido um sucesso você é redirecionado para index.php. Fiz isto porque é o que me parece ser conveção, e ter que voltar para a página inicial sempre que errar o login é um saco...

Minha duvida é referente a função die(), que tive que comentar pois ela não deixa mostrar o formulárioHTML após uma tentativa de login. Então eu queria saber quais os problemas que isto pode acarretar.

Obigado.

1 resposta

Oi Pedro, você não precisa necessariamente colocar os dois códigos na mesma página pra isso. Você pode fazer redirect para a página de login sempre que o login der errado ao invés de mandar para a página inicial.

Você pode colocar as mensagens de erro na sessão e exibir na página de login conforme necessário.

Eu até recomendo que faça assim. Geralmente a recomendação é: separe sua lógica da sua apresentação, sempre.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software