Ir para conteúdo

Arquivado

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

thelast

lower para duas variáveis

Recommended Posts

Olá pessoal,

Gostaria de saber como eu uso o "lower" para duas variáveis. Estou usando desta forma, mas não deu certo:

$sql = mysql_query("SELECT * FROM usuariosmb WHERE LOWER(nick) = '" . strtolower($nick) . "' and LOWER(email) = '" . strtolower($email) . "'");

Funciona com o "$nick", porém com o "$email" não.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Na verdade, estou usando este comando para evitar que o mesmo nick e e-mail sejam adicionados ao banco de dados.

Em relação ao comando: o $nick: TheLast e thelast são iguais.

porém com o $email: thelast@hotmail.com e THELAST@HOTMAIL.COM são diferentes (exemplo).

Sei que está dando erro pois o mesmo email (maisculo e minusculo) está sendo add ao banco de dados.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mas esse aí é um comando [inline]SELECT[/inline], você está se lembrando de também usar [inline]strtolower[/inline] no comando INSERT?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não, porque eu quero que seja colocado no banco de dados o que o usuário digitou (seja maiusculo ou minusculo).

No SELECT, eu consigo comparar o que o usuário digitou com o que está no bd, ambos em minusculo. Correto?

Compartilhar este post


Link para o post
Compartilhar em outros sites

É que o nick não era adicionado quando tinha no bd (independente de maiusculo ou minusculo), porém o email era adicionado. Ficava assim:

id: 1 - nick: thelast - email: thelast@hotmail.com

id: 2 nick: outroqualquer - email: THELAST@HOTMAIL.COM

Com o nick não acontecia isto.

 

Consegui resolver utilizando estes códigos:

<?php
$nick=$_POST['nick'];
$email=$_POST['email'];
$senha=$_POST['senha'];
$_POST["senha2"]=0;
$nick2 = strtolower($nick);
$email2 = strtolower($email);
$sql = mysql_query("SELECT * FROM usuariosmb WHERE nick = '$nick2' or email = '$email2'");
$numemail = mysql_num_rows($sql);
if ($numemail > 0) {
echo "<center><h2>O email e/ou o nick já estão sendo utilizados por outro usuário.</h2></center>";
echo "<script>failed()</script>";
} else {
$sql = mysql_query(" INSERT INTO usuariosmb(nick, email, senha)
VALUES('$nick', '$email', '$senha')");
echo "<center><h2>Cadastro efetuado com sucesso. Aguarde!!!</h2></center>";
echo "<script>cadastrook()</script>";
}
?>

Só não entendo porque o código abaixo não deu certo :/

$sql = mysql_query("SELECT * FROM usuariosmb WHERE LOWER(nick) = '" . strtolower($nick) . "' and LOWER(email) = '" . strtolower($email) . "'");

Sendo que é a mesma coisa, ou estou errado?

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.