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

Sistema de login e usuario


Martinsrj

Pergunta

Olá pessoal, beleza?

Estou fazendo um sisteminha para teste com login, autenticação e logout, porem não ocorre a autenticação. Sempre cai na mensagem de erro:

O login não foi realizado porque os dados digitados são INVALIDOS!

Aqui vai o codigo da pagina principal:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>

<body>

<p align="center"><font face="Arial">Digite seus dados de identificação para acessar o sistema:</font></p>
<br>
<table width="100%" border="0">
  <tr>
    <th width="100%" align="center"><marquee><font face="Arial, Helvetica, sans-serif">Pagina de autenticação</font>
    </marquee></th>
  </tr>
</table>
<br>
<form method="POST" action="login.php">
<p align="center"><font face="arial">Usuário:</font> <input type="text" name="usuario" size="20"></p>
<p align="center"><font face="arial">Senha:</font> <input type="password" name="senha" size="20"></p>
<p align="center"><input type="submit" value="Enviar" name="enviar"></p>
</form>
<br>
<br>
<br>
<br />
<br />
<br />
<hr>
<?php
  echo date('d/m/Y - H:i:s');
?>

</body>
</html>
Pagina do LOGIN:
<?php
$usuario =$_POST["usuario"];
$senha =$_POST["senha"];

// echo $usuario;

$servidor = 'localhost';
$usuario = 'root';
$senha = 'elohim';
$banco = 'bd_teste';

$link = mysql_connect($servidor, $usuario, $senha)
    or die ('Não foi possivel conectar ao Banco MTI: '.mysql_error());

$select = mysql_select_db($banco);

$result = mysql_query("SELECT * from usuarios_autorizados where usuario ='$usuario' and senha='$senha'");
$linhas = mysql_num_rows($result);
if($linhas==0) 
{
    echo "<html><body>";
    echo "<p align=\"center\">O login não foi realizado porque os dados digitados são INVALIDOS!</p>";
    echo "<p align=\"center\"><a href=\"index.php\">Voltar</a></p>";
    echo "</html></body>";
}
else
{
    session_start();
    $_SESSION['nome_usuario'] = $usuario;
    $_SESSION['senha_usuario'] = $senha;
    // direciona para a página inicial dos usuários cadastros
    header("Location: inserir.php"); 
    
}
mysql_close($conexao); 
?>

Desde já agradeço pela ajuda, abraços.

Link para o comentário
Compartilhar em outros sites

11 respostass a esta questão

Posts Recomendados

  • 0

Troca isso:

$result = mysql_query("SELECT * from usuarios_autorizados where usuario ='$usuario' and senha='$senha'");
$linhas = mysql_num_rows($result);
Por isso:
$result = mysql_query("SELECT * from usuarios_autorizados where usuario ='$usuario' and senha='$senha'")OR DIE(mysql_error());
$linhas = mysql_num_rows($result);
echo "total de usuário achados $linhas";

Link para o comentário
Compartilhar em outros sites

  • 0
Troca isso:

$result = mysql_query("SELECT * from usuarios_autorizados where usuario ='$usuario' and senha='$senha'");
$linhas = mysql_num_rows($result);
Por isso:
$result = mysql_query("SELECT * from usuarios_autorizados where usuario ='$usuario' and senha='$senha'")OR DIE(mysql_error());
$linhas = mysql_num_rows($result);
echo "total de usuário achados $linhas";

Olá ESerra!

Coloquei o codigo que você mencionou, porem ele retornou: total de usuário achados 0

Porem afirmo que existe registro no banco na tabela usuarios_autorizados.

usuarios_autorizados CREATE TABLE `usuarios_autorizados` (

`usuario` varchar(30) NOT NULL,

`senha` varchar(30) NOT NULL,

PRIMARY KEY (`usuario`)

) ENGINE=InnoDB DEFAULT CHARSET=latin1

Desde já agradeço pela ajuda!

Link para o comentário
Compartilhar em outros sites

  • 0
Vai debugando o teu código, dá echo nas variáveis $usuario/$senha, veja se é esperado

Olá Eserra!

Eu instalei no meu Adobe Dreamweaver CS3 o phpdebugger

e ele informa que o erro está na linha 2:

- $usuario = $_POST["usuario"];

Error type: E_NOTICE

Message 2: Undefined index: usuario

Segue novamente o meu codigo:

<?php
$usuario =$_POST["usuario"];
$senha =$_POST["senha"];

// echo $usuario;

$servidor = 'localhost';
$usuario = 'root';
$senha = 'elohim';
$banco = 'bd_mti';

$link = mysql_connect($servidor, $usuario, $senha)
    or die ('Não foi possivel conectar ao Banco MTI: '.mysql_error());

$select = mysql_select_db($banco);

$result = mysql_query("SELECT * from usuarios_autorizados where usuario ='" .$usuario. "' and senha='" .$senha."' ");
$linhas = mysql_num_rows($result);
if($linhas==0) 
{
    echo "<html><body>";
    echo "<p align=\"center\">O login não foi realizado porque os dados digitados são INVALIDOS!</p>";
    echo "<p align=\"center\"><a href=\"index.php\">Voltar</a></p>";
    echo "</html></body>";
}
else
{
    session_start();
    $_SESSION['nome_usuario'] = $usuario;
    $_SESSION['senha_usuario'] = $senha;
    // direciona para a página inicial dos usuários cadastros
    header("Location: inserir.php"); 
    
}
mysql_close($conexao); 
?>

Link para o comentário
Compartilhar em outros sites

  • 0

veja abaixo:

<?php
$usuario =$_POST["usuario"];
$senha =$_POST["senha"];       //Aqui você cria uma variável $senha que guarda a senha digitada pelo usuário no form

// echo $usuario;

$servidor = 'localhost';
$usuario = 'root';
$senha = 'elohim';                    //Aqui você declara de novo uma variável senha que guarda a senha o usuário do bando de dados
$banco = 'bd_mti';

......

$result = mysql_query("SELECT * from usuarios_autorizados where usuario ='" .$usuario. "' and senha='" .$senha."' "); 
  // Aqui você usa a variável $senha. Pergunta qual valor você acha que ta na variável, Resposta: A Senha do Banco que foi declarada por ultimo.

Conserta isso que deve resolve.

Link para o comentário
Compartilhar em outros sites

  • 0
veja abaixo:

<?php
$usuario =$_POST["usuario"];
$senha =$_POST["senha"];       //Aqui você cria uma variável $senha que guarda a senha digitada pelo usuário no form

// echo $usuario;

$servidor = 'localhost';
$usuario = 'root';
$senha = 'elohim';                    //Aqui você declara de novo uma variável senha que guarda a senha o usuário do bando de dados
$banco = 'bd_mti';

......

$result = mysql_query("SELECT * from usuarios_autorizados where usuario ='" .$usuario. "' and senha='" .$senha."' "); 
  // Aqui você usa a variável $senha. Pergunta qual valor você acha que ta na variável, Resposta: A Senha do Banco que foi declarada por ultimo.
Conserta isso que deve resolve.
Conforme a sua indicação, realizei a modificação. Debugguei e dei um echo $linha onde imprimiu na tela: 1 o codigo ficou assim:
<?php
// $usuario =$_POST["usuario"];
// $senha =$_POST["senha"];

    $usuario_recupera = $_POST['usuario'];
    $senha_recupera   = $_POST['senha'];

// echo $usuario;

$servidor = 'localhost';
$usuario = 'root';
$senha = 'elohim';
$banco = 'bd_mti';

$link = mysql_connect($servidor, $usuario, $senha)
    or die ('Não foi possivel conectar ao Banco MTI: '.mysql_error());

$select = mysql_select_db($banco);

