• 0
Sign in to follow this  
GuilhermeSantos

Erro na página de Login e Senha!

Question

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:

Share this post


Link to post
Share on other sites

4 answers to this question

Recommended Posts

  • 0

se estiver localmente, tente colocar no mysql_conect o usuario root. dessa forma:

$db = mysql_connect("localhost","root","");

Share this post


Link to post
Share on other sites
  • 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

Edited by GuilhermeSantos

Share this post


Link to post
Share on other 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

Edited by GuilhermeSantos

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this