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

Sistema de Login e cadastro em php+mysql


sensshomaru

Pergunta

Bom galera este é meu primeiro tópico aqui no script brasil e para começar eu irei postar um script de cadastro de usuarios mais login utilizando php e o mysql como banco de dados bom para começar você deverá criar a tabela no banco de dados:

Tabela.sql

create table usuarios (

id int(10) unsigned not null auto_increment,

nome varchar(80) not null,

senha int(8) unsigned not null,

email varchar(80) not null,

primary key (id));

agora iremos criar o arquivo responsável pela conecção ao banco de dados:

config.php

<?

$host = "localhost"; //endereço do seu servidor MySQL

$database = "cadastro"; //o database que conterá sua tabela, muitas vezes seu próprio login

$tabela = "usuarios"; //o nome de sua tabela

$login_db = "root"; //login usado no MySQL

$senha_db = "1702"; //senha usado no MySQL

?>

Agora criaremos o formulário para os usuários se cadastrarem:

cadastrar.php

<html>

<head>

<style type="text/css">

<!--

form.login {

background-color: #FFFFCC;

width:155px;

font: 11px Verdana, sans-serif;

color: #003399;

border: 2px solid #000000;

padding-left:10px;

}

.campos {

background-color:#B0E0E6;

font: 11px georgia, sans-serif;

color:#0033CC;

margin-right: 15px;

}

input {

background-color: #B0E0E6;

font: 12px verdana, arial, helvetica, sans-serif;

color:#003399;

border:2px solid #000099;

}

</style>

</head>

<body>

<form name="cadastrar" method="post" action="enviar_cadastro.php">

<table width="400" border="0" cellspacing="0" cellpadding="0">

<tr>

<td width="150"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Nome:</font></td>

<td width="250"><input name="nome" type="text" id="nome" maxlength="75"></td>

</tr>

<tr>

<td><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Login:</font></td>

<td><input name="login" type="text" id="login" maxlength="30"></td>

</tr>

<tr>

<td><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Senha:</font></td>

<td><input name="senha" type="password" id="senha" maxlength="30"></td>

</tr>

<tr>

<td><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Repetir

Senha:</font></td>

<td><input name="senha2" type="password" id="senha2" maxlength="30"></td>

</tr>

<tr>

<td><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Email:</font></td>

<td><input name="email" type="text" id="email" maxlength="50"></td>

</tr>

<tr>

<td> </td>

<td> </td>

</tr>

<tr>

<td colspan="2"><div align="center">

<input name="enviar" type="submit" id="enviar" value="Enviar Cadastro">

<input name="limpar" type="reset" id="limpar" value="Limpar Dados">

</div></td>

</tr>

</table>

</form>

</body>

</html>

agora crie o arquivo que armazenará as informações do formulário de cadastro ao banco de dados:

enviar_cadastro.php

<?

include "config.php"; //aqui inserimos as váriaveis da página de configuração

$db = mysql_connect ($host, $login_db, $senha_db); //conectamos ao mysql

$basedados = mysql_select_db($database); //selecionamos o database escolhido

$pesquisar = mysql_query("SELECT * FROM `$tabela` WHERE login = '$login'", $db); //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 ( $login == "" ) {

