Na vida real tens de verificar se o número de registos é igual a 1, e não maior que zero.if(mysql_num_rows($q) > 0){
if (mysql_num_rows($q) == 1) {.....}
Na vida real tens de verificar se o número de registos é igual a 1, e não maior que zero.
No mundo real acontecem azares e, se a coisa está mais ou menos colada com cuspo, até pode acontecer teres um utilizador com o mesmo username e a mesma password(!!!) (isto nunca deveria acontecer.... mas se acontecer, e para evitares males maiores, verifica se só existe 1 par username->password).
Se aceitas que exista mais do que 1, qual é o utilizador que vais autenticar?
resumindo:
Código:if (mysql_num_rows($q) == 1) {.....}
function checkRegistered($reg_email){
$this -> reg_email = $reg_email;
$search_user_query = sprintf("SELECT user_email FROM users WHERE user_email=%s",
GetSQLValueString($this -> reg_email ,"text"));
$search_user = mysql_query($search_user_query) or die(mysql_error());
$reg_FoundUser = mysql_num_rows($search_user);
if($reg_FoundUser){
return true;
}else{
return false;
}
}
Isso depende da aplicação.nem se deverá permitir ao user mudar o email
Certo. Por isso mesmo é que verificas se só existe um registo e não mais do que 0. Tendo em conta que nem sempre é o mesmo programador que leva o resto da vida de volta do mesmo programa, evitamos logo uma carga de chatices se fizermos as coisas certinhas de raíz :-)No mundo real o pessoal previne todo o tipo de cenário
Certo. Por isso mesmo é que verificas se só existe um registo e não mais do que 0. Tendo em conta que nem sempre é o mesmo programador que leva o resto da vida de volta do mesmo programa, evitamos logo uma carga de chatices se fizermos as coisas certinhas de raíz :-)
Como tal continuo a dizer que é redundande ser ==1 ou > 0 devido ao "árbitro" ter dito préviamente que só entra um gajo com aquele mail.