Jump to content


Photo

Sistema De Login


  • Faça o login para participar
32 replies to this topic

#1 Spider-man

Spider-man

    Doutor

  • Usuários
  • 987 posts
  • Sexo:Não informado

Posted 09/04/2005, 11:47

E ae galera, bele? Bom, hj eu vou postar aki um tuto de sistema de login, eh bem legal e facil de se usar. Utilizaremos: mysql e cookies.
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">&nbsp;</td>
            <td width="281">&nbsp;</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&Ccedil;&Atilde;O!
                Todos os campos s&atilde;o de preenchimento obrigat&oacute;rio.
                </font></font></div></td>
          </tr>
          <tr>
            <td>&nbsp;</td>
            <td>&nbsp;</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>
              &nbsp;</td>
          </tr>
          <tr>
            <td>&nbsp;</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>&nbsp;</td>
            <td>&nbsp;</td>
          </tr>
          <tr>
            <td>&nbsp;</td>
            <td>&nbsp;</td>
          </tr>
          <tr>
            <td>&nbsp;</td>
            <td>&nbsp;</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

(y)

Edição feita por: lukascolette, 11/04/2005, 12:40.


#2 Buthy

Buthy

    Normal

  • Usuários
  • 93 posts
  • Sexo:Masculino

Posted 09/04/2005, 14:02

mto bom kra
c por acaso eu nao conseguir ajeitar o outro eu vou tentar com esse seu tuto ai ;)

vlw :P

#3 Spider-man

Spider-man

    Doutor

  • Usuários
  • 987 posts
  • Sexo:Não informado

Posted 09/04/2005, 14:07

mto bom kra
c por acaso eu nao conseguir ajeitar o outro eu vou tentar com esse seu tuto ai ;)

vlw :P

valeu aí, e se vc quiser adicionar usuaios pelo form eh soh vc dar um INSERT TO

(y)

#4 Marfioso

Marfioso

    ... Minha Vida ...

  • Banidos
  • PipPipPip
  • 271 posts
  • Sexo:Não informado
  • Localidade:Maceió - Alagoas

Posted 10/04/2005, 13:19

como eu faço pra que quando esse pagina logar redirecionar para outra
· Marfioso
· Membro WMONLINE
| Regras do Fórum · Warn System
· Não faça perguntas por MP ou E-Mail. Elas só ajudam a você
-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
"Sem saber que era possivél, ele foi lá e fez"

#5 Spider-man

Spider-man

    Doutor

  • Usuários
  • 987 posts
  • Sexo:Não informado

Posted 11/04/2005, 12:12

como eu faço pra que quando esse pagina logar redirecionar para outra

utilize o header("Location: pagina.php");

(y)

#6 henriquefr

henriquefr

    12 Horas

  • Usuários
  • 209 posts
  • Sexo:Não informado
  • Localidade:Cuiabá-MT
  • Interesses:PHP, Ajax e JavaScript.

Posted 14/04/2005, 14:43

tem como mostrar todos usuarios q estao online /???/
<?php

?>

#7 Spider-man

Spider-man

    Doutor

  • Usuários
  • 987 posts
  • Sexo:Não informado

Posted 14/04/2005, 15:47

http://forum.wmonlin...

#8 RAMBO

RAMBO

    12 Horas

  • Usuários
  • 146 posts
  • Sexo:Não informado
  • Localidade:Catanduva

Posted 16/04/2005, 00:21

será que posso interligar esse sistema com a do forum phpbb?

ou seja os que se cadastyraram no forum pode se logar com o mesmo nome de usuário e senha?

Edição feita por: RAMBO, 16/04/2005, 00:22.


#9 Spider-man

Spider-man

    Doutor

  • Usuários
  • 987 posts
  • Sexo:Não informado

Posted 16/04/2005, 09:19

eh soh vc mudar o

select * from tabela


pela tabela do seu forum e depois ver quais sao os campos q estao na tabela do forum

(y)

#10 Morse

Morse

    Behind Green Eyes!

  • Usuários
  • 118 posts
  • Sexo:Não informado
  • Localidade:São Paulo - SP
  • Interesses:PHP, Photoshop...

Posted 19/04/2005, 12:00

Ou... Cade o sistema de logout??
Eu num achei... malz...
[BRAX.CC] - APENAS 20 CARACTERES.. EM BREVE! ;)

#11 Spider-man

Spider-man

    Doutor

  • Usuários
  • 987 posts
  • Sexo:Não informado

Posted 19/04/2005, 12:42

soh colocar isto:

<?php
session_start();
$_SESSION = array();  // se você não estiver usando o array $_SESSION, use session_unset()
session_destroy();
header ("Location: login.php");
?>



#12 Morse

Morse

    Behind Green Eyes!

  • Usuários
  • 118 posts
  • Sexo:Não informado
  • Localidade:São Paulo - SP
  • Interesses:PHP, Photoshop...

Posted 19/04/2005, 19:42

Ahh tah vlw aeW!
[BRAX.CC] - APENAS 20 CARACTERES.. EM BREVE! ;)

#13 tiaguimsm

tiaguimsm

    Turista

  • Usuários
  • 26 posts
  • Sexo:Não informado

Posted 20/04/2005, 01:39

e ai blz...
eu so novo por aki e to tentanu aprende php
qq ajuda ai seria util

esse sistema de login n funciona aki em casa sempre q eu digito o
usuario e a senha da a msg vc n efetuou o login.....

como resolvo????

:unsure:

#14 Spider-man

Spider-man

    Doutor

  • Usuários
  • 987 posts
  • Sexo:Não informado

Posted 20/04/2005, 12:47

tipow, seu mysql ta rodando?

#15 tiaguimsm

tiaguimsm

    Turista

  • Usuários
  • 26 posts
  • Sexo:Não informado

Posted 20/04/2005, 14:17

ta sim cara de tudo certo eu consegui cadastra usuarios e tava dando alguns erros eu corrigi esses erros soh q n efetua o login




3 user(s) are reading this topic

0 membro(s), 3 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq