Una sugerencia, sal de PHP todo lo q sea necesario, te será muy útil para diseñar.
Otra sugerencia, si ves que un código javascript no te funciona una buena opción es usar la claúsula
try { } catch(e) { } para poder ver cual es el error y, en tu caso, mandar un return false y q no se envíe el formulario. La consola de Firefox te puede servir de ayuda para determinar los problemas.
Y agrego q el problema es más de javascript q de PHP.
Saludos.
EDITO para explikarme mejor:
Con lo de sal de PHP me refiero a q en lugar de usar print 'lo q quiera imprimir con o sin etiquetas html'; es mejor:
Código PHP:
//Tu caso:
print '<script language="javascript" type="text/javascript">
alert("está por enviar datos")
function vacio(campo) {
for ( i = 0; i < campo.length; i++ ) {
if ( campo.charAt(i) != " " ) {
return true
}
}
return false
}
function valida(Formulario){
var retorna = false
if(vacio(Formulario.usuario.value) == false){
retorna = false
}
else{
if(vacio(Formulario.contrasena.value) == false){
retorna = false
}
else
return retorna = true
}
}
if (retorna == false){
alert ("No debe haber campos vacios")
}
return retorna
}
</script>';
//A lo q me refiero:
?>
<script language="javascript" type="text/javascript">
alert("está por enviar datos")
function vacio(campo) {
for ( i = 0; i < campo.length; i++ ) {
if ( campo.charAt(i) != " " ) {
return true
}
}
return false
}
function valida(Formulario){
var retorna = false
if(vacio(Formulario.usuario.value) == false){
retorna = false
}
else{
if(vacio(Formulario.contrasena.value) == false){
retorna = false
}
else
return retorna = true
}
}
if (retorna == false){
alert ("No debe haber campos vacios")
}
return retorna
}
</script>
<?php