Ir para conteúdo

POWERED BY:

Arquivado

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

[VAZA]

Como fazer Querys com texto

Recommended Posts

Aew pessoal...

to tentando fazer uma query, para ver se o usuario que esta tentando logar esta no banco de dados....

 

eu coloco o seguinte:

 

$varsql = "select * FROM passwords Where login = \"$vlogin\" and senha = \"$vsenha\"";

$rsdados = mysql_query($varsql,$conec);

 

acontece que $vlogin e $vsenha é o usuario e senha que ele tentou conectar..

mas para fazer querys por string, preciso da aspas simples por exemplo:

where login = 'estilo' and senha = 'tal'

 

como eu coloco isso na variavel $varsql que criei ali em cima? eu tentei: \'\" e nao consegui...

 

como posso fazer isso?

apos isso, estou fazendo o seguinte:

$varcount = mysql_num_rows($rsdados);

 

se varcount = 0, senha errada..acontece que coloco a senha certa e da 0

acho que isso ocorre pq nao ta capturando na query como string...como posso arrumar isso pessoal? falow..t+

Compartilhar este post


Link para o post
Compartilhar em outros sites

se colocarem na caixa de texto do login e senha o valor:

 

' or '1'='1 <-- desse jeito, com as aspas...

 

$varsql = "select ... login = '$vlogin' and senha = '$vsenha'";

 

sua variavel ficaria:

 

$varsql = "select ... login = '' or '1'='1' and senha = '' or '1'='1'";

 

entendeu?

;) <_< :angry: :wacko: :blink: :unsure: http://forum.imasters.com.br/public/style_emoticons/default/upset.gif http://forum.imasters.com.br/public/style_emoticons/default/devil.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

sua variavel ficaria:$varsql = "select ... login = '' or '1'='1' and senha = '' or '1'='1'";entendeu? ;) <_< :angry: :wacko: :blink: :unsure: http://forum.imasters.com.br/public/style_emoticons/default/upset.gif http://forum.imasters.com.br/public/style_emoticons/default/devil.gif

Ta..mas ai ele só vai conseguir entrar no sistema se o que ele digitou foi certo..ou seja..se a variavel tiver no banco de dados...ainda não estou vendo a insegurança nisso..por favor, me dem um exemplo com addslashes()...por favor...falow..t+

Compartilhar este post


Link para o post
Compartilhar em outros sites

Repare que aqui

 

$varsql = "select ... login = '' or '1'='1' and senha = '' or '1'='1'";

Ele vai retornar ou se o login e senha existir ou se 1 for igual a 1 ou seja entrou no sistema

Pq sempre vai ser verdadeira (1=1)

sako ?

 

Agora usando addslashes()

 

$vlogin = addslashes($vlogin);$vsenha = addslashes($vsenha);$varsql = "select ... login = '$vlogin' and senha = '$vsenha'";

Se o cara tentar enviar 'or'1'='1'

 

o $vlogin retornará \'or\'1\'=\'1\'

e o $vsenha segue na mesma

o mysql trata as aspas simples como caractere e não como um , vamos dizer escape.

 

Se magic_quotes extiver habilitado no php.ini ele já poe os \ automatico em tudo q for post get e cookie

 

 

falo ae

Compartilhar este post


Link para o post
Compartilhar em outros sites

o mysql trata as aspas simples como caractere e não como um , vamos dizer escape.

Agora eu entendi..sabe pq eu não pensei que o mysql não via o ' como um escape?pq eu mexo com coldfusion..e eu uso ' normalmente...e com banco de dados mysql..ou até mesmo pelo myqlfront...se eu colocar Where login = 'teste', ele me retorna..normalmente...falow e obrigado...t+

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.