Il codice che avevo promesso... sono tre file, un index.php, un chiedinome.html e un saluta.html. Il famoso "Ciao tuo nome" riproposto in uno scadente modello mcv. Dovrebbe comunque rendere un po' l'idea di cosa si parla. Come puoi vedere il codice PHP è tutto in un file ed in più distingui l'accesso ai dati, dalla visualizzazione dalla logica del programma. I file di presentazione (HTML) sono totalmente separati. Utilizzo dei segnaposti per le sostituzioni. Questo comunque è solo un esempio didattico, mai lo userei nella realtà.

Per brevità non ho commentato, ma se occorre chiedi e ti sarà dato!

Ciao!

File INDEX.PHP
codice:
<?php
session_start();

class controller{
    private $model;
    private $viewer;
    public function Inizializza(){
        $this->model=new model();
        $this->viewer=new viewer();

        if(isset ($_POST['nome']))
            $this->model->Aggiorna($this,"SalvaNome");
        else
            $this->viewer->Seleziona ($this->model,"ChiediNome");

    }

    public function Notifica($value){
        switch ($value) {
            case "SalvatoNome":
                $this->viewer->Seleziona($this->model,"Saluta");
                break;
            default:
                break;
        }
    }

}

class model{
    public function Aggiorna($controller,$cosa){
        switch ($cosa) {
            case "SalvaNome":
                $_SESSION['nome']=htmlspecialchars(trim($_POST['nome']));               
                $controller->Notifica("SalvatoNome");
                break;
            default:
                die('Operazione non gestita');
                break;
        }
    }
    public function Leggi($cosa){
        return $_SESSION[$cosa];
    }

}

class viewer{
    private $model;
    public function Seleziona($model,$cosa){
        $this->model=$model;
        $this->$cosa();
    }
    private function Saluta(){
        $str=file_get_contents("saluta.html");
        echo str_replace("$1$", $this->model->Leggi('nome'), $str);
    }
    private function ChiediNome(){
        echo file_get_contents("chiedinome.html");
    }

}


$controller=new controller();
$controller->Inizializza();
?>
File CHIEDINOME.HTML
codice:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title></title>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
      <form action="index.php"  method="post">
          Nome: <input type="text" name="nome">
          <input type="submit" value="Invia">
      </form>
  </body>
</html>
File SALUTA.HTML
codice:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title></title>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
      Ciao $1$
  </body>
</html>