Por lo pronto, cuando mandas a ejecutar la consutla no estás considerando si devuelve un error o no. No lo muestras, y bien podría estar sucediendo.
Yo te sugiero poner la query así:
Código PHP:
Ver original$sql = "SELECT DNI, password, carrec FROM usuaris WHERE DNI= '$dni' AND password ='$password'";
if(!$query_login)
else
{
// Aquyí el resto de tu script, para el caso de haber obtenido resultados.
}