Ir para conteúdo
Fórum Script Brasil
  • 0

Cadastro e Autenticação de usuario.


Tudo Aqui Downloads

Pergunta

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>&nbsp;</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>&nbsp;</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.

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0
Como faço para colocar mais informações no cadastro, tipo: Nome, Sobrenome, Idade, Turma e Turno.

Isso é HTML puro, se você tiver um editor visual (dreamweaver, frontpage,etc), basta abrir o arquivo nele e utilizar as próprias ferramentas para criar mais campos, no ai no PHP basta seguir a lógica que já está no seu script:

$login = $_POST["login"];

Veja que $_POST["login"] resgata o valor vindo do formulário, onde login é o nome do campo no formulário.

E quais os comandos que devo acrescentar no na Tabela no Banco de Dados.

Para isso você vai ter que estudar e escolher entre os diversos tipos de campos que existem:

http://www.thunder-design.net/th/index.php?showtopic=30283

http://www.criarweb.com/artigos/118.php

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.

A página que é responsável por proteger é a "valida_session.php" e o modo como foi usado incluindo no topo do arquivo é o correto, se realmente os dados estão sendo exibido deve ter algum erro naquele monte de if ali (que nem precisaria), eu dei uma olhada por cima e pareceu normal...

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      652,1k
×
×
  • Criar Novo...