Que tal harryLine!
Ahora que has decidido entrar a PHP, debes estar al tanto que es dificil tratar de comparar ambos lenguajes. Y puedo asegurarte que cualquier cosa que puedas hacer con ASP, puede hacerse con PHP, y algunas otras... je je... (Te lo digo yo que uso los dos lenguajes)
Bueno, con tu primer cuestion.
Efectivamente, la solución se encuentra en la función header(), pero eso no quiere decir que esa tenga que ser tu primera linea de código, sencillamente quiere decir que los headers solo puedes manipularlos antes de enviar cualquier contenido al navegador...
Antes de el header("Location: tal.com");, puedes hacer cualquier cantidad de comprobaciones y acciones, mientras esto no implique una salida al navegador (por ejemplo, no usar echo() o print()).
Si necesitas construir HTML antes de el header, puedes construirlo DENTRO de una variable, y luego darle salida despues de haber pasado por la parte donde decides lo de los headers.
Ahora el segundo.
Algo similar a lo que hacias, puedes lograrlo con:
Código PHP:
if (!is_array($_POST)){
//formulario
} else {
//insertas a la BD
}
Saludos!!!