Sistema de Login em PHP

Dia desses um colega de trabalho me pediu um help para criar um sistema de login em PHP.
Como eu estava meio sem tempo para explicar muita coisa, fiz um sistema básico, com alguns comentários, e resolvi postar aqui para ajudar a mais alguém.

Siga os passos: Crie uma página que irá conter o formulário de acesso do usuário:

index.php

<form action="login.php" method="post">
Usuário <input type="text" name="TxtLogin" id="TxtLogin" size="15" /><br />
Senha <input type="password" name="TxtSenha" id="TxtSenha" size="15" /><br />
<input type="submit" name="BtnLogin" id="BtnLogin" value="Login" />
</form>

Segue abaixo a página que receberá as informações:

login.php

<?php
session_start();
if (isset($_POST['BtnLogin']))
{
// testa se a página foi chamada pelo form de login
    $login = $_POST['TxtLogin'];
    $senha = $_POST['TxtSenha'];
    // se quiser, criptografe para comparar com o banco
    $conn = mysql_connect($dbhost, $dbuser, $dbpass) or die(’Erro’);
    mysql_select_db($dbname, $conn);
    $sql = “SELECT id, nome, email FROM usuarios ”
        .” WHERE login = ‘$login’ AND senha = ‘$senha’”;
    $result = mysql_query($sql, $conn);
    if (mysql_num_rows($result) > 0) // usuario existe
    {
        // pega o array de resultados
        $dados = mysql_result($result, 0);
        // grava a sessão
        $_SESSION['usuario']['id_user'] = $dados['id'];
        $_SESSION['usuario']['nome'] = $dados['nome'];
        $_SESSION['usuario']['email'] = $dados['email'];
        header(’Location: logado.php’);
    }
    else
    {
        header(’Location: index.php’);
        // falha na autenticação
    }
    mysql_close();
}
else
{
    header(’Location: index.php’);
    // caso negativo, volta para index.php
}
?>

Em todas as páginas que o usuário deva estar logado para acessar, insira o seguinte código:

logado.php
<?php
session_start();
if (!isset($_SESSION['usuario']))
{
    header(’Location: index.php’); // vai para a página de login
    exit; // é importante para não executar o restante da página
}
// restante do código da página
echo “Olá, “.$_SESSION['usuario']['nome'].”! Seja bem-vindo de volta!”;
echo “<br /><br />n”
    .”<a href=”logout.php”>Sair</a>”;
?>

Para o usuário efetuar o logout, escreva uma página como a seguir:

logout.php

<?php
session_start();
session_destroy(); // "mata" TODAS as sessões criadas
// ou
unset($_SESSION['usuario']);
// “mata” somente a sessão criada para o usuário
header(’Location: index.php’);
?>

Espero que seja útil.
Caso queira, poderá utilizar orientação a objetos para isso, inclusive com serialização de dados antes de passar à sessão. Mas isso é assunto para outro post! ;-)

Ofertas Relacionadas
Tablet Coby 7015 4gb Memoria Android 2.1 Kyros Wifi Gratis
Tablet Coby 7015 4gb Memoria Android 2.1 Kyros Wifi Gratis
Mais info»
R$ 278.00
até 18x de 20.85
Tablet   Android 2.2 Wifi 3g Camera Hd 2gb Semelhante Ipad
Tablet Android 2.2 Wifi 3g Camera Hd 2gb Semelhante Ipad
Mais info»
R$ 379.90
até 18x de 28.49
Novo Tablet Coby Kyros 7020 Câmera Android 2.2 Wifi 4gb
Novo Tablet Coby Kyros 7020 Câmera Android 2.2 Wifi 4gb
Mais info»
R$ 309.00
até 18x de 23.18

Tags: , ,

Postar um comentário ou Deixe um Trackback
seperator

2 Comentários

  1. filipe
    21/05/2009 em 14:42 | Link permanente

    olá como eu fasso para cada usuario logado asseçar uma pagina diferente ?

  2. 19/02/2010 em 08:13 | Link permanente

    Funcional, simples, versátil e prático. Parabéns mesmo pelo post. Muito bom

Postar um comentário

Seu email nunca será publicado ou compartilhado. Campos obrigatórios estão marcados com *

*
*
*