Cambia tu codigo PHP por este...
Código PHP:
<?php
if ($_POST[nombre]!="" && $_POST[apellido]!="" && $_POST[dni]!=""){
$conexion=mysql_connect("localhost","root","")
or die("Problemas en la conexion");
mysql_select_db("compras",$conexion) or
die("Problemas en la seleccion de la base de datos");
mysql_query("insert into usuarios(id,nombre,apellido,dni) values
('$_REQUEST[id]','$_REQUEST[nombre]','$_REQUEST[apellido]','$_REQUEST[dni]')",
$conexion) or die("Problemas en el select".mysql_error());
mysql_close($conexion);
echo " fue Gurdado.";
} ?>
Solo agregue el chekeo de campos... Es decir.. si los campos no estan vacios... se hace eso... Si cualquiera esta vacio... no se hace nada....
Espero sirva de ayuda