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

Erro na página de Login e Senha!


GuilhermeSantos

Pergunta

Pessoal, estou iniciando agora com PHP e achei um tutorial na internet aonde tenho que fazer um campo com Login e Senha para entra na administração de um site.

Estou com alguns erros, que não estão deixando eu prosseguir no mesmo, e gostaria que vocês me ajudassem a resolvê-lo!

Lá vai: (erro que está dando:)

( ! ) Notice: Undefined index: login in C:\@PROGRAMAS GERENCIADOS\wamp\www\ebooks\adm\logar.php on line 3
Call Stack
#    Time    Memory    Function    Location
1    0.0018    676624    {main}( )    ..\logar.php:0

( ! ) Notice: Undefined index: senha in C:\@PROGRAMAS GERENCIADOS\wamp\www\ebooks\adm\logar.php on line 4
Call Stack
#    Time    Memory    Function    Location
1    0.0018    676624    {main}( )    ..\logar.php:0

( ! ) Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in C:\@PROGRAMAS GERENCIADOS\wamp\www\ebooks\adm\logar.php on line 12
Call Stack
#    Time    Memory    Function    Location
1    0.0018    676624    {main}( )    ..\logar.php:0
2    0.0304    684328    mysql_num_rows ( )    ..\logar.php:12

( ! ) Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in C:\@PROGRAMAS GERENCIADOS\wamp\www\ebooks\adm\logar.php on line 15
Call Stack
#    Time    Memory    Function    Location
1    0.0018    676624    {main}( )    ..\logar.php:0
2    0.0307    684512    mysql_fetch_array ( )    ..\logar.php:15
login.php
<!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>Portfolio - becck.com - PHP - Fernando Noronha</title>
<style type="text/css">
<!--
.style1 {
    font-family: Arial, Helvetica, sans-serif;
    font-size: 18px;
    font-weight: bold;
    color: #000033;
}
.style6 {font-family: Arial, Helvetica, sans-serif; font-size: 12px; font-weight: bold; }
-->
</style>
</head>

<body>
<form id="form1" name="form1" method="post" action="logar.php">
<br />
<br />
<table width="266" border="0" align="center" cellpadding="3" cellspacing="3">
    <tr>
      <td colspan="2" align="center"><span class="style1">ADMINISTRAÇÃO</span></td>
    </tr>
    <tr>
      <td width="61"><span class="style6">Login:</span></td>
      <td width="184"><label>
        <input type="text" name="login" id="login" />
      </label></td>
    </tr>
    <tr>
      <td><span class="style6">Senha:</span></td>
      <td><label>
        <input type="password" name="senha" id="senha" />
      </label></td>
    </tr>
    <tr>
      <td> </td>
      <td><input type="submit" name="button" id="button" value="Logar" /></td>
    </tr>
  </table>
</form>
</body>
</html>
logar.php
<?
//Pega o que o usuário digitou em Login e Senha
$login = $_POST['login'];//cria uma var $login, e a funcao que vai pegar o que foi digitado "$_POST['']"
$senha = $_POST['senha']; //mesma coisa para senha.

include "config.php"; //chama a página de configuração.

//agora cria um SELECT, pra puxar da tabela ADM as informações.
$sql = mysql_query("SELECT * FROM adm WHERE login = '$login'"); //se o campo login da tabela, for igual a var 

//login criada ACIMA, esta perfeito.
$cont = mysql_num_rows($sql); // aqui faz uma contagem se existe o registro OU não. Essa funcao: "mysql_num_rows($sql)" ela conta se existe algum registro, ela vai puxar quantos registros existe na tabela, se ela puxar 0 é porque o LOGNI não batee com o do banco de dados.

//while para puxar a senha caso o login bata com o do banco de dados.
while($linha = mysql_fetch_array($sql))
{
    $senha_db = $linha['senha'];
}

if ($cont == 0) // se a var cont for == 0, é porque o login não bateu com o do banco de dados, então é pra voltar para a página LOGIN.
{
    echo "
    <meta http-equiv=refresh content='0'; url='login.php'> 
    ";
    
}else{
    if($senha_db != $senha)
    {
    echo "
    <meta http-equiv=refresh content='0'; url='login.php'> 
    ";
    }
    
    else
    { //bateu com o do banco de dados, e vai jogar dentro da SESSION
    session_start();
    $_SESSION['login_usuario'] = $login;
    $_SESSION['senha_usuario'] = $senha;
    
    header('Location: index.php'); //leva para a página de administração. libera o acesso
    }
}

mysql_close($db); //fecha a conexão com o banco no final.
?>
config.php
<?
// faz a conexão com o banco de dados, pois ele precisa saber qual banco de dados está utilizando.

$db = mysql_connect("localhost","",""); //nome do servidor, username do banco, e a senha.

$dados = mysql_select_db("projeto_final",$db); //funcao que seleciona o banco de dados que vai usar.

?>

Obrigado! :huh:

Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0

Cara, funcionou! Eu não to acreditando que era isso...

Quando eu acerto a senha, ele loga normal, mais quando eu erro, fica apenas os notices (já mencioanados acima) aparecendo!

Se resolve, eu colocando um @ na frente do $_POST (li em outro tópico)

Estou certo?

Ele quando erro a senha, não volta pra página de login de novo! fica como se fosse, em loop inifinito :s

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

  • 0

Conseguiiii ! :lol:

O que eu fiz, foi o seguinte:

Alterei essa linha:

if ($cont == 0) // se a var cont for == 0, é porque o login não bateu com o do banco de dados, então é pra voltar para a página LOGIN.

{

echo "

<META HTTP-EQUIV=REFRESH CONTENT='0; URL=login.php'>

";

}else{

if($senha_db != $senha)

{

echo "

<META HTTP-EQUIV=REFRESH CONTENT='0; URL=login.php'>

";

}

else

{ //bateu com o do banco de dados, e vai jogar dentro da SESSION

session_start();

$_SESSION['login_usuario'] = $login;

$_SESSION['senha_usuario'] = $senha;

header('Location: index.php'); //leva para a página de administração. libera o acesso

}

}

Para essa:

if ($cont == 0) // se a var cont for == 0, é porque o login não bateu com o do banco de dados, então é pra voltar para a página LOGIN.

{

echo "

<META HTTP-EQUIV=REFRESH CONTENT='0; URL=login.php'>

&lt;script type=\"text/javascript\">

alert(\"O nome de usuario não corresponde.\");

</script>"

}else{

if($senha_db != $senha)

{

echo "

<META HTTP-EQUIV=REFRESH CONTENT='0; URL=login.php'>

&lt;script type=\"text/javascript\">

alert(\"A senha não corresponde.\");

</script>";

}

else

{ //bateu com o do banco de dados, e vai jogar dentro da SESSION

session_start();

$_SESSION['login_usuario] = $login;

$_SESSION['senha_usuario'] = $senha;

header('Location: index.php'); //leva para a página de administração. libera o acesso

}

}

Não me perguntem como foi isso, apenas editei essa parte copiando do tutorial do vídeo.. não conseguir entender porque tava dando o erro, pois eu só tinha removido os scripts :s

Editado por GuilhermeSantos
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
      152k
    • Posts
      651,8k
×
×
  • Criar Novo...