Jump to content
Fórum Script Brasil
  • 0

Sistema de Login Simples


Wanderson Camargo

Question

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]

Edited by Wanderson Camargo
Link to comment
Share on other sites

6 answers to this question

Recommended Posts

  • 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.

Edited by Wanderson Camargo
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152.1k
    • Total Posts
      652k
×
×
  • Create New...