Cita: if ($compara["usuario"]==$usuario && $compara["contrasena"]==$pass)
yo no utlizo este código en el que te envié, lo que hago es lo siguiente(te explico desde la consulta).
hago la consulta con los datos ingresados, luego con pg_num_rows($query), obtengo el número de registros, en este caso como un usuario es único, lo comparo con 1 si fuera así inicio las variables de sessión con los datos que identificaré al usuario, en caso de que no sea uno, entonces ejecuto el bloque error, no sé si me explico.