$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 ( $errors == "" ) { //checa se houve ou não erros no cadastro

$cadastrar = mysql_query("INSERT INTO `$tabela` (nome, login, senha, email)

VALUES ('$nome','$login','$senha','$email')", $db); //insere os campos na tabela

if ( $cadastrar == 1 ) {

echo "<div align=center><font size=2 face=Verdana, Arial, Helvetica, sans-serif><br><br><br>Cadastro com sucesso.</font></div>"; //se cadastrou com sucesso o usuário aparece essa mensagem

} else {

echo "<div align=center><font size=2 face=Verdana, Arial, Helvetica, sans-serif><br><br><br>Ocorreu um erro no servidor ao tentar se cadastrar.</font></div>"; //caso houver um erro quanto as configurações aparece essa mensagem

}

} else {

echo "<div align=center><font size=2 face=Verdana, Arial, Helvetica, sans-serif>Ocorreu os seguintes erros ao tentar se cadastrar:<br><br>$errors</font></div>"; //mostra os erros do usuário, caso houver

}

?>

agora galera é só criar o formulário para os usuários efetuar o login:

Login.php

<html>

<head>

<style type="text/css">

<!--

form.login {

background-color: #FFFFCC;

width:155px;

font: 11px Verdana, sans-serif;

color: #003399;

border: 2px solid #000000;

padding-left:10px;

}

.campos {

background-color:#B0E0E6;

font: 11px georgia, sans-serif;

color:#0033CC;

margin-right: 15px;

}

input {

background-color: #B0E0E6;

font: 12px verdana, arial, helvetica, sans-serif;

color:#003399;

border:2px solid #000099;

}

</style>

</head>

<body>

<table border=2 bordercolor='#003399' rules=all>

<tr>

<td><form name="login" method="post" action="confirmar_login.php">

Login:

<input name="login" type="text" id="login">

<p>

Senha:<input name="senha" type="password" id="senha">

</p>

<p align=center><input name="entrar" type="submit" id="entrar" value="Entrar"></p>

<a href="senha.php">Esqueceu

a senha?</a>

<br><a href="cadastrar.php">Cadastre-se</a></br>

</td>

</tr>

</table>

</form>

</body>

</html>

agora o arquivo responsável por checar se o usuário realmente existe em nosso banco de dados:

confirmar_login.php

<?

session_start();

include "config.php"; //inclui o arquivo de configurações

$db = mysql_connect ($host, $login_db, $senha_db); //conecta ao mysql

$basedados = mysql_select_db($database); //conecta a base de dados

$confirmacao = mysql_query("SELECT * FROM `$tabela` WHERE login = '$login' AND senha = '$senha'", $db); //verifica se o login e a senha conferem

$contagem = mysql_num_rows($confirmacao); //traz o resultado da pesquisa acima

if ( $contagem == 1 ) {

$_SESSION['login'] = $login;

$_SESSION['senha'] = $senha;

echo "&lt;script>location.href=index1.php'</script>"; //entra na pagina restrita

echo "Usuário logado."; //se a senha digitada está correta, mostra a mensagem

} else {

echo "Login ou senha inválidos. <a href=Login.php>Clique aqui para voltar.</a>"; //se a senha está incorreta mostra essa mensagem

}

?>

pronto, feito isso crie o arquivo index1 que será o arquivo de teste quando o usuário fizer login e proceder tudo ok!

index1.php

<? //todas as páginas que você quiser por o nome de quem ta logado tem q por todo esse codigo no inicio

session_start();

if ( !isset($_SESSION['login]) ){

echo "&lt;script>location.href='erro.php';</script>";

}

?>

<p><strong>Olá!<b>

<?

echo $_SESSION['login']; ?>

(<a href=logout.php">Sair</a>) </b></strong></p>

agora só criar o arquivo logout que será o responsável por finalizar a sessão :

logout.php

<?

session_start(); //iniciamos a sessão que foi aberta

session_destroy(); //pei!!! destruimos a sessão ;)

session_unset(); //limpamos as variaveis globais das sessões

echo "&lt;script>alert('Você saiu!');top.location.href='Login.php';</script>"; /*aqui você pode por alguma coisa falando que ele saiu ou fazer como eu, coloquei redirecionar para uma certa página*/

?>

e agora galera eu criei dois arquivos especiais que são responsável por enviar a senha ao e-mail do usuário caso este esqueça, são os arquivos senha.php e enviar_senha.php um é o formulário e outro executa a função citada.OBS: o servidor smtp não está configurado apenas a função criada você deverá especificar qual servidor ficará encarregado de mandar a senha para o usuário.

Senha.php

<html>

<head>

<style type="text/css">

<!--

form.login {

background-color: #FFFFCC;

width:155px;

font: 11px Verdana, sans-serif;

color: #003399;

border: 2px solid #000000;

padding-left:10px;

}

.campos {

background-color:#B0E0E6;

font: 11px georgia, sans-serif;

color:#0033CC;

margin-right: 15px;

}

input {

background-color: #B0E0E6;

font: 12px verdana, arial, helvetica, sans-serif;

color:#003399;

border:2px solid #000099;

}

</style>

</head>

<body>

<form name="senha" method="post" action="enviar_senha.php">

<table width="400" border="0" cellspacing="0" cellpadding="0">

<tr>

<td width="150"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Login:</font></td>

<td width="250"><input name="login" type="text" id="login"></td>

</tr>

<tr>

<td><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Email:</font></td>

<td><input name="email" type="text" id="email"></td>

</tr>

<tr>

<td> </td>

<td> </td>

</tr>

<tr>

<td colspan="2"><div align="center">

<input name="enviar" type="submit" id="enviar" value="Enviar minha Senha">

</div></td>

</tr>

</table>

</form>

</body>

</html>

Enviar_senha.php

<?

include "config.php"; //inclui o arquivo de configurações

$db = mysql_connect ($host, $login_db, $senha_db); //conecta ao mysql

$basedados = mysql_select_db($database); //conecta a base de dados

$confirmacao = mysql_query("SELECT * FROM `$tabela` WHERE login = '$login' AND email = '$email'", $db); //verifica se o login e a email conferem

while ($row = mysql_fetch_array($confirmacao)) {

$login = $row["login]; //adiciona a variavel $login o login do usuario

$senha = $row["senha"]; //adiciona a variavel $senha a senha do usuario

$email = $row["email"]; //adiciona a variavel $email o email do usuario

}

$contagem = mysql_num_rows($confirmacao); //traz o resultado da pesquisa acima

if ( $contagem == 1 ) {

$msg = "Recuperação de senha" . chr(13) . chr(10);

$msg .= "Senha enviada em " . date("d/m/Y") . ", os dados seguem abaixo: " . chr(13) . chr(10) . chr(10);

$msg .= "Login : " . $login . chr(13) . chr(10);

$msg .= "Email : " . $email . chr(13) . chr(10);

$msg .= "Senha : " . $senha . chr(13) . chr(10);

$Remetente = "endereco@provedor.com.br"; //remetente do email, coloque o email do seu site

mail($email, "Recuperação de Senha",$msg,"From: $Remetenten"); //campos do email na ordem, email destinho (não deve ser alterada), assunto, conteudo (não deve ser alterado), remetente (também não altere)

echo "<div align=center><font size=2 face=Verdana, Arial, Helvetica, sans-serif>Sua senha foi enviada com sucesso para o email: $email.</font></div>"; //resposta se o email foi enviado com sucesso

} else {

echo "<div align=center><font size=2 face=Verdana, Arial, Helvetica, sans-serif>Seu login ou email está incorreto.</font></div>"; //resposta se não foi possivel enviar o email

}

?>

Bom galera este foi o meu tutorial espero ter ajudado aqueles que estão a procura de um sistema simples descomplicado e efetivo para sua página e para quem quiser estarei disponibilizando o link para o download de todos estes arquivos juntos valeu e até o próximo tutorial...

Link para Download

Link para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

  • 0

Reveja seu script.

Dei uma visualizada rapida, e logo no inicio já tem um erro pequeno.

Na parte sql não acha que esta faltando a opção login não?

Caso o login não esteja no SQL erro para cadatsar o usuario ira aconetcer, o script não vai aceitar e provavelmente dara um erro. Pois esta enviando um dado e no SQL não há como ser registrado.

Sempre é bom testar, reeler o script antes de postar, para evitar erros simples.

Link para o comentário
Compartilhar em outros sites

  • 0

Sensshomaru, Brother,

Segui passo a passo esse tutorial, mais quando vou enviar o cadastro aparece a seguinte mensagem de erro.

" Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home/freehost/t35.com/p/o/polos/enviar_cadastro.php on line 8

Ocorreu os seguintes erros ao tentar se cadastrar:

Você não digitou um login

Você não digitou uma senha "

line 7 $pesquisar = mysql_query("SELECT * FROM `$tabela` WHERE login = '$login'", $db); //conferimos se o login escolhido já não foi cadastrado

line 8 $contagem = mysql_num_rows($pesquisar); //traz o resultado da consulta acima

Apreciaria muito a ajuda de vocês..

Obrigado

Editado por Adenison Santos
Link para o comentário
Compartilhar em outros sites

  • 0
Sensshomaru, Brother,

Segui passo a passo esse tutorial, mais quando vou enviar o cadastro aparece a seguinte mensagem de erro.

" Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home/freehost/t35.com/p/o/polos/enviar_cadastro.php on line 8

Ocorreu os seguintes erros ao tentar se cadastrar:

Você não digitou um login

Você não digitou uma senha "

line 7 $pesquisar = mysql_query("SELECT * FROM `$tabela` WHERE login = '$login'", $db); //conferimos se o login escolhido já não foi cadastrado

line 8 $contagem = mysql_num_rows($pesquisar); //traz o resultado da consulta acima

Apreciaria muito a ajuda de vocês..

Obrigado

Esse erro é a falta de campo na tabela usuarios.

O criador do Topic errou na tabela SQL postada pelo mesmo.

Tente reecriar a tabela colocando este comando depois no SQL.

create table usuarios (
id int(10) unsigned not null auto_increment,
nome varchar(80) not null,
login varchar(30) not null,
senha int(8) unsigned not null,
email varchar(80) not null,
primary key (id));

Link para o comentário
Compartilhar em outros sites

  • 0

Sensshomaru: Parabens!!!

Sou iniciante e buscava um sistema assim há uma semana, tentei varios ( varios mesmo) outro tutorias sem sucesso ou eram complicados demais para iniciantes ou quem escrevia o tutorial ignorava explicar coisas que eles supunham obvias demais ( e para quem é iniciante o óbvio nem sempre é obvio demais...)

Enfim: salvo a errinho na sua tabela, devidamente corrigido pelo Brother, rodou perfeito.

Te parabenizo e fico esperando outros posts seus.

Obrigada.

Um abraco e muito obrigada!

Link para o comentário
Compartilhar em outros sites

  • 0

Um erro encontrado apenas:

Se eu cadastrar um usuário e depois tentar me logar colocando somente o nome de usuário cadastrado Sem Senha ( ou com senha errada) eu consigo acessar....

não deveria ter acesso apenas usuários que digitassem corretamente nome de Usuário cadastrado + senha cadastrada?

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,1k
    • Posts
      651,8k
×
×
  • Criar Novo...