Cita:
Iniciado por plus_ultra todo esta mal
mysql_num_rows devuelve un entero y eso lo operas con $pass que vaya a saber que es. evidentemente es una variable no definida, php lo toma como cero y eso es lo que verdaderamente devuelve mysql_num_rows, ya que $user tampoco debe estar definida. es por eso que si usas el operador de igualdad devuelve true. te invito a que te repases los mensajes del FAQ de php porque verdaderamente tienes mal tus conceptos.
...
eso no es todo el code . $pass y $user estan definidos mas arriba del code , no los publique por que no hace falta.