Ir para conteúdo
Fórum Script Brasil
  • 0

Sistema de Login Simples


Wanderson Camargo

Pergunta

Sistema de Login Simples

Este sistema é bem simples e funciona principalmente para lecionar como funciona as sessões em PHP. Basicamente ele é dividido em 4 arquivos que devem estar na mesma pasta do servidor. Para outras páginas de seu aplicativo, basta colocar no início de cada uma o conteúdo do arquivo pagina.php ou efetuar somente o include_once desta.

index.php


<form method="post" action="login.php">
Usuário<br/>
<input type="text" name="usuario" value=""/><br/>
Senha<br/>
<input type="password" name="senha" value=""/><br/>
<input type="submit" value="Login!"/>
</form>
[/codebox]

login.php

[codebox]
<?php
$usuario = $_POST['usuario'];
$senha = $_POST['senha'];

/*
Crie um vetor $table[] que contenha as chaves
'usuario' e 'senha' sendo que seus valores podem
vir de qualquer lugar, como por exemplo um banco de dados.
*/
$table = array();
$table['usuario'] = "admin";
$table['senha'] = "12345";

if($usuario == $table['usuario'] && $senha == $table['senha']) {
session_start();
$_SESSION['usuario'] = $usuario;
$_SESSION['senha'] = $senha;
header("Location: principal.php");
}
else
header("Location: index.php");
?>

principal.php


<?php
session_start();
if(!isset($_SESSION['usuario']))
header("Location: logout.php");
?>
Olá <?=$_SESSION['usuario']?>! <a href="logout.php"/>Logout!</a>
[/codebox]

logout.php

[codebox]
<?php
session_start();
$_SESSION = array();
unset($_SESSION);
session_destroy();
header("Location: index.php");
?>

pagina.php


<?php
session_start();
if(!isset($_SESSION['usuario']))
header("Location: logout.php");
?>
[/codebox]

Editado por Wanderson Camargo
Link para o comentário
Compartilhar em outros sites

6 respostass a esta questão

Posts Recomendados

  • 0

Olá Bruno!

Obrigado por postar sua pergunta aqui neste tópico, pois ela pode ser também uma curiosidade de outro usuário. Estava eu olhando novamente o código e com algumas coisas adicionais que aprendi em PHP, vamos modificar então, aquela área de pesquisa do usuário. Vamos fazer uma pesquisa simples de login. Vou reencrever novamente: simples. Ela não serve para uma base de dados, por exemplo. Caso seja necessário uma pesquisa em banco, podemos construir.

Vamos formular uma pesquisa simples, onde existe um array de usuários. As chaves desse array são os nomes de usuário e a senha o conteúdo de cada posição. Ou seja: para que eu procure a senha de 'wanderson' basta eu acessar a posição $table['wanderson']. Caso as senhas sejam iguais, efetua o acesso; caso contrário, como uma chave inexistente ou senha diferente, erro.

$table = array();
$table['wanderson'] = '12345';
$table['joana'] = 'filha';
$table['admin'] = 'admin';
Ou poderás construir da seguinte maneira:
$table = array('wanderson' => '12345', 'joana' => 'filha', 'admin' => 'admin');

Agora, vamos fazer o seguinte: existe uma função chamada array_key_exists que retorna true se a chave de um array informado existe. Caso exista a chave, verificamos a senha, comparamos a senha digitada com a senha do array. Se as duas forem iguais, o login é efetuado com sucesso; caso contrário, falha de autenticação.

login.php


<?php
$usuario = $_POST['usuario'];
$senha = $_POST['senha'];

/*
Crie um vetor $table[] que contenha as chaves
'usuario' e 'senha' sendo que seus valores podem
vir de qualquer lugar, como por exemplo um banco de dados.
*/
$table = array();
$table['wanderson'] = '12345';
$table['joana'] = 'filha';
$table['admin'] = 'admin';

if(array_key_exists($usuario,$table) && $table[$usuario] == $senha) {
session_start();
$_SESSION['usuario'] = $usuario;
$_SESSION['senha'] = $senha;
header("Location: principal.php");
}
else
header("Location: index.php");
?>
[/codebox]

Lembro novamente que este tutorial visa somente auxiliar na inicialização de novos programadores em PHP para um sistema de login.

Desde já agradeço as visitas.

Editado por Wanderson Camargo
Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,7k
×
×
  • Criar Novo...