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

Script De Autenticação


Rodolpho Amorim

Pergunta

Aew. beleza Galerita tongue.gif

Tipo Fiz aki minha pagina de cadastro de Users, Cadastro de Pendencias,Informações da Pendencia, e Modificar Pend, Agora queo fazer a pagina de Login, porque não adianta de nada alguém se cadastrar e poder cadastrar uma pendencia, sem login não é? laugh.gif

Ai tipo eu queria saber q script eu uso pra criar essa pagina de login e um outro scriptzinho para as outras paginas só abrirem quando o cara tiver se autenticado lá na de login saka. q se alguém tiver ai tambem um pra mim coloca em todas as paginas pra ficar tipo lá no canto. Você esta Logado como (Nome) .

Agradeço desde já pela atenção. Vlwsssss

Link para o comentário
Compartilhar em outros sites

Posts Recomendados

  • 0

Aew

Grande Adailton laugh.gif

Tah aki minha pag de cadastro de usuario

<?

if (empty($_GET[cad])) {

?>

<form action=?cad=1" method="POST">

<table align="center" border="0" width="450">

<tr>

<td bgcolor="#000000" width="450" height="25" colspan="2" align="center"><font face="Arial, Helvetica" color="FFFFFF"><b>Cadastro de Usuários</b></font></td>

</tr>

<tr>

<td width="100"><b>Nome</b>:</td><td width="350"><input type="text" name="nome" size="40"></td>

</tr>

<tr>

<td width="100"><b>Email</b>:</td><td width="350"><input type="text" name="mail" size="40"></td>

</tr>

<tr>

<td width="450" align="center" colspan="2"><input type="submit" value="Cadastrar"></td>

</tr>

</table>

<?

} else {

mysql_connect('localhost','root','');

mysql_select_db('control');

$nome = $_POST[nome];

$mail = $_POST[mail];

$sql="SELECT * FROM usuarios WHERE nome='$nome'";

$sql_result=mysql_query($sql);

$resultados=mysql_fetch_array($sql_result);

if (!empty($resultados["nome]))

{

echo "O Nome de Usuário <B>$nome</B> Já Existe.";

}

else

   

$sql = "INSERT INTO usuarios(nome,mail,data) VALUES('$nome','$mail',NOW())";

mysql_query($sql) or die(mysql_error());

$retorno = mysql_affected_rows();

if ($retorno == 1){

  echo "<h3>Usuário <b><font color='red'>$nome</b></font> Cadastrado com sucesso!</h3>";

}

mysql_close();

vlw again mano

Link para o comentário
Compartilhar em outros sites

  • 0

Para mostrar os * no form é colocar no campo input tipo senha.... mas no banco pode usar criptografia MD5... depois nos vemos isto...

Criou os campos....????

Cria no formulário de cadastros os campos usuario e senha.....e não esque de incluir os campos no insert do banco de dados...

So um detalhe a verificação de duplicidade vai mudar... você não que que tenha dois logins iguais certo...

Faz o form depois te explico isto

Adailton

Link para o comentário
Compartilhar em outros sites

  • 0

Aew.

Criei o o campo senha, o usuario vai ser o nome mesmo OKs

Aki como tah my page

<?

if (empty($_GET[cad])) {

?>

<form action=?cad=1" method="POST">

<table align="center" border="0" width="450">

<tr>

<td bgcolor="#000000" width="450" height="25" colspan="2" align="center"><font face="Arial, Helvetica" color="FFFFFF"><b>Cadastro de Usuários</b></font></td>

</tr>

<tr>

<td width="100"><b>Nome</b>:</td><td width="350"><input type="text" name="nome" size="40"></td>

</tr>

<tr>

<td width="100"><b>Senha</b>:</td><td width="350"><input type="password" name="senha" size="40"></td>

</tr>

<tr>

<td width="100"><b>Email</b>:</td><td width="350"><input type="text" name="mail" size="40"></td>

</tr>

<tr>

<td width="450" align="center" colspan="2"><input type="submit" value="Cadastrar"></td>

</tr>

</table>

<?

} else {

mysql_connect('localhost','root','');

mysql_select_db('control');

$nome = $_POST[nome];

$mail = $_POST[mail];

$senha = $_POST[senha];

$sql="SELECT * FROM usuarios WHERE nome='$nome'";

$sql_result=mysql_query($sql);

$resultados=mysql_fetch_array($sql_result);

if (!empty($resultados["nome]))

{

echo "O Nome de Usuário <B>$nome</B> Já Existe.";

}

else

   

$sql = "INSERT INTO usuarios(nome,mail,data,senha) VALUES('$nome','$mail','$senha',NOW())";

mysql_query($sql) or die(mysql_error());

$retorno = mysql_affected_rows();

if ($retorno == 1){

  echo "<h3>Usuário <b><font color='red'>$nome</b></font> Cadastrado com sucesso!</h3>";

}

mysql_close();

}

I Agura ?

Link para o comentário
Compartilhar em outros sites

  • 0

Voce colocou quantos caracters no bd campo senha.... limita o campo senha no form tambem

Perfeito....

Agora crie uma pagina login.php contendo dois campos

1 nome - que seria usuario

2 senha - para senha do cara

aponta action para autentica.php method POST já te passo a pagina autentica.php

Adailton

Link para o comentário
Compartilhar em outros sites

  • 0

Ta ai..

pagina autentica.php

<?

//CONECTA COM O BANCO DE DADOS

require_once("conecta.php");

    function anti_injection($sql)

      {

      // remove palavras que contenham sintaxe sql

      $seg = preg_replace(sql_regcase("/(from|select|insert|delete|where|drop table|show tables|#|\*|--|\\\\)/"),"",$sql);

      $seg = trim($seg);//limpa espaços vazio

      $seg = strip_tags($seg);//tira tags html e php

      $seg = addslashes($seg);//Adiciona barras invertidas a uma string

      return $seg;

      }

//RECEBE OS DADOS DO FORMULÁRIO

$nome = anti_injection($_POST["nome"]);

$senha = anti_injection($_POST["senha"]);

  //VERIFICA

$sql  =  mysql_query("

          SELECT a.id, a.nome, a.senha FROM usuarios a

    WHERE  a.nome  =  '$nome'

        AND a.senha    =  '$senha'") or die("ERRO NO COMANDO SQL");

//LINHAS AFETADAS PELA CONSULTA

$row  =  mysql_num_rows($sql);

//VERIFICA SE RETORNOU ALGO

if($row == 0) Header("Aqui voce coloca o endereço da pagina de ERRO DE LOGIN");

else {

    //PEGA OS DADOS

  $id  =  mysql_result($sql, 0, "id");

  $nome =  mysql_result($sql, 0, "nome");

 

    //INICIALIZA A SESSÃO

  session_start();

  $s = session_id();

  //GRAVA AS VARIÁVEIS NA SESSÃO

  $_SESSION[id]    =  $id;

  $_SESSION[nome]  =  $nome;

 

 

  //CASO ESTEJA CERTO VAI PARA PAGINA PROTEGIDA

  Header("Location: pagina_protegida.php?s=$s&id=$id&nome=$nome");

}//FECHA ELSE

?>

pagina conecta.php

<?

//DADOS PARA CONEXÃO

$servidor  =  "localhost";  //SERVIDOR

$bd        =  "control";      //DATABASE

$usuario_bd    =  "root";        //USUÁRIO

//$senha_bd      =  "";            //SENHA

//CONECTANDO

$conn    =  @mysql_connect($servidor, $usuario_bd)

            or die("ERRO NA CONEXÃO");

//SELECIONA O DATABASE A SER UTILIZADO

$db      =  @mysql_select_db($bd, $conn)

            or die("ERRO NA SELEÇÃO DO DATABASE");

?>

pagina verifica.php - esta pagina você chama por include nas pg que você quer proteger

<?

//INICIALIZA A SESSÃO

session_start();

  //VERIFICANDO LOGADO

  @$id_logado = $_GET['id];

 

//SE NÃO TIVER VARIÁVEIS REGISTRADAS

//RETORNA PARA A TELA DE LOGIN

if( (!isset($_SESSION[id])) AND (!isset($_SESSION[nome])) )

  Header("Location: login.php?msg=Área%20Restrita.<BR>Para%20acessar,%20entre%20com%20seu%20login%20senha.");

 

  else{

    if($_SESSION['id']!=$id_logado)

  Header("Location: login.php?msg=Área%20restrita.<BR>Para%20acessar,%20entre%20com%20seu%20login%20senha.");

  }

 

  ?>

Ta ai

Adailton

Link para o comentário
Compartilhar em outros sites

  • 0

Aew

Vlw grande Adailton.

Mais carma ae......

Tipo assim eu to aprendendo PHP. ai tipo sei que fica meio foda de vocês explica uq é uq. mais é que eu queria aprender a criar as paginas saka e não pegar faita. NÃO TO DESPRESANDO !!!!!!!!!!!!! Só queria saber se você pode me explicar aguns comandos ai e se pode explicar tambem o include, porque sou novato ainda.

biggrin.gif

Se puder beleza wink.gif

Se não puder, Tah beleza, sei que é até um pouco de folgade-sa de minha parte.

VLW MESMO MANOW precisando de algo eu to ai

Link para o comentário
Compartilhar em outros sites

  • 0

Ok então vamos por parte

na pagina autentica.php

o script recebe as varivais nome e senha - e faz a verificação com a função anti_injection - essa função remove das variaveis funções sql que poçam burlar o sistema de autenticação... não vou entrar em detalhes... tem muito material no site..

a esta função foi feita pelo Fabyo - membro do scriptbrasil - e admin no imasters..

(creditos - resolveu um problemão meu)

function anti_injection($sql)

{

// remove palavras que contenham sintaxe sql

$seg = preg_replace(sql_regcase("/(from|select|insert|delete|where|drop table|show tables|#|\*|--|\\\\)/"),"",$sql);

$seg = trim($seg);//limpa espaços vazio

$seg = strip_tags($seg);//tira tags html e php

$seg = addslashes($seg);//Adiciona barras invertidas a uma string

return $seg;

}

//RECEBE OS DADOS DO FORMULÁRIO

$nome = anti_injection($_POST["nome"]);

$senha = anti_injection($_POST["senha"]);

Le a função e posta as duvidas.... repara que isto é so para recuperar as variaveis para login

Link para o comentário
Compartilhar em outros sites

  • 0

Da uma olhada...

Repare nos Headers.... o primeiro é para caso o caro tenha errado...o segundo para caso esteje certo o login e senha... vai para pg protegida.. Você coloca a pagina de erro e login..

//RECEBE OS DADOS DO FORMULÁRIO

$nome = anti_injection($_POST["nome"]);

$senha = anti_injection($_POST["senha"]);

  //VERIFICA

$sql  =  mysql_query("

          SELECT a.id, a.nome, a.senha FROM usuarios a

    WHERE  a.nome  =  '$nome'

        AND a.senha    =  '$senha'") or die("ERRO NO COMANDO SQL");

//LINHAS AFETADAS PELA CONSULTA

$row  =  mysql_num_rows($sql);

//VERIFICA SE RETORNOU ALGO

if($row == 0) Header("Aqui voce coloca o endereço da pagina de ERRO DE LOGIN");

else {

    //PEGA OS DADOS

  $id  =  mysql_result($sql, 0, "id");

  $nome =  mysql_result($sql, 0, "nome");

    //INICIALIZA A SESSÃO

  session_start();

  $s = session_id();

  //GRAVA AS VARIÁVEIS NA SESSÃO

  $_SESSION[id]    =  $id;

  $_SESSION[nome]  =  $nome;

  //CASO ESTEJA CERTO VAI PARA PAGINA PROTEGIDA

  Header("Location: pagina_protegida.php?s=$s&id=$id&nome=$nome");

}//FECHA ELSE

?>

Ps... repare que no header, aonde o cara acerta estou passanda a SID o ID do banco e o nome do cara...

Outra coisa você pode no header do erro de login você pode colocar a pagina de login com uma menssagem... tipo

login.php?msg=Erro%20de%20usuário%20ou%20senha.<BR>Tente%20de%20novo

ai ma pagina de login você faz assim em algum lugar <? echo "$msg";?>

OK

Link para o comentário
Compartilhar em outros sites

  • 0

IXI... to lascado hehehehe. minha cabeça vai cair !!!!

shaIUSHAiushaIUSH

Axo que esta tudo certo oia aki

Minha pagina de Login:

<html>

<head><title>Login</title></head>

<body bgcolor="#ffcc33">

<form action="autentica.php" method="POST">

<table align="center" border="0" width="450">

<tr>

<td bgcolor="#000000" width="450" height="25" colspan="2" align="center"><font face="Arial, Helvetica" color="FFFFFF"><b>Efetuar Login Como:</b></font></td>

</tr>

<tr>

<td width="100"><b>Nome</b>:</td><td width="350"><input type="text" name="nome" size="30"></td>

</tr>

<tr>

<td width="100"><b>Senha</b>:</td><td width="350"><input type="password" name="senha" size="15s"></td>

</tr>

<tr>

<td width="450" align="center" colspan="2"><input type="submit" value="Login"></td>

</tr>

</table>

</body>

</html>

Minha pagina de autentica.php :

<?

//CONECTA COM O BANCO DE DADOS

require_once("conecta.php");

    function anti_injection($sql)

      {

      // remove palavras que contenham sintaxe sql

      $seg = preg_replace(sql_regcase("/(from|select|insert|delete|where|drop table|show tables|#|\*|--|\\\\)/"),"",$sql);

      $seg = trim($seg);//limpa espaços vazio

      $seg = strip_tags($seg);//tira tags html e php

      $seg = addslashes($seg);//Adiciona barras invertidas a uma string

      return $seg;

      }

//RECEBE OS DADOS DO FORMULÁRIO

$nome = anti_injection($_POST["nome"]);

$senha = anti_injection($_POST["senha"]);

  //VERIFICA

$sql  =  mysql_query("

          SELECT a.id, a.nome, a.senha FROM usuarios a

    WHERE  a.nome  =  '$nome'

        AND a.senha    =  '$senha'") or die("ERRO NO COMANDO SQL");

//LINHAS AFETADAS PELA CONSULTA

$row  =  mysql_num_rows($sql);

//VERIFICA SE RETORNOU ALGO

if($row == 0) Header("Erro: Não foi possivcel efetura login");

else {

    //PEGA OS DADOS

  $id  =  mysql_result($sql, 0, "id");

  $nome =  mysql_result($sql, 0, "nome");

    //INICIALIZA A SESSÃO

  session_start();

  $s = session_id();

  //GRAVA AS VARIÁVEIS NA SESSÃO

  $_SESSION[id]    =  $id;

  $_SESSION[nome]  =  $nome;

  //CASO ESTEJA CERTO VAI PARA PAGINA PROTEGIDA

  Header("Location: pend.php?s=$s&id=$id&nome=$nome");

}//FECHA ELSE

?>

Tem algo errado ai ??????????????????

Por que quando eu vo loga ele joga pra abrir a autentica mais nada acontece...

Link para o comentário
Compartilhar em outros sites

  • 0

Existe sim a pend.php e esta juta a todas as outras pags, id é sim minha chave.

tentei colocar o sucesso lá mais da no mesmo e já retireio o @ e nada oia como estao as 3 pags

login.php

<html>

<head><title>Login</title></head>

<body bgcolor="#ffcc33">

<form action="autentica.php" method="POST">

<table align="center" border="0" width="450">

<tr>

<td bgcolor="#000000" width="450" height="25" colspan="2" align="center"><font face="Arial, Helvetica" color="FFFFFF"><b>Efetuar Login Como:</b></font></td>

</tr>

<tr>

<td width="100"><b>Nome</b>:</td><td width="350"><input type="text" name="nome" size="30"></td>

</tr>

<tr>

<td width="100"><b>Senha</b>:</td><td width="350"><input type="password" name="senha" size="15s"></td>

</tr>

<tr>

<td width="450" align="center" colspan="2"><input type="submit" value="Login"></td>

</tr>

</table>

</body>

</html>

pend.php

<html>

<head><title> Cadastro de  Pendencias </title></head>

<body bgcolor="#ffcc33">

<?

include(verifica.php);

if (empty($_GET[pg])) {

?>

<form action=?pg=1" method="POST">

<table align="center" border="0" width="450">

<tr>

<td bgcolor="#000000" width="450" height="25" colspan="2" align="center"><font face="Arial, Helvetica" color="FFFFFF"><b>Cadastro de Pendencias</b></font></td>

</tr>

<tr>

<td width="100"><b>Título</b>:</td><td width="350"><input type="text" name="titulo" size="40"></td>

</tr>

<tr>

<td width="100"><b>Desc.:</b></td><td width="350"><textarea rows="10" name="desc" cols="40"></textarea></td>

</tr>

<tr>

<td width="450" align="center" colspan="2"><input type="submit" value="Cadastrar"></td>

</tr>

</table>

<?

} else {

mysql_connect('localhost','root','');

mysql_select_db('control');

$titulo = $_POST[titulo];

$desc = $_POST[desc];

$sql = "INSERT INTO pend(titulo,descricao,data,user) VALUES('$titulo','$desc',NOW(),'0')";

mysql_query($sql) or die(mysql_error());

$retorno = mysql_affected_rows();

if ($retorno == 1){

  echo "<h3>Pendencia <b><font color='red'>$titulo</b></font> Cadastrada com sucesso!</h3>";

} else {

  echo "Erro: Tente novamente mais tarde.";

}

mysql_close();

}

?>

</body>

</html>

autentica.php

<?

//CONECTA COM O BANCO DE DADOS

require_once("conecta.php");

    function anti_injection($sql)

      {

      // remove palavras que contenham sintaxe sql

      $seg = preg_replace(sql_regcase("/(from|select|insert|delete|where|drop table|show tables|#|\*|--|\\\\)/"),"",$sql);

      $seg = trim($seg);//limpa espaços vazio

      $seg = strip_tags($seg);//tira tags html e php

      $seg = addslashes($seg);//Adiciona barras invertidas a uma string

      return $seg;

      }

//RECEBE OS DADOS DO FORMULÁRIO

$nome = anti_injection($_POST["nome]);

$senha = anti_injection($_POST["senha"]);

  //VERIFICA

$sql  =  mysql_query("

          SELECT a.id, a.nome, a.senha FROM usuarios a

    WHERE  a.nome  =  '$nome'

        AND a.senha    =  '$senha'") or die("ERRO NO COMANDO SQL");

//LINHAS AFETADAS PELA CONSULTA

$row  =  mysql_num_rows($sql);

//VERIFICA SE RETORNOU ALGO

if($row == 0) Header("Erro: Não foi possivcel efetura login");

else {

    //PEGA OS DADOS

  $id  =  mysql_result($sql, 0, "id");

  $nome =  mysql_result($sql, 0, "nome");

    //INICIALIZA A SESSÃO

  session_start();

  $s = session_id();

  //GRAVA AS VARIÁVEIS NA SESSÃO

  $_SESSION[id]    =  $id;

  $_SESSION[nome]  =  $nome;

  //CASO ESTEJA CERTO VAI PARA PAGINA PROTEGIDA

  Header("Location: pend.php?s=$s&id=$id&nome=$nome");

}//FECHA ELSE

?>

conecta.php

<?

//DADOS PARA CONEXÃO

$servidor  =  "localhost";  //SERVIDOR

$bd        =  "control";      //DATABASE

$usuario_bd    =  "root";        //USUÁRIO

$senha_bd      =  "";            //SENHA

//CONECTANDO

$conn    =  mysql_connect($servidor, $usuario_bd)

            or die("ERRO NA CONEXÃO");

//SELECIONA O DATABASE A SER UTILIZADO

$db      =  mysql_select_db($bd, $conn)

            or die("ERRO NA SELEÇÃO DO DATABASE");

?>

Da uma zoiada ai, axo que esta tudo Ok

Link para o comentário
Compartilhar em outros sites

  • 0

Cara não vendo erro... to rodando aqui na minha maquina e vai legal....

No primeiro Header.... tira ele e coloca echo tambem....

//LINHAS AFETADAS PELA CONSULTA

$row = mysql_num_rows($sql);

//VERIFICA SE RETORNOU ALGO

if($row == 0)

//Header("Erro: Não foi possivcel efetura login");

echo "Erro";

else {

Ta aparecendo no endereço do browser a url seusite/autentica.php

Os campos estão certos com a tabela, a tabela é usuarios mesmo????

coloca este codigo no lugar de login.php

<html>

<head><title>Login</title></head>

<body bgcolor="#ffcc33">

<form action="autentica.php" method="post" name="form1">

<table align="center" border="0" width="450">

<tr>

<td bgcolor="#000000" width="450" height="25" colspan="2" align="center"><font face="Arial, Helvetica" color="FFFFFF"><b>Efetuar Login Como:</b></font></td>

</tr>

<tr>

<td width="100"><b>Nome</b>:</td><td width="350"><input type="text" name="nome" size="30"></td>

</tr>

<tr>

<td width="100"><b>Senha</b>:</td><td width="350"><input type="password" name="senha" size="15s"></td>

</tr>

<tr>

<td width="450" align="center" colspan="2"><input type="submit" value="Login">

</td>

</tr>

</table>

</form>

</body>

</html>

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