La query no debería ser...
Código PHP:
$query="select * from usuarios where usuario='" .$n. "' and password='" .$p. "' ";
Creo que es por eso, puesto que le estas pasando realmente que busque un usuario que se llame $n y que tenga la pass $p. No el valor de la variable sino el nombre de la misma. Seguramente si creas un usuario en la base de datos con el nombre "$n" y con pass "$p" te marque como logueado.
Por eso debes indicar en la sentencia que se trata de una variable.