$result = mysql_query("SELECT * from usuarios_autorizados where usuario ='" .$usuario_recupera. "' and senha='" .$senha_recupera."' ");
$linhas = mysql_num_rows($result);
[b]echo $linhas;[/b]
/* if($linhas==0) 
{
    echo "<html><body>";
    echo "<p align=\"center\">O login não foi realizado porque os dados digitados são INVALIDOS!</p>";
    echo "<p align=\"center\"><a href=\"index.php\">Voltar</a></p>";
    echo "</html></body>";
}
else
{
    session_start();
    $_SESSION['nome_usuario'] = $usuario_recupera;
    $_SESSION['senha_usuario'] = $senha_recupera;
    // direciona para a página inicial dos usuários cadastros
    header("Location: inserir.php"); 
    
} */
mysql_close($conexao); 
?>
Porèm agora ele me direciona para a pagina: inserir.php com a mensagem na tela: Você não efetuou o LOGIN!!! Eu possuo uma pagina onde valida a session:
<?php
if(ISSET($_SESSION["nome_usuario"]))
  $nome_usuario = $_SESSION["nome_usuario"];
if(ISSET($_SESSION["senha_usuario"]))
  $senha_usuario = $_SESSION["senha_usuario"];

if(!(empty($nome_usuario) or empty($senha_usuario)))
{

$servidor = 'localhost';
$usuario = 'root';
$senha = 'elohim';
$banco = 'bd_mti';

$link = mysql_connect($servidor, $usuario, $senha)
    or die ('Não foi possivel conectar ao Banco MTI: '.mysql_error());

$select = mysql_select_db($banco);

  $result = mysql_query("SELECT * from usuarios_autorizados where usuario='$usuario' and senha = '$senha'");
  if(mysql_num_rows($result)==0)
  {
      unset ($_SESSION['nome_usuario']);
      unset ($_SESSION['senha_usuario']);
      echo "Atenção, você não efetuou o <b>LOGIN!!!</b>!!!";
      exit;
    }
  }
  else
  {
    echo "Você não efetuou o <b>LOGIN</b>!!!";
    exit;
  }
mysql_close($conexao);
?>
Mas desde obrigado aí pela ajuda. A pagina de Valida session:
<?php
if(ISSET($_SESSION["nome_usuario"]))
  $nome_usuario = $_SESSION["nome_usuario"];
if(ISSET($_SESSION["senha_usuario"]))
  $senha_usuario = $_SESSION["senha_usuario"];

if(!(empty($nome_usuario) or empty($senha_usuario)))
{

$servidor = 'localhost';
$usuario = 'root';
$senha = 'elohim';
$banco = 'bd_mti';

$link = mysql_connect($servidor, $usuario, $senha)
    or die ('Não foi possivel conectar ao Banco MTI: '.mysql_error());

$select = mysql_select_db($banco);

  $result = mysql_query("SELECT * from usuarios_autorizados where usuario='$usuario' and senha = '$senha'");
  if(mysql_num_rows($result)==0)
  {
      unset ($_SESSION['nome_usuario']);
      unset ($_SESSION['senha_usuario']);
      echo "Atenção, você não efetuou o <b>LOGIN!!!</b>!!!";
      exit;
    }
  }
  else
  {
    echo "Você não efetuou o <b>LOGIN</b>!!!";
    exit;
  }
mysql_close($conexao);
?>

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

  • 0

Repare:

$servidor = 'localhost';
$usuario = 'root';
$senha = 'elohim';
$banco = 'bd_mti';

$link = mysql_connect($servidor, $usuario, $senha)
    or die ('Não foi possivel conectar ao Banco MTI: '.mysql_error());

$select = mysql_select_db($banco);

  $result = mysql_query("SELECT * from usuarios_autorizados where usuario='$usuario' and senha = '$senha'");
  if(mysql_num_rows($result)==0)

Mesmo erro anterior, você ta passando a senha do banco ao invés da senha do usuário.

Link para o comentário
Compartilhar em outros sites

  • 0
Repare:

$servidor = 'localhost';
$usuario = 'root';
$senha = 'elohim';
$banco = 'bd_mti';

$link = mysql_connect($servidor, $usuario, $senha)
    or die ('Não foi possivel conectar ao Banco MTI: '.mysql_error());

$select = mysql_select_db($banco);

  $result = mysql_query("SELECT * from usuarios_autorizados where usuario='$usuario' and senha = '$senha'");
  if(mysql_num_rows($result)==0)
