Olá galera estou fazendo um site para meu colégio e estou com um problema, com um sistema de cadastro e autenticação de usuarios. Será que alguém podia me ajudar com esse código. Bancos de Dados. usuarios.sql CREATE TABLE usuarios (
id tinyint(3) NOT NULL auto_increment,
login varchar(50) NOT NULL,
senha varchar(32) NOT NULL,
primary key(id)
);
cad.htm
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Formulario de Cadastro</title>
</head>
<body>
<div align="center">
<h1>Cadastro de usuários</h1>
<p> </p>
<form name="form1" method="post" action="cad.php">
<p>Login:
<input login="nome" type="text" id="login">
</p>
<p>Senha:
<input name="senha" type="password" id="senha">
</p>
<p>Confirmação Senha :
<input name="senha2" type="password" id="senha2">
</p>
<p>
<input name="envia" type="submit" id="envia" value="Enviar >>">
</p>
</form>
<p> </p>
</div>
</body>
</html>
cad.php
<?php
$login = $_POST["login"];
$senha = $_POST["senha"];
$senha2 = $_POST["senha2"];
$erro = FALSE;
mysql_connect ("localhost", "root", "");
mysql_select_db("tutos");
// Verifica ser está vazio o campo login
if (empty($login))
{
echo "Nome vazio<br />";
$erro = TRUE;
}
// Verifica se já existe algum login igual
if (mysql_num_rows(mysql_query("SELECT login FROM usuarios WHERE login = '$login'")) != 0) {
echo "Nome já existe<br />";
$erro = TRUE;
}
// Checa se a senha está vazia
if (empty($senha))
{
echo "Senha vazia<br />";
$erro = TRUE;
}
// Compara as 2 senhas
if ($senha != $senha2)
{
echo "Senhas diferentes<br />";
$erro = TRUE;
}
// Testa se o login é numerico
if (is_numeric($login))
{
echo "Nome incorreto<br />";
$erro = TRUE;
}
// Testa se a senha tem mais de 8 caracteres
if (strlen($senha) > 8)
{
echo "Senha com mais de 8 caracteres<br />";
$erro = TRUE;
}
// Testa se existiu algum erro
// Mesca coisa que ($erro != TRUE)
if (!$erro)
// Caso não tenha erro ele inseri no bd... cadastro completo!
{
mysql_query("INSERT INTO usuarios VALUES ('', '$login', '$senha')");
echo "Cadastro Feito com sucesso!";
}
else
// caso tenha erro ele manda essa mensagem!
echo 'Favor preencher corretamente o cadastro!<br /><a href="cad.htm">Voltar</a>';
?>
login.htm
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>LOGIN</title>
</head>
<body>
<form name="form1" method="post" action="login.php">
<p>Login:
<input name="login" type="text" id="login">
</p>
<p>Senha:
<input name="senha" type="password" id="senha">
</p>
<p>
<input type="submit" name="Submit" value="Enviar >>">
</p>
</form>
</body>
</html>
login.php
<?php
//obtem os valores digitador
$login = $_POST["login"];
$senha = $_POST["senha"];
//acessa ao banco de dados
$cn = mysql_connect("localhost", "usuario", "senha");
mysql_select_db("banco");
$resultado = mysql_query("select * from usuarios where login = '$login'");
$linhas = mysql_num_rows($resultado);
if ($linhas ==0)//testa se a consulta retornou algum registro
{
echo "Usuário não encontrado";
echo "<a href=login.htm>logar</a>";
} else {
if ($senha != mysql_result($resultado, 0, "senha"))//confere a senha
{
echo "Usuário não encontrado";
echo "<a href=login.htm>logar</a>";
}else{//usuario correto.. vamos criar os cookies com sessions...
session_start();//nunca esqueça de por isso antes de usar session
$_SESSION["login_usuario"] = $login;
$_SESSION["senha_usuario"] = $senha;
// redireciona par a pagina principal
header("Location: pagina_principal.php");
}
}
mysql_close($cn);
?>
valida_session.php
<?php
session_start();
if (isset($_SESSION["login_usuario"]) AND isset($_SESSION["senha_usuario"])) {
$login_usuario = $_SESSION["login_usuario"];
$senha_usuario = $_SESSION["senha_usuario"];
}else{
echo "Você não efetuou o login.";
exit();/*caso não tinha session.. quer dizer.. ele não logou*/
} /*aqui primeiro ele checa para ver se exite essas Sessoes, e depois ele coloca o valor das sessoes nessas variaveis... para fazermos os testes!*/
if(!(empty($login_usuario) OR empty($senha_usuario)))
{
//acessa ao banco de dados
$cn = mysql_connect("localhost", "usuario", "senha");
mysql_select_db("banco");
$resultado = mysql_query("select * from usuarios where login = '$login_usuario'");
if (mysql_num_rows($resultado) == 1)/*caso exista esse login.. vamos testar a senha então*/
{
if ($senha_usuario != mysql_result($resultado, 0, "senha"))
{
unset ($_SESSION["nome_usuario"]);/*apaga a session que existia mas era errada..*/
unset ($_SESSION["sehna_usuario"]);
echo "Você não efetuou o login.";
exit();
}
}else {
unset ($_SESSION["nome_usuario"]);
unset ($_SESSION["sehna_usuario"]);
echo "Você não efetuou o login.";
exit();
}
}else{
echo "Você não efetuou o login.";
exit();/*caso das sessions estarem vazias*/
}
mysql_close($cn);
?>
logout.php
<?php
session_start();
$_SESSION = array();
session_destroy();
header("Location: login.htm");
?>
pagina_principal.php
<?php
include "valida_session.php";
?>
<html>
<body>
Seja bem vindo ao site!!!<br>
Coloque o conteudo aqui!!!
<br><br><br>
<a href="lougout.php">Logout</a>
</body>
</hmtl> // Um erro de digitação aqui Agora vamos as perguntas. Como faço para colocar mais informações no cadastro, tipo: Nome, Sobrenome, Idade, Turma e Turno. E quais os comandos que devo acrescentar no na Tabela no Banco de Dados. E como faço para proteger as paginas pois eu acrescento o seguinte código abaixo, porém as paginas estão desprotegidas, pois eu não estando logado posso abrir a pagina. Quem poder me ajudar agradeço.