O sistema será dividido em tres partes:
* Página de login, que recebe os dados do usuário, verifica se ele está cadastrado e cria os cookies
* Rotina de validacao para ser utilizada nas páginas que fazem parte das areas restritas
* Página de logout para os usuarios que estao autentificados
----------------------------------------------------------------------------
Abra seu mysql e digite:
create table usuarios
(
username varchar(10) NOT NULL,
senha varchar(10) NOT NULL,
nome varchar(80) NOT NULL,
email varchar(80) NOT NULL,
cidade varchar(40) NOT NULL,
estado char(2) NOT NULL,
primary key(username)
);
insert into usuarios values ('usuario,'senha',nome','email','Cidade','estado');
Repare que utilizamos o campo username como chave primária, pois isso nos garante q nao poderá haver nenhum username repetido em nosso bd.
Crie uma pagina chamada config.php com os seguintes codigos:
<?php
// configurações do banco de dados
$servidor = "localhost";
$usuario_bd = "usuario";
$senha_bd = "sua senha";
$banco = "nome_do_seu_banco";
$con = mysql_connect($servidor, $usuario_bd, $senha_bd);
mysql_select_db ($banco);
?>
Agora criaremos o form q irá inserir o cadastros dos usuarios
form.html
<form action="enviar_cadastro.php" method="post">
<table width="456" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="175"> </td>
<td width="281"> </td>
</tr>
<tr>
<td colspan="2"> <div align="center"><strong><font color="#006699">Por
favor, informe seus dados para poder se cadastrar<br>
<br>
</font></strong><font color="#006699"> <font color="#FF0000">ATENÇÃO!
Todos os campos são de preenchimento obrigatório.
</font></font></div></td>
</tr>
<tr>
<td> </td>
<td> </td>
</tr>
<tr>
<td><div align="right"><font color="#0066CC">Login:</font></div></td>
<td><input name="username" type="text" id="username"></td>
</tr>
<tr>
<td height="17"> <div align="right"><font color="#0066CC">Senha:</font></div></td>
<td><input name="senha" type="password" id="senha"></td>
</tr>
<tr>
<td height="17"> <div align="right"><font color="#0066CC">Repita a
senha:</font></div></td>
<td><input name="senha2" type="password" id="senha2"></td>
</tr>
<tr>
<td><div align="right"><font color="#0066CC">Nome:</font></div></td>
<td><input name="nome" type="text" id="nome" size="40"></td>
</tr>
<tr>
<td><div align="right"><font color="#0066CC">E-mail:</font></div></td>
<td><input name="email" type="text" id="email" size="40"></td>
</tr>
<tr>
<td><div align="right"><font color="#0066CC">Cidade:</font></div></td>
<td><input name="cidade" type="text" id="cidade" size="25"></td>
</tr>
<tr>
<td><div align="right"><font color="#0066CC">Estado:</font></div></td>
<td><select name="estado" size="1" id="estado">
<option value="RJ">RJ</option>
<option value="MG">MG</option>
<option value="ES">ES</option>
<option value="PR">PR</option>
<option value="SC">SC</option>
<option value="RS">RS</option>
<option value="MS">MS</option>
<option value="MT">MT</option>
<option value="GO">GO</option>
<option value="RO">RO</option>
<option value="AC">AC</option>
<option value="AM">AM</option>
<option value="RR">RR</option>
<option value="PA">PA</option>
<option value="TO">TO</option>
<option value="BA">BA</option>
<option value="SE">SE</option>
<option value="AL">AL</option>
<option value="PE">PE</option>
<option value="PB">PB</option>
<option value="RN">RN</option>
<option value="CE">CE</option>
<option value="PI">PI</option>
<option value="MA">MA</option>
<option value="AP">AP</option>
<option value="DF">DF</option>
<option selected>SP</option>
</select>
</td>
</tr>
<tr>
<td> </td>
<td><br> <input type="submit" name="Submit" value="Efetuar cadastro" style="cursor: hand">
<input type="reset" name="Submit2" value="Limpar dados" style="cursor: hand"></td>
</tr>
<tr>
<td> </td>
<td> </td>
</tr>
<tr>
<td> </td>
<td> </td>
</tr>
<tr>
<td> </td>
<td> </td>
</tr>
</table>
</form>
criaremos a pagina q irá receber os valores q foram digitados no form e colocaremos no bd, bom, esta parte eu adaptei com um sisteminha q eu tinha aki no meu PC com o sistema q o balala postou na parte de tutoriais
enviar_cadastro.php
<?
include "config.php"; //aqui inserimos as váriaveis da página de configuração
$pesquisar = mysql_query("SELECT * FROM usuarios WHERE username = '$username'"); //conferimos se o login escolhido já não foi cadastrado
$contagem = mysql_num_rows($pesquisar); //traz o resultado da consulta acima
if ( $contagem == 1 ) {
$errors .= "Login escolhido já cadastrado.<br>"; //se o login já existir, ele adiciona o erro
}
if ( $username == "" ) {
$errors .= "Você não digitou um login<br>"; //confere se o campo login não ficou vazio
}
if ( $senha == "" ) {
$errors .= "Você não digitou uma senha<br>"; //confere se o campo senha não ficou vazio
}
if ( $senha != $senha2 ) {
$errors .= "Você digitou 2 senhas diferentes.<br>"; //adiciona o erro caso o usuário digitou 2 senhas diferentes
}
if ( $nome == "" ) {
$errors .= "Você não digitou seu nome<br>"; //confere se o campo senha não ficou vazio
}
if ( $email == "" ) {
$errors .= "Você não digitou seu e-mail<br>"; //confere se o campo senha não ficou vazio
}
if ( $cidade == "" ) {
$errors .= "Você não digitou o nome de sua cidade<br>"; //confere se o campo senha não ficou vazio
}
if ( $errors == "" ) { //checa se houve ou não erros no cadastro
$cadastrar = mysql_query("INSERT INTO usuarios (username, senha, nome, email, cidade, estado)
VALUES ('$username', '$senha', '$nome', '$email', '$cidade', '$estado')"); //insere os campos na tabela
if ( $cadastrar == 1 ) {
echo "<div align=center><font color=#0066cc><br>Cadastro efetuado com sucesso.<br><br><a href=\"login.php\"><b>Clique aqui</b></a> para se logar no site</font></div>"; //se cadastrou com sucesso o usuário aparece essa mensagem
} else {
echo "<div align=center><font color=#0066cc>Ocorreu um erro no servidor ao tentar se cadastrar.</font></div>";
}
} else {
echo "<div align=center><font color=#0066cc><b>Ocorreu os seguintes erros ao tentar se cadastrar:</b><br>$errors<br><br> <a href=\"java script: history.back()\">« voltar</a></font></div>"; }
?>
Login
Após a criacao da tabela e inclusao de alguns usuarios, o proximo passo é fazer um programa de login, q recebe o username e senha.
login.html
<html>
<body>
<form method="POST" action="login.php">
<p align="center">Nome de usuário: <input type="text" name="username" size="10"></p>
<p align="center">Senha: <input type="password" name="senha" size="10"></p>
<p align="center"><input type="submit" value="Enviar" name="enviar"></p>
</form>
</body>
</html>
Ao clicar em enviar será ativado o programa login.php, q deve analisar as informacoes e retornar uma resposta para o usuario ou rendirecioná-lo para outra pagina.
login.php
<?php
// obtém os valores digitados
$username = $_POST["username"];
$senha = $_POST["senha"];
// acesso ao banco de dados
include "config.php";
$resultado = mysql_query("SELECT * FROM usuarios where username='$username'");
$linhas = mysql_num_rows ($resultado);
if($linhas==0) // testa se a consulta retornou algum registro
{
echo "<html><body>";
echo "<p align=\"center\">Usuário não encontrado!</p>";
echo "<p align=\"center\"><a href=\"login.html\">Voltar</a></p>";
echo "</body></html>";
}
else
{
if ($senha != mysql_result($resultado, 0, "senha")) // confere senha
{
echo "<html><body>";
echo "<p align=\"center\">A senha está incorreta!</p>";
echo "<p align=\"center\"><a href=\"login.html\">Voltar</a></p>";
echo "</body></html>";
}
else // usuário e senha corretos. Vamos criar os cookies
{
setcookie("nome_usuario", $username);
setcookie("senha_usuario", $senha);
// direciona para a página inicial dos usuários cadastrados
header ("Location: pagina_inicial.php");
}
}
mysql_close($con);
?>
Veja que primeiro foi feita uma consulta ao banco de dados para verificar se o usuario existe.
AUTENTIFICAÇÃO
Depois q o usuario fez o login, os cookies ja foram armazenados na maquina dele.
Agora vamos validar estes cookies.
valida.php
<?php
if(IsSet($_COOKIE["nome_usuario"]))
$nome_usuario = $_COOKIE["nome_usuario"];
if(IsSet($_COOKIE["senha_usuario"]))
$senha_usuario = $_COOKIE["senha_usuario"];
if(!(empty($nome_usuario) OR empty($senha_usuario)))
{
include "config.php";
$resultado = mysql_query("SELECT * FROM usuarios WHERE username='$nome_usuario'");
if(mysql_num_rows($resultado)==1)
{
if($senha_usuario != mysql_result($resultado,0,"senha"))
{
setcookie("nome_usuario");
setcookie("senha_usuario");
echo "Você não efetuou o LOGIN!";
exit;
}
}
else
{
setcookie("nome_usuario");
setcookie("senha_usuario");
echo "Você não efetuou o LOGIN!";
exit;
}
}
else
{
echo "Você não efetuou o LOGIN!";
exit;
}
mysql_close($con);
?>
agora em todas as paginas q vc quiser proteger vc tem q colocar no topo dela isto:
include "valida.php";
Bom pessoal, foi isso ae, espero q isso ajude em alguma coisa
Edição feita por: lukascolette, 11/04/2005, 12:40.