Mesmo erro anterior, você ta passando a senha do banco ao invés da senha do usuário.
Olá Itibere! Eu cheguei a realizar no codigo valida session o reparo, porem a situação persiste.
<?php
if(ISSET($_SESSION["nome_usuario"]))
  $nome_usuario = $_SESSION["nome_usuario"];
if(ISSET($_SESSION["senha_usuario"]))
  $senha_usuario = $_SESSION["senha_usuario"];

if(!(empty($nome_usuario) or empty($senha_usuario)))
{

$servidor = 'localhost';
$usuario = 'root';
$senha = 'elohim';
$banco = 'bd_mti';

$link = mysql_connect($servidor, $usuario, $senha)
    or die ('Não foi possivel conectar ao Banco MTI: '.mysql_error());

$select = mysql_select_db($banco);

$result = mysql_query("SELECT * from usuarios_autorizados where usuario ='" .$nome_usuario. "' and senha='" .$senha_usuario."' ");
  if(mysql_num_rows($result)==0)
  {
      unset ($_SESSION['nome_usuario']);
      unset ($_SESSION['senha_usuario']);
      echo "Atenção, você não efetuou o <b>LOGIN!!!</b>";
      exit;
    }
  }
  else
  {
    echo "Você não efetuou o <b>LOGIN!!!";
    exit;
  }
mysql_close($conexao);
?>

Link para o comentário
Compartilhar em outros sites

  • 0

depois de:

<?php
if(ISSET($_SESSION["nome_usuario"]))
  $nome_usuario = $_SESSION["nome_usuario"];
if(ISSET($_SESSION["senha_usuario"]))
  $senha_usuario = $_SESSION["senha_usuario"


//DE UM ECHO AQUI:

echo $nome_usuario."<br>";
echo   $senha_usuario;

Link para o comentário
Compartilhar em outros sites

  • 0
depois de:

<?php
if(ISSET($_SESSION["nome_usuario"]))
  $nome_usuario = $_SESSION["nome_usuario"];
if(ISSET($_SESSION["senha_usuario"]))
  $senha_usuario = $_SESSION["senha_usuario"


//DE UM ECHO AQUI:

echo $nome_usuario."<br>";
echo   $senha_usuario;
Coloquei dessa forma:
<?php
if(ISSET($_SESSION['nome_usuario']))
  $nome_usuario = $_SESSION['nome_usuario'];
if(ISSET($_SESSION['senha_usuario']))
  $senha_usuario = $_SESSION['senha_usuario'];

echo $nome_usuario."<br>";
echo   $senha_usuario;

if(!(empty($nome_usuario) or empty($senha_usuario)))
{

$servidor = 'localhost';
$usuario = 'root';
$senha = 'elohim';
$banco = 'bd_mti';

$link = mysql_connect($servidor, $usuario, $senha)
    or die ('Não foi possivel conectar ao Banco MTI: '.mysql_error());

$select = mysql_select_db($banco);

$result = mysql_query("SELECT * from usuarios_autorizados where usuario ='" .$nome_usuario. "' and senha='" .$senha_usuario."' ");
  if(mysql_num_rows($result)==0)

porem na pagina aparece tudo em branco.

Link para o comentário
Compartilhar em outros sites

  • 0

Cara quando uma pagina toda em branco aparece, nomaumente e erro de parcer(sintaxe errada, ou erro de digitação),. tente o seguinte:

1. comete as linha do echo que passei, se resolver veja que posso ter digitado algo errado, ou então tire o "<br>" que coloquei.

2. se tiver algum header transforme em um comentário, pois você não posse dar nenhuma saída para htm, antes de um header, e isso pode esta acontecendo,

3. por fim coloque:

<?php
      error_reporting(E_ERROR | E_WARING | E_PARSE);
      ini_set("display_errors",on);
      ...

isso vai fazer com que o php escreva os erro e avisos na tela, mas lembre-se de comentar essas linhas quando colocar o aplicativo em produção.

Editado por itibere
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...