Código PHP:
function validar_usuario($nombre,$pass)
{
$host = "localhost";
$usuari = "XXXXXXXXXXXX";
$passw = "XXXXXXXXXXXX";
$tabla = "mitabla";
$sql = "SELECT * FROM usuaris";
$conexion = mysql_connect($host,$usuari,$passw) or die ("Fallo en el primer pas");
mysql_select_db($tabla, $conexion);
$query = 'SELECT * FROM mitabla where nom=\''.$_POST['nombre'].'\' and pass=\''.$_POST['pass'].'\'';
$resultado = mysql_query($query,$conexion) or die ("falla al consultar datos");
$resultat = mysql_query($sql,$conexion) or die ("falla al consultar
datos 2 ");
while ($usuari = mysql_fetch_array($resultat));
$row = mysql_num_rows($resultado);
return $row;
}
Menudo lio tienes en esta funcion. Devuelves $row, que es lo devuelto por mysql_num_rows(), es decir, el numero de registros devueltos por la consulta. Asi que
Código PHP:
$usuario=validar_usuario($_POST['nombre'],$_POST['pass']);
siempre va a acabar con ese valor en $usuario, nunca con el registro.
En la funcion tambien tienes 2 consultas, una que no se para que sirve (SELECT * FROM usuaris). Deja solo lo que necesites.
Y por ultimo
Código PHP:
while ($usuari = mysql_fetch_array($resultat));
Esta linea siempre va a hacer que $usuari valga false, porque mysql_fetch_*() siempre devuelve false al intentar leer el registro siguiente al ultimo.