Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

junaooaks

autenticação de usuario php mysql

Recommended Posts

ai galera do precisando de um help! com sistema de autenticação de usuario

 

tenho o banco de dado "sisgem" tabela "login"

 

id

nome

data_nasc

email

telefone

login

senha

 

na minha autenticação ta assim

 

<?php

 

require_once("sisgem.php");

 

$login = $_POST[login];

$senha = $_POST[senha];

 

//verificar se os formularios foram preenchidos

if (!filled_out($_POST));

{

echo "Senha Incorreta";

}

//consulta no banco de dado

$sql = mysql_query("select login,senha from login where login = '$login' and senha = '$senha'")or die ('erro no comando');

$mysql= mysql_num_rows($sql);

if($mysql == 0) { echo "Erro: Usuário ou Senha inválidos"; echo "<br>"; echo "<a href='login.php'>voltar</a>";}

session_start();

$_SESSION[login] = $login; $_SESSION[senha] = $senha;

// Header("Location: index.php");}

 

?>

 

quando eu mando excutar aparece a frase: "erro no comando"

 

alguem poderia da um help ai

Compartilhar este post


Link para o post
Compartilhar em outros sites

Parse error: parse error in c:\windows\serv-n\www\sisgem\autenticacao.php on line 29

 

$mysql= mysql_num_rows($sql);

Compartilhar este post


Link para o post
Compartilhar em outros sites

$mysql= mysql_num_rows($sql);

ai galera eu ja to :wacko: maluco

 

ja pesquisei nas web e nada http://forum.imasters.com.br/public/style_emoticons/default/upset.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Meu exemplo

$sql = "SELECT cli_codigo, cli_nome FROM clientes WHERE email = '$email' AND senha = '$senha'";							$res = mysql_query ($sql) or die ("Problemas na execução: $sql <br>".mysql_error());								if ($res <> 0) #se executou o script direito								{									$total = mysql_num_rows($res); #pega o total de linhas								};							if ($total == 1) #só pode encontrar um email pois ele é login e tem que ser único								{									$linha = mysql_fetch_array($res);													$nome_cliente = $linha['cli_nome'];									$codigo_cliente = $linha['cli_codigo'];									$nivel_usuario = 'cliente';									$_SESSION['codigo'] = $linha['cli_codigo'];								}

Compartilhar este post


Link para o post
Compartilhar em outros sites

ai cara eu adapitei o processo para a minha pagina e nao deu serto

 

da erro nao consulta "$sql"

 

mas o seu processo nao se destancia da maneira que eu estava fazendo que ja e uma boa noticia pra mim

 

 

 

galera eu ja to entrando em desispero http://forum.imasters.com.br/public/style_emoticons/default/no.gif

 

hellllllllllllppppppppppp

Compartilhar este post


Link para o post
Compartilhar em outros sites

Parse error: parse error in c:\windows\serv-n\www\sisgem\autenticacao.php on line 29

 

$mysql= mysql_num_rows($sql);

Compartilhar este post


Link para o post
Compartilhar em outros sites

<?

//CONECTA COM O BANCO DE DADOS

// require_once("sisgem.php");

 

//RECEBE OS DADOS DO FORMULÁRIO

 

$usuario = $_POST[login];

$senha = $_POST[senha];

 

//CONSULTA NO BANCO DE DADOS MYSQL

 

$sql = mysql_query("

SELECT ID, NOME FROM LOGIN

WHERE LOGIN = '$login'

AND SENHA = '$senha'") or die("ERRO NO COMANDO SQL " mysql_error());

 

// CONEXAO COM O BANCO DE DADOS E TABELA

 

$conn = mysql_connect("localhost, root, 123")or die ("erro na conecxao");

$db = mysql_select_db("sisgem") or die ("nao ha banco de dado");

 

//LINHAS AFETADAS PELA CONSULTA

 

$row = mysql_num_rows($sql);

 

//VERIFICA SE RETORNOU ALGO

 

if($row == 0) echo "Usuário/Senha inválidos";

 

else {

//PEGA OS DADOS

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

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

 

//INICIALIZA A SESSÃO

 

session_start();

 

//GRAVA AS VARIÁVEIS NA SESSÃO

 

$_SESSION[login] = $usuario;

$_SESSION[senha] = $senha;

 

//REDIRECIONA PARA A PÁGINA QUE VAI EXIBIR OS PRODUTOS

 

Header("Location: usuario.php");

} //FECHA ELSE

?>

 

 

 

quando eu executo so aparece a palavra "erro"

Compartilhar este post


Link para o post
Compartilhar em outros sites

ai galera apos muita luta estamos quase conseguindo

 

e o seguinde: quando eu digito a "senha" erra la no login ele passa

ex: a senha serta e "brasiljunao" e eu colocar "brasil" ele entra, se eu colocar a que esta registrada no banco de dado ele nao passa "brasiljunao"

 

e outra quando ele puxa a pagina e uma totalmente diferente

ex: Header("Location: usuario.php"); ele carrega a pagina "index.php" nao estou entendendo nada

 

mas ja melhorou muito http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

 

olha o codigo da pagina "autenticação"

 

quem puder colaborar com migo eu agradeço

 

<?

//CONECTA COM O BANCO DE DADOS

 

require_once("sisgem.php");

 

//RECEBE OS DADOS DO FORMULÁRIO

 

$login = $_POST["login"];

$senha = $_POST["senha"];

 

//CONSULTA NO BANCO DE DADOS

 

$sql = mysql_query("

SELECT id, nome FROM login

WHERE login == '$login'

AND senha == '$senha'") or die(mysql_error());

 

//LINHAS AFETADAS PELA CONSULTA

 

$row = mysql_num_rows('$sql');

 

//VERIFICA SE RETORNOU ALGO

 

if($row == 0) echo "Usuário/Senha inválidos";

 

else {

 

//PEGA OS DADOS

 

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

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

 

//INICIALIZA A SESSÃO

 

session_start();

 

//GRAVA AS VARIÁVEIS NA SESSÃO

 

$_SESSION[login] = $login;

$_SESSION[senha] = $senha;

 

//REDIRECIONA PARA A PÁGINA QUE VAI EXIBIR OS PRODUTOS

 

Header("Location: usuario.php");

} //FECHA ELSE

?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

ai galera to precisando de umas dicas

Compartilhar este post


Link para o post
Compartilhar em outros sites

ai galera depois de tanto mexer nos codigos e esquenta a cabeça, o codigo ainda continua dando errado

 

ultima alteração na pagina "autentifacacao"

 

 

<?

 

//CONECTA COM O BANCO DE DADOS

$mysql = mysql_connect("localhost","root","123");

$db = mysql_select_db("sisgem") or die ("nao ha banco de dado");

 

 

//RECEBE OS DADOS DO FORMULÁRIO

 

$login = $_POST["login"];

$senha = $_POST["senha"];

 

//CONSULTA NO BANCO DE DADOS

 

$sql = mysql_query("

SELECT id, nome FROM login

WHERE login = '$login'

AND senha = '$senha'") or die(mysql_error());

 

//LINHAS AFETADAS PELA CONSULTA

 

$row = mysql_num_rows('$sql');

 

//VERIFICA SE RETORNOU ALGO

 

if($row == 0) echo "Usuário/Senha inválidos";

 

else {

 

//PEGA OS DADOS

 

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

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

 

//INICIALIZA A SESSÃO

 

session_start();

 

//GRAVA AS VARIÁVEIS NA SESSÃO

 

$_SESSION[login] = $login;

$_SESSION[senha] = $senha;

 

//REDIRECIONA PARA A PÁGINA QUE VAI EXIBIR OS PRODUTOS

 

Header("Location: usuario.php");

} //FECHA ELSE

 

?>

 

erro esposto pelo mysql "Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in c:\windows\serv-n\www\sisgem\autenticacao.php on line 23

Usuário/Senha inválidos

 

a linha 23 esta marcada de vermelho

 

aquele que puder me ajuda ai eu agradeço http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Aparentemente, não está localizando o registro. Está usando MD5 na senha? Se sim, precisa usar na comparação da query também.Sugestão: compara o login forçando em minúsculas, com LOWER() do MySQL ou strtolower() do PHP.[]sAnderson Mello

Compartilhar este post


Link para o post
Compartilhar em outros sites

outra coisa....cuidado com o sql injection...

um código que eu sempre uso em algum include que vai em todas as páginas de um sistema, é:

 

if (!get_magic_quotes_gpc()) {	$_POST = array_map("addslashes",$_POST);	$_GET = array_map("addslashes",$_GET);}

;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

eu nao estou usando MD5 é um sistema bem simplesnao compriendi a sua colocação ANDERSON MELLO "Sugestão: compara o login forçando em minúsculas, com LOWER() do MySQL ou strtolower() do PHP."

Compartilhar este post


Link para o post
Compartilhar em outros sites

Isso:

 

$sql = mysql_query("SELECT id, nome FROM loginWHERE LOWER(login) = LOWER('$login')AND senha = '$senha'") or die(mysql_error());

Assim não importa se digitar Anderson Mello, anderson mello, aNdErSon mello etc. ;)

Pra senhas, se não usa MD5, pode fazer o mesmo.

 

Agora, sobre o problema, debuga o código. Verifica quais os dados (login e senha) que são passados pelo formulário e se estão de acordo com o banco.

 

[]s

Anderson Mello

Compartilhar este post


Link para o post
Compartilhar em outros sites

Isso:Agora, sobre o problema, debuga o código. Verifica quais os dados (login e senha) que são passados pelo formulário e se estão de acordo com o banco.[]sAnderson Mello

Anderson o arquivos que esta na tabela do bando de dados e o mesmo que fica registra na "session" e a mesma da variavel "login" e "senha" eu ja rescrivi o codigo e nao consigo realizar a operaçãotem alguma linha de comando errado o Andersom, e desta maneira que vcs fazer usando "session"que eu ja nao sei o mais fazer ja li e reli codigos fontes pela intenet e de modo geral a base e a mesma

Compartilhar este post


Link para o post
Compartilhar em outros sites

eu realizei o tutorial do Aguinelo Pedroso la no tutorial http://www.revistaphp.com.br/artigo.php?id=67

 

ele da o mesmo erro quero dizer na mesma $row = mysql_num_rows('$sql');

 

a linha de erro que aparece: Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in c:\windows\serv-n\www\autenticacao\auth.php on line 25

usuario ou senha invalida

Compartilhar este post


Link para o post
Compartilhar em outros sites

$row = mysql_num_rows($sql);após verificar o num_rows..cria um array para receber login os campos!!!entendeu??qualquer coisa posta aiiabraçoo

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.