Jump to content


Photo

Problemas Com Login E Banco De Dados


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

#1 Eternal Shadow

Eternal Shadow

    Novato no fórum

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

Posted 25/10/2005, 22:56

Estou tendo um problema com meu login, o código é o seguinte:

 $UserQ = mysql_query("SELECT * FROM usuarios WHERE login=$E_Login");
 $UserA = mysql_fetch_array($UserQ); (linha 8)
 if($UserA['login'] == $E_Login && $UserA['senha'] == $E_Pass) {
   setcookie("login",$UserA['login'],time() + 900000);
   setcookie("pass",$UserA['senha'],time() + 900000);
   setcookie("name",$UserA['nome'],time() + 900000);
   setcookie("email",$UserA['email'],time() + 900000);
   setcookie("level",$UserA['nivel'],time() + 900000);
   $LoginOk = 1;
 }
 if(!$LoginOk) { ActError("E_Login, E_Pass", "Login ou senha incorretos","login"); }


o problema é q mesmo com o login e senha corretos ele sempre retorna falso com Login ou Senha incorretos, ja tentei várias coisas mas o apache não retorna nenhum erro de query ou sintaxe. agradeço desde ja pela ajuda

edit

ah sim, se eu colocar o if(!$LoginOk) para if($LoginOk) ele retorna o erro de que o argumento não é um resultado válido de uma query MySQL:

Warning: Supplied argument is not a valid MySQL result resource in c:\apache\htdocs\escola\login.php on line 8

Edição feita por: Eternal Shadow, 25/10/2005, 23:05.


#2 MarcoviZ

MarcoviZ

    ubuntu for human being

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

Posted 25/10/2005, 22:59

CODE
$UserQ = mysql_query("SELECT * FROM usuarios WHERE login=$E_Login") or die (mysql_error());
$UserA = mysql_fetch_array($UserQ);
if($UserA['login'] == $E_Login && $UserA['senha'] == $E_Pass) {
setcookie("login",$UserA['login'],time() + 900000);
setcookie("pass",$UserA['senha'],time() + 900000);
setcookie("name",$UserA['nome'],time() + 900000);
setcookie("email",$UserA['email'],time() + 900000);
setcookie("level",$UserA['nivel'],time() + 900000);
$LoginOk = 1;
}
if(!$LoginOk) { ActError("E_Login, E_Pass", "Login ou senha incorretos","login"); }


tenta assim... fale q erro retorna

[]´s =P
[]'s

#3 Eternal Shadow

Eternal Shadow

    Novato no fórum

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

Posted 25/10/2005, 23:03

ele retorna o seguinte erro:

Unknown column 'fernandom (login)' in 'where clause'



#4 MarcoviZ

MarcoviZ

    ubuntu for human being

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

Posted 25/10/2005, 23:05

acho q a coluna fernandom nao existe... você esta usando algum arquivo para conectar com o banco de dados ? o login existe? ve pq acho q pode ser isso


[]´s :P
[]'s

#5 Eternal Shadow

Eternal Shadow

    Novato no fórum

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

Posted 25/10/2005, 23:07

eu to usando um arquivo, antes da query eu coloquei um

require('mysql.php');

Arquivo:

<?
  $Host = "localhost";
  $Login = "root";
  $Senha = "";
  $db = "escola";

  $mysql = @mysql_connect($Host,$Login,$Senha) or die(mysql_error());

  @mysql_select_db($db,$mysql) or die("Erro ao se conectar ao DB");
?>


e eu tenho 2 logins cadastrados no banco de dados, ambos eu digitando corretamente da o erro

#6 MarcoviZ

MarcoviZ

    ubuntu for human being

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

Posted 25/10/2005, 23:11

nao sei se tem algo a ver mais nao entendi isso:

if(!$LoginOk) { ActError("E_Login, E_Pass", "Login ou senha incorretos","login"); }

--

tenta assim e ve se funfa:

$UserQ = mysql_query("SELECT * FROM usuarios WHERE login=$E_Login") or die (mysql_error());
$UserA = mysql_fetch_array($UserQ); (linha 8)
if($UserA['login'] == $E_Login && $UserA['senha'] == $E_Pass) {
setcookie("login",$UserA['login'],time() + 900000);
setcookie("pass",$UserA['senha'],time() + 900000);
setcookie("name",$UserA['nome'],time() + 900000);
setcookie("email",$UserA['email'],time() + 900000);
setcookie("level",$UserA['nivel'],time() + 900000);
$LoginOk = 1;
}
else
{
echo"Login/ou senha incorreta";
}


