La questione di visualizzare ciò che si immette nella stessa pagina in cui si immette o in una pagina a parte non sono cose completamente differenti.
Mentre è completamente differente lo script del tuo post con quello che vuoi fare, o almeno che hai descritto nei 2 punti.
Ricapitolando per fare quello che chiedi bastano due pagine, una html per inserire i dati e una php per riceverli e visualizzarli.
sender.html
Codice PHP:
<html>
.
.
.
<body>
<form action='receiver.php' method='post'>
nome: <input type='text' name='nome' />
<input type='submit' />
</form>
</body>
</html>
receiver.php
Codice PHP:
if(isset($_POST['nome']){
echo "ciao ".$_POST['nome'];
}
Quindi nella pagina html nel form indichi:
- nell'attributo action la pagina a cui inviare i dati
- nell'attributo method invece puoi scegliere tra 2 metodi di invio post o get, get vale di default se decidessi di utilizzare tale metodo potresti anche omettere l'attributo method.
Nella pagina php invece:
-ti limiti a controllare se ti è stato inviato il dato atteso
-lo puoi recuperare dall'array $_POST[indice] al posto dell'indice devi mettere l'attributo name del campo input che hai inviato, nel nostro caso il campo input aveva name = 'nome'. Se avessi inviato con get avresti trovato lo stesso valore in $_GET['nome']
-con echo lo dai in output
Questo meccanismo è alla base del funzionamento di ogni sito, sebbene esistono diversi modi con i quali si possono passare dati tra le pagine questo è il metodo di base con cui si possono rendere interattivi i siti, quindi cerca di capirlo bene.
Nello script da te postato viene anche gestita la trascrizione su database dei dati immessi, questo è necessario per salvare l'input dell'utente, visto che con il metodo da me descritto finora non viene memorizzato nulla da nessuna parte.
Se invece volessi mettere tutto quanto nella stessa pagina dovresti allestire una pagina php nel seguente modo:
Codice PHP:
<html>
.
.
.
<body>
<form method='post'>
nome: <input type='text' name='nome' />
<input type='submit' />
</form>
<?php
if(isset($_POST['nome']){
echo "ciao ".$_POST['nome'];
}
?>
</body>
</html>
Come era immaginabile basta unire i due file, l'unico cambiamento degno di nota sta nell'attributo action, infatti per inviare un form alla pagina stessa in cui è contenuto basta omettere tale attributo.