Ver Mensaje Individual
  #2 (permalink)  
Antiguo 29/06/2004, 08:58
Cluster
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Bueno . en tu sentencia SQL puedes hacerlo todo de una:

Código PHP:
$result=mysql_query("SELECT COUNT(*) FROM `usuarios` WHERE `usr_login`= '$usr_login' AND `usr_login`= '$usr_pass'",$link); 
Esa consulta te arrojará un registro (record-set) con un valor 1 o 0 dependiendo si la contraseña y el usuario es correcta.


Así que podras hacer:

Código PHP:
if (mysql_result($result,0) == 1){
//liberas memoria de la consulta realizada y cierras la conexión .. no es necesario pero si lo quieres usar no está de más.
mysql_free_result($result);
mysql_close($link);

// usuario autentificado . haz lo que tengas que hacer
// creas tus cookies .. 

} else {
// Usuario no autentificado
header ("Location: ....");
exit;

Pero .. si quieres seguir con tu método .. debes obtener los registros que te va arrojar tu consulta SQL .. Como usas "LIKE" podría arrojarte más de un registro .. imagina un "user" de nombre: "pepe" y otro "nosepepenose" .. ambos registros serán arrojados por tu consulta y .. eso no es lo que quieres atendiendo a que cada nombre de "user" debería ser único!.

Confiando en que tendras usuarios de nombre único .. puedes usar mysql_result() para obtener ese único resultado que deberías obtener:

Código PHP:
if (mysql_result($result,0,'user_pass_nombre_campo') == $usr_pass){
// contraseña valida y .. el usuario existe .
} else {
// contraseña no valida .. el usuario existe.

pero antes de todo esto deberías validar si la consulta SQL arrojó algún resultado o no (record-set ) por qué sino este mysql_result() dará un error por qué no se le entregará un resultado válido ..

Código PHP:
if (mysql_num_rows($result) > 0){
// si arrojó algún resultado ..
// ejecutar resto de funciones de mysql_result() o mysql_fetch_xxx() para obtener sus resultados.

Como veras .. la primera solución lo hace todo de una .. Eso sí no podras dar un mensaje de error tipo "contraseña no valido" . .y por separado "usuario no valido" o ambos no correcto. Pero .. dicen que cuanto menos "pistas" des sobre el error en la autentificación .. mejor.

Un saludo,