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
File CHIEDINOME.HTMLcodice:<?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 SALUTA.HTMLcodice:<!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>
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>

Rispondi quotando