@Ironmax

E' sbagliata l'impostazione generale dello script.
Se vuoi mantenere nello stesso script sia la visualizzazione iniziale (in cui c'è un form con la richiesta del nome) sia la parte che riceve i dati dal form e li utilizza, devi usare un if iniziale che distingua le due cose (ad esempio verificando con isset($_POST['nome'] se è stato passato un valore).
Se non è stato passato il valore (o un valore nullo) stampi la form, altrimenti il messaggio di benvenuto