Ver Mensaje Individual
  #7 (permalink)  
Antiguo 25/09/2007, 06:33
jose.va18
 
Fecha de Ingreso: marzo-2007
Mensajes: 12
Antigüedad: 17 años, 2 meses
Puntos: 1
Re: duda mysql_num_rows

Hola, en primer lugar gracias por contestar.

Respecto a las respuestas de venedan y ramoncito tengo que decirles que la inyección sql no es el problema, ya que si pongo por ejemplo, if(mysql_num_rows($resultado) > 0 me da como resultado ACCESO PERMITIDO.

Respecto a jpinedo y caerolus, Jpinedo como dice caerolus en la página web que me has pasado sale la predencia de operaciones de menor a mayor y yo diria que siempre AND tiene mayor precedencia que OR.

Entonces la consulta nos quedaria como dices:
"Dame todos los usuarios cuyo (nombre sea Admin Y su password sea '1') o (donde 1=1)"

entonces seria false or true = true --> Devuelve todos los registros

En cambio si pongo el password verdadero:
"Dame todos los usuarios cuyo (nombre sea Admin Y su password sea '123') o (donde 1=1)"
entonces seria true or true = true --> ¿Porque solo devuelve 1 registro?

Lo único que me viene a la cabeza es que en el primer caso, donde el password es incorrecto, como la primera condición es false quedaría:
"Dame todos los usuarios cuyo [esto es falso] o (donde 1=1)"
Entonces devuelve todos los campos

En el otro caso, en el que el password es correcto quedaría:
"Dame todos los usuarios cuyo (nombre sea Admin Y su password sea '123') o [como ya es verdadero, esto no sirve]"
como todo es verdadero, se ejecuta primero la condicion (nombre sea Admin Y su password sea '1') y ya no sigue comparando, con lo que solo se ve afectada 1 fila, la fila del admin.

Estoy en lo cierto? Gracias, saludos.

Última edición por jose.va18; 25/09/2007 a las 06:50