[Resolvido] Autenticação de Usuários
Olá amigos do Imasters, sou novo por aqui e preciso da ajuda de vocês!!
Fiz uma página de autenticação de usuários, na verdade praticamente copiei tudo de um livro que comprei (Desenvonvendo Websites com PHP)!
Vou postar os códigos para facilitar:
Criei a seguinte tabela no MYSQL:
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)
);
A seguir estão os outros códigos:
conecta_mysql.inc
<?php
$conexao = mysql_connect ("localhost", "root", "root");
mysql_select_db ("meu_banco");
?>
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>
login.php
<?php
// obtém os valores digitados
$username = $_POST["username"];
$senha = $_POST["senha"];
// acesso ao banco de dados
include "conecta_mysql.inc";
$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($conexao);
?>valida_cookies.inc
<?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 "conecta_mysql.inc";
$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($conexao);
?>pagina_inicial.php
<?php
include "valida_cookies.inc";
?>
<html>
<body>
<?php echo "Olá $nome_usuario."?> Seja bem-vindo ao meu site!!!<br>
Coloque o conteúdo do seu site aqui neste espaço.<br>
<p><a href="pagina2.php">PÁGINA 2</a></p>
<p><a href="logout.php">LOGOUT</a></p>
</body>
</html>
logout.php
<?php
setcookie("nome_usuario");
setcookie("senha_usuario");
header ("Location: login.html");
?>
Bom, vou explicar qual é o problema!! Eu estou aprendendo PHP... não tenho quase nada de conhecimento ainda, mas no meu estágio preciso fazer uma página deste tipo!!!
Esses códigos estão funcionando perfeitamente, mas eu queria complementar!! Gostaria de fazer uma página para a alteração de senhas do usuário... no caso, depois de logado, o usuário ter a opção de alterar a senha!!
Também gostaria de separar os usuários por níveis... por exemplo... usuários asministradores acessarem determinadas páginas que outros usuários não podem!!
Gostaria que me ajudassem, pois não tenho condições de fazer sozinho!!
Se puderem me dar algumas dicas também... no livro ensina a fazer utilizando cookies... mas também não sei se essa é a melhor forma... se puderem postar alguns códigos para me auxiliar eu agradeço!!
Discussão (5)
Carregando comentários...