[]´s :P
[]'s

#7 Eternal Shadow

Eternal Shadow

    Novato no fórum

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

Posted 25/10/2005, 23:14

caso encontrar o login ele vai setar a variável $LoginOk pra 1 e dai akele if verifica se ela não existe, se não existir ele chama a function ActError, que pega as variáveis q devem ser guardadas, a menssagem q deve ser passada e dpois pra onde vc deve ser mandado

("E_Login, E_Pass"(variáveis), "Login ou Senha incorretos"(menssagem), "login"(local))

#8 MarcoviZ

MarcoviZ

    ubuntu for human being

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

Posted 25/10/2005, 23:21

tipo... vc nao precisa verificar se ela n existe... no else mesmo vc faz.. pq se o else for exucutado é pq ela n existe caso ele nao seja é pq existe saco? nao precisa do if final...

-- o montei para vc...



$UserQ = mysql_query("SELECT * FROM usuarios WHERE login=$E_Login") or die (mysql_error());
$UserA = mysql_fetch_array($UserQ);
if($UserA['login'] == $E_Login && $UserA['senha'] == $E_Pass) {
setcookie("login",$UserA['login'],time() + 900000);
setcookie("pass",$UserA['senha'],time() + 900000);
setcookie("name",$UserA['nome'],time() + 900000);
setcookie("email",$UserA['email'],time() + 900000);
setcookie("level",$UserA['nivel'],time() + 900000);
$LoginOk = 1;
}else{
ActError("E_Login, E_Pass", "Login ou senha incorretos","login");
}



[]´s :P

Edição feita por: MarcoviZ, 25/10/2005, 23:24.

[]'s

#9 Eternal Shadow

Eternal Shadow

    Novato no fórum

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

Posted 25/10/2005, 23:58

rapaiz, vc msm disse q é a msm coisa, então logicamente continuara dando erro, sendo que ja tentei assim também e da o msm erro, obrigado

#10 fly2k

fly2k

    Super Veterano

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

Posted 26/10/2005, 08:06

Pergunta: o campo login é um texto? ou é numérico?
Quer aprender PHP? -> www.manjaphp.com.br
Tutoriais, código colaborativo (pastebin), curso de PHP, artigos e etc.

#11 jfsmi

jfsmi

    12 Horas

  • Usuários
  • 201 posts
  • Sexo:Masculino

Posted 26/10/2005, 09:37

Eternal,

Acho que o teu problema está na conexão com BD. Como sugestão para tentar descobrir se é isso mesmo:

1º) No arquivo que faz a conexão deixe apenas isso:

<?
  $Host = "localhost";
  $Login = "root";
  $Senha = "";
  $db = "escola";
?>


2º) No arquivo que tem o script que faz a verificação do login/senha, deixe assim:

$mysql = mysql_connect($Host,$Login,$Senha) or die(mysql_error());
$db = mysql_select_db($db,$mysql) or die("Erro ao se conectar ao DB");

$UserQ = mysql_query("SELECT * FROM usuarios WHERE login='$E_Login'");
$UserA = mysql_fetch_array($UserQ); (linha 8)
if($UserA['login'] = $E_Login && $UserA['senha'] = $E_Pass) {
   setcookie("login",$UserA['login'],time() + 900000);
   setcookie("pass",$UserA['senha'],time() + 900000);
   setcookie("name",$UserA['nome'],time() + 900000);
   setcookie("email",$UserA['email'],time() + 900000);
   setcookie("level",$UserA['nivel'],time() + 900000);
   $LoginOk = 1;
}
if(!$LoginOk) { ActError("E_Login, E_Pass", "Login ou senha incorretos","login"); }

O que está em azul foi a alteração que fiz.
Outra sugestão também é ao invés de REQUIRE use INCLUDE, ou seja, no início da página voce coloca:

include 'mysql.php';


Valeu, t+

Edição feita por: jfsmi, 26/10/2005, 09:39.

Não sou expert... mas tento ajudar! Mas o que mais preciso é de ajuda! hehehe





2 user(s) are reading this topic

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

IPB Skin By Virteq