Área restrita em PHP utilizando sessões

Salve galera do blog. Hoje vou passar uma forma simples de criar um acesso restrito ao seu site em php utilizando um formulário HTML simples.

Em primeiro passo, vamos criar banco de dados e nossas tabelas em nosso MySQL. Acesse o seu MySQL e execute o código abaixo:

CREATE DATABASE `bancoteste`;

Já com nosso “bancoteste” criado, vamos adicionar nossa tabela.


CREATE TABLE `bancoteste`.`usuarios` (

`login` VARCHAR (50), `senha` VARCHAR (20), PRIMARY KEY(`login`) ) TYPE = MyISAM


Ok. Agora com o nosso banco de dados e nossa tabela criada, vamos dar início ao código. Abra um documento e salve-o como índex.php.

OBS: Para nunca perder seu código, salve-o sempre. Em qualquer alteração.

Na página índex, insira um formulário HTML com os campos Login e Senha como o exemplo abaixo:

<form id="form1" name="form1" method="post" action="<?=$_SERVER['PHP_SELF']?>?Action=logar">
Login : <input type="text" name="login" id="login" maxlength="50" /><br />
Senha : <input type="text" name="senha" id="senha" maxlength="20" /><br />
<input type="submit" name="logar" id="logar" value="Logar" />
</form>
Observe que colocamos na action do form, o comando <?=$_SERVER['PHP_SELF']?>?Action=logar, isso significa que ao dar o submit no form, o mesmo será carregado na página index.php. Agora com o form em nossa página, vamos ao código PHP.

No início da página, antes da tag <HTML>, vamos colocar o seguinte código:
<?
//testanos se existe a variavel Action e se ela é igual a logar
if(isset($_GET['Action']) && $_GET['Action']=='logar'){
//testamos também se esxiste as variáveis login e senha evniadas pelo form
if(isset($_POST['login']) && isset($_POST['senha'])){
//testamos se a variável login está vazia, es estiver, criamos o vetor erro
if(empty($_POST['login'])){
$erro[] = 'Preencha o campo login';
}
//testamos se a variável senha está vazia, es estiver, criamos o vetor erro (OBS: se erro existir, será acrescentado o valor a ele)
if(empty($_POST['senha'])){
$erro[] = 'Preencha o campo senha';
}
//se não existir erro, executamos o código abaixo
if(!isset($erro)){
//criamos a conexao com o banco de dados que criamos
$base = mysql_connect('127.0.0.1','root','')or die("erro na conexao");
//selecionamos o banco de dados
$bd = mysql_select_db('bancoteste')or die("erro ao selecionar o banco de dados");
//fazemos o select no banco para ver se o usuário digitado existe
$select = mysql_query("Select * From usuarios Where login='".$_POST['login']."' and senha='".$_POST['senha']."'")or die("erro no select");
//quantos registros retornaram
$qtde = mysql_num_rows($select);
//vemos se o número de registro é maior que zero
if($qtde > 0){
//pegamos os resultados
$aux = mysql_fetch_assoc($select);
//abrimos a sessão do usuario logado
session_start()
//criamos a sessão do usuário logado
$_SESSION['logado'] = $aux['login'];
$_SESSION['senha'] = $aux['senha'];
//redirecionamos para a página restrita
header ("Location: arearestrita.php");
exit();
}else{
//se não for maior que zero. gera o erro
$erro[] = 'Usuário não existe!';
}
}
}
}
//se existir o erro, mostramos ele na tela
if(isset($erro)){
echo 'Erro(s):<br>';
//como nosso erro está em vetor, exibimos todos os indices do vetor
foreach($erro as $mostraerro){
echo $mostraerro.'<br>';
}
}
//caso tente entrar na area restrita sem logar, receberemos a variavel get erro
if(isset($_GET['erro'])){
echo 'Erro(s):<br>';
echo $_GET['erro'];
}
?>
Observe que deixei os comentários dentro do próprio código. Agora vamos criar a página restrita. Abra um novo documento e salve-o como arearestrita.php. Digite o seguinte código:
<?
//abrimos novamente a sessao nesta página
session_start();
//se existir as sessões criadas na página index
if(isset($_SESSION['logado']) && isset($_SESSION['senha'])){
echo 'Seja bem vindo '.$_SESSION['logado'].'<br>';
}else{
header ("Location: index.php?erro=Faça o login");
exit();
}
?>
Agora é só cadastrar o usuário no banco de dados que criamos, e testar

0 comentários:

Postar um comentário

Leia as regras:
Todos comentários são lidos e moderados previamente.
são publicados aqueles que respeitam as regras abaixo:

-Seu comentário precisa ter relação com o assunto do post;
-Não inclua links desnecessários no conteúdo do seu comentário
-Se quiser deixar sua URL, comente usando a opção Comentar como:OpenID

OBS: comentários dos leitores não refletem as opniões do blog.