logo

Extra Block Types (EBT) - Nuova esperienza con Layout Builder❗

Extra Block Types (EBT) - tipi di blocchi stilizzati e personalizzabili: Slideshows, Tabs, Cards, Accordion e molti altri. Impostazioni integrate per sfondo, DOM Box, plugin javascript. Vivi oggi il futuro della costruzione dei layout.

Demo moduli EBT Scarica moduli EBT

❗Extra Paragraph Types (EPT) - Nuova esperienza con Paragraphs

Extra Paragraph Types (EPT) - insieme di moduli basati su paragrafi in modo analogo.

Demo moduli EPT Scarica moduli EPT

Scorri

Lezioni di PHP - Lezione 1 - Lavorare con i moduli (form).

09/10/2025, by Ivan

Nella vita reale riceviamo informazioni tramite televisione, radio, Internet o conversazioni dirette. Anche i siti web ricevono informazioni dagli utenti, ma lo fanno in un formato speciale: attraverso i moduli (form). I moduli possono essere paragonati ai questionari o ai moduli di richiesta che si compilano in un ufficio pubblico. Anche se il set di elementi disponibili nei form HTML è limitato, essi permettono comunque di ottenere dagli utenti tutte le informazioni necessarie per il funzionamento del sito.

Per comprendere meglio questa lezione, è consigliabile leggere prima le lezioni HTML sulla creazione dei form.

Prima di iniziare la prima lezione, creiamo la struttura base della nostra applicazione: una classe che gestirà il funzionamento del sito.

Creiamo una cartella class e al suo interno un file simpleCMS.php che conterrà la classe di gestione del sito. Creiamo poi un file index.php che sarà il punto di ingresso dell’applicazione, una cartella vuota messages per i nostri messaggi e infine un file di stile style.css. La struttura sarà quindi la seguente:

class/simpleCMS.php

messages/

index.php

style.css

Contenuto del file simpleCMS.php:

<?php
class simpleCMS {  // classe di gestione
  public function display_public() { // metodo per visualizzare i messaggi
  
  }
  public function display_admin() { // metodo per inserire un messaggio
	
  }
  public function write($p) { // metodo per salvare un messaggio
  
  }  
}
?>

Per ora lasciamo i metodi vuoti, li completeremo più tardi.

Contenuto del file style.css:

*{
  margin: 0;
  padding: 0;
}

body{ 
  font: 12px "Lucida Grande",  Sans-Serif;
  background: #ccc;
}

#page-wrap{ 
  width: 500px; 
  margin: 50px auto; 
  padding: 20px; 
  background: white; 
}

h1, h2, h3{ 
  font: 28px Georgia, Serif; 
  border-bottom: 1px dotted #ccc;
  margin: 0 0 10px 0; 
}

.clear{ 
  clear: both; 
}

input[type="text"], textarea{ 
  padding: 3px; 
  border: 1px solid #666; 
  width: 350px;	
  margin: 0 0 15px 0; 
}

input[type="text"]{ 
  font: 28px Georgia, Serif; 
}

textarea { 
  height: 100px; 
  font: 12px "Lucida Grande", Sans-Serif; 
}

label 	{ 
  background: #666; 
  color: white; 
  padding: 2px 6px; 
}

.post{ 
  margin: 0 0 20px 0; 
}

Contenuto del file index.php:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <title>Impariamo PHP</title>
    <link rel="stylesheet" type="text/css" href="style.css" />
  </head>
  <body>
  	<div id="page-wrap">
    <?php
    
      include_once('class/simpleCMS.php'); // includiamo il file con la classe
      $obj = new simpleCMS(); // creiamo un oggetto della classe di gestione 
  ?>
   </div>
  </body>
</html>

Vediamo come funziona. Quando il sito viene caricato, si apre il file index.php. Attualmente appare vuoto, ma abbiamo già collegato la classe e creato il suo oggetto. Quest’oggetto contiene metodi che richiameremo nei momenti opportuni, determinati tramite l’uso di condizioni if.

Ora mettiamo da parte i file creati e analizziamo le variabili globali $_GET e $_POST.

Variabile globale $_GET

I form HTML hanno un attributo method (method="get" o method="post"). In base a questo, i dati vengono salvati nella variabile globale $_GET o $_POST. Ecco un esempio:

<form action="welcome.php" method="get">
Nome: <input type="text" name="fname" />
Età: <input type="text" name="age" />
<input type="submit" />
</form> 

Quando si preme il pulsante submit, il browser ci porta alla pagina:

http://sitename/welcome.php?fname=Peter&age=37

Così viene formata la variabile $_GET: dopo il punto interrogativo compaiono i valori della variabile.

<?php
print $_GET['fname'];
print $_GET['age'];
?>

$_GET è quindi un array che contiene i valori passati tramite l’URL. In questo modo possiamo passare dati da una pagina all’altra anche senza usare moduli, ad esempio se apriamo:

http://sitename/example.php?number=45

ed eseguiamo questo script:

<?php
  print $_GET['number'];
?>

verrà stampato il numero presente nell’URL.

Variabile globale $_POST

La variabile $_POST funziona in modo simile a $_GET. Vediamo un esempio:

<form action="welcome.php" method="post">
Nome: <input type="text" name="fname" />
Età: <input type="text" name="age" />
<input type="submit" />
</form> 

Premendo il pulsante submit, si va alla pagina:

http://sitename/welcome.php

E possiamo accedere ai valori tramite:

<?php
print $_POST['fname'];
print $_POST['age'];
?>

La differenza principale è che le variabili $_POST non appaiono nell’URL, quindi non sono visibili e possono essere lette solo tramite PHP.

Ora creiamo un modulo per aggiungere messaggi. Useremo POST per inviare i dati, ma controlleremo il sito tramite GET:

public function display_admin() { // metodo per inserire un messaggio	
  $content = '';
  $content .= '<form action="' . $_SERVER['PHP_SELF'] . '" method="post">'; // $_SERVER['PHP_SELF'] restituisce il nome del file corrente
  $content .= '<label for="title">Nome:</label><br />';
  $content .= '<input name="title" id="title" type="text" maxlength="150" />';
  $content .= '<div class="clear"></div>';
  $content .= '<label for="bodytext">Messaggio:</label><br />';
  $content .= '<textarea name="bodytext" id="bodytext"></textarea>';	
  $content .= '<div class="clear"></div>';	
  $content .= '<input type="submit" value="Aggiungi messaggio" />';	
  $content .= '</form>';		
  $content .= '<p><a href="/index.php">Torna alla home</a></p>';    
  return $content;  
}

Sostituisci il metodo display_admin() con questo codice. Questo modulo verrà mostrato quando vogliamo aggiungere un nuovo messaggio. Per impostazione predefinita, invece, verranno mostrati i messaggi esistenti. Decidiamo che il modulo verrà visualizzato quando nell’URL sarà presente la variabile admin=1, ad esempio:

http://test/index.php?admin=1

Modifichiamo quindi il file index.php:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ru" lang="ru" dir="ltr">
  <head>
	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Impariamo PHP</title>
    <link rel="stylesheet" type="text/css" href="style.css" />
  </head>
  <body>
  	<div id="page-wrap">
    <?php
    
      include_once('class/simpleCMS.php'); // includiamo il file con la classe
      $obj = new simpleCMS(); // creiamo un oggetto della classe di gestione

	  
      if( $_GET['admin'] == 1 ){ // se nell'URL c'è la variabile admin
	    print $obj->display_admin(); // mostra il modulo
	  }else{
	    print $obj->display_public(); // altrimenti mostra i messaggi
	  }
     
    ?>	  
	</div>
  </body>
</html>

Ora modifichiamo il metodo per la visualizzazione dei messaggi nella pagina senza parametri:

  public function display_public() { // metodo per visualizzare i messaggi
    $content = '';
	$content .= '<p><a href="/index.php?admin=1">Aggiungi messaggio</a></p>';
    return $content;
  }

Aggiungiamo un link con parametro per poter aprire la pagina del modulo.

Se la tua pagina mostra caratteri strani (simboli illeggibili), crea un file .htaccess e aggiungi questa riga:

AddDefaultCharset utf-8

Questo forzerà il server a lavorare con UTF-8.

Ora abbiamo un modulo funzionante che invia i dati a un’altra pagina. Puoi testarne il funzionamento cambiando il metodo del form in get:

$content .=	'<form action="' . $_SERVER['PHP_SELF'] . '" method="get">';

Ora i parametri verranno passati alla pagina index.php tramite l’URL. L’elaborazione di questi dati la vedremo nella prossima lezione, quando impareremo a lavorare con i file e a salvare i dati al loro interno.

Прикрепленные файлы