Lo primero decirte que por favor hagas uso de las etiquetas para mejor lectura de tu código, te la he puesto yo en esta ocasión.
En cuanto al tema en cuestión, como primera medida veo que tu form no tiene nombre, sería conveniente bautizarlo, ya sabes <form name="pepe".... el actión lo puedes dejar en blanco es decir con unas simples comillas entenderá que hace submit al mismo script, por último decirte que es mucho más aconsejable el uso del type button que el type submit por muchas razones, pricipalmente que tienes el control antes de que se envíe el formulario.
Suponiendo que tu form ya tiene nombre y que el actión apunta al mismo script, y que has cambiado el type submit por el type button
Código PHP:
<script>
function validar() {
if ( form.usuario.value=='' ) {
alert('te olvidaste de poner tu nombre');
}
else {
miform.oculto.value="1";
miform.submit();
}
}
</script>
<body>
<?
if ( $oculto=="1" ) {
echo "Hola..: ".$usuario;
}
else {
?>
<form name="miform" method="post" action="">
<input name="usuario" type="text">
<input name="boton" type="button" value="Enviar" onClick="validar()">
<input name="oculto" type="hidden" value="">
</form>
<?
}
?>