Una breve guida a PHP – Linguaggio di programmazione
Sommario
- Linguaggio di programmazione PHP – generalità
- Il linguaggio PHP – installazione
- I primi script in PHP
- PHP e HTML embedded
- Le variabili e gli operatori in PHP
- Gli array
- Le funzioni count e var ̲ dump
- Le variabili predefinite e variabili superglobali
- La struttura if
- Le strutture while e for
- L’interazione con l’utente
- L’accesso ai database MySQL
Linguaggio di programmazione PHP – generalità
Il linguaggio HTML e i linguaggi di scripting come JavaScript impongono alcune limitazioni alle applicazioni che si possono realizzare; in particolare non è possibile costruire pagine Web che consentano all’utente di accedere ai dati contenuti in un database residente su un server Web. Questi tipi di linguaggi svolgono quindi la loro funzione dal lato client di un’architettura Web. Per poter interagire con i dati che si trovano sul server remoto, si devono utilizzare altre tecnologie che effettuino le operazioni dal lato server

Il termine Web server indica in generale il software per la gestione dei servizi Web di un computer host, o server di rete, basati sui protocolli standard delle reti e di Internet, in particolare il protocollo HTTP (HyperText Transfer Protocol), che è il principale protocollo del Web.PHP (acronimo ricorsivo di PHP: Hypertext Preprocessor, preprocessore di ipertesti) è un linguaggio che estende le funzionalità del Web server consentendo l’interpretazione di file con estensione .php contenenti il codice dell’applicazione.
PHP è un linguaggio interpretato, il che significa che esiste un programma specifico, chiamato interprete, che esegue il codice sorgente istruzione per istruzione. L’interprete ufficiale di PHP è lo Zend Engine, introdotto nel 1999 con PHP 4. Oltre a essere il cuore di PHP, lo Zend Engine svolge diversi compiti, tra cui:
- Analisi della sintassi, compilazione in memoria ed esecuzione degli script PHP.
- Implementazione di tutte le strutture dati standard di PHP.
- Interfacciamento con le estensioni di PHP per l’utilizzo di protocolli esterni come HTTP e FTP.
- Fornitura di servizi standard, tra cui gestione della memoria e delle risorse.
Durante l’esecuzione di uno script PHP, il codice viene caricato in memoria e compilato generando i cosiddetti Zend Opcodes, istruzioni binarie di basso livello. Questi opcodes vengono eseguiti per generare il codice HTML corrispondente, che viene poi inviato al browser web dell’utente. Al termine dell’esecuzione, la memoria viene liberata automaticamente.

Il linguaggio PHP – installazione
PHP può essere installato su diverse piattaforme operative, inclusi Windows, macOS e Linux.
Windows: Scaricare il pacchetto PHP dal sito ufficiale (php.net). Una volta scaricato, decomprimere il pacchetto e aggiungere il percorso della cartella PHP alla variabile d’ambiente PATH.
- Assicurarsi di configurare il file
php.ini
. - Si consiglia di utilizzare un pacchetto completo come XAMPP per semplificare l’installazione. Qui puoi leggere la guida all’installazione di XAMPP
macOS: PHP è già preinstallato in macOS. È possibile utilizzare brew
per aggiornare PHP all’ultima versione con il comando:
Copied!brew install php
Dopo l’installazione, verificare che PHP sia configurato correttamente eseguendo:
Copied!php -v
Linux: La maggior parte delle distribuzioni Linux include PHP nei propri repository ufficiali. Utilizzare il gestore di pacchetti per installare PHP:
Copied!sudo apt update && sudo apt install php
Una volta completata l’installazione, verificare la versione con il comando:
Copied!php -v
I primi script in PHP
Il linguaggio PHP – phpinfo()
Nella directory C:\xampp (raggiungibile anche cliccando il tasto explorer dal pannello di XAMPP) c’è la subdirectory htdocs. Essa dovrà contenere tutti progetti realizzati in PHP. Per poter accedere e testare i nostri file dovremo aprire un WEB Browser e digitare nella barra degli indirizzi localhost/nome_progetto/file.php
In htdocs creiamo la cartella test dove inseriremo i nostri file php da testare. Apriamo il nostro editor di testo o un IDE (es. Visual Studio Code) e creiamo il nostro primo file .php che consentirà di verificare se PHP sia stato effettivamente installato. Utilizzeremo la funzione phpinfo(). Sotto potete osservare il codice completo. La nostra funzione sarà racchiusa tra <?php e ?> che rappresentano l’inizio e la fine di uno script PHP.
<?php
phpinfo();
?>
Dopo aver salvato il file con estensione .php, ad esempio file1.php apriremo il browser e scriveremo nella barra degli indirizzi localhost/test/file1.php. Se l’installazione è andata a buon fine, a questo punto si può vedere la pagina web sotto come risultato dell’esecuzione dello script.

Eseguendo uno script con la funzione phpinfo(), il browser visualizza le informazioni sulla configurazione PHP.
La funzione phpinfo() è la forma breve del valore standard phpinfo(INFO_ALL). Fornisce informazioni dettagliate sulla configurazione PHP del server web. Qualora non sia possibile trovare alcuna versione di PHP, il browser web visualizzerà un messaggio di errore oppure il codice PHP verrà consegnato al browser senza che questo sia in grado di interpretarlo.
“Hello World!”: come creare un output di testo tramite echo
Una volta che l’installazione di PHP è andata a buon fine, è il momento di scrivere il primo script. L’istruzione PHP echo si presta bene a questo scopo. Diversamente da phpinfo(), echo non è una funzione. Si tratta piuttosto di un costrutto linguistico che consente di produrre una stringa successiva come testo.
Creiamo un nuovo file PHP per il primo script e scriviamo il seguente codice:
<?php
echo "Hello World!";
?>
Le tre righe rappresentano:
- tag di apertura PHP;
- istruzione seguita dal punto e virgola;
- tag di chiusura PHP
Salviamo lo script come hello.php nella cartella htdocs/test del server web e apriamo il file tramite l’URL http://localhost/test/hello.php sul browser web. Se il codice è stato trasferito correttamente, nella finestra del browser dovrebbe apparire l’immagine sotto

PHP e HTML embedded
Il costrutto linguistico echo istruisce il server web a emettere la stringa Hello World!.
Qualsiasi testo emesso con echo può essere contrassegnato con tag HTML, se necessario. Questi tag vengono poi interpretati dal browser web in base alle specifiche HTML. Facciamo una prova, ad esempio con il seguente script:
<?php
echo '<h1>Hello World!</h1>
<p>This is my first PHP page.</p>';
?>
Quando viene visualizzato nel browser web, il risultato dell’esecuzione dello script appare come qui sotto:

Quindi se il risultato dell’esecuzione dello script contiene tag HTML, il browser web li interpreta automaticamente.
La stringa Hello World! compresa nei tag <h1> viene interpretata dal browser web come un header h1. È seguita da un’interruzione di riga automatica e dal paragrafo di testo <p>.
A seconda delle esigenze, echo può essere usato con virgolette singole (’) o doppie (“). Se vogliamo emettere solo testo, non fa alcuna differenza la scelta delle virgolette. Ma le cose cambiano quando entrano in gioco le variabili PHP.
Primo esercizio: TRE NUMERI CASUALI Costruire una pagina Web per generare tre numeri casuali compresi tra 1 e 90
Il problema presenta una pagina Web che ingloba uno script in linguaggio PHP e chiarisce il significato di pagina Web dinamica creata dal server.
Si utilizza la funzione rand, predefinita nel linguaggio PHP: essa restituisce un numero intero compreso tra un valore minimo e uno massimo specificati dai parametri, che sono scritti nelle parentesi tonde e separati dalla virgola. Per esempio, per generare un numero casuale compreso tra 1 e 90 si deve usare la funzione nella forma: rand(1, 90)
<!DOCTYPE html>
<html>
<head></head>
<body>
<h1>Numeri generati;</h1>
<?php
echo rand(1, 90)."<br>";
echo rand(1, 90)."<br>";
echo rand(1, 90)."<br>";
?>
</body>
</html>
La pagina PHP è un file di testo che viene salvato sul server con l’estensione .php. Come si vede, la pagina è composta da tag HTML e dal codice PHP, evidenziato in colore e racchiuso tra i marcatori <?php … ?>.
Ogni istruzione può occupare una o più righe e termina sempre con il carattere di punto e virgola (;).
Viene invocata la funzione echo con una stringa come parametro. La stringa può contenere testo e tag HTML, tra virgolette, oppure variabili e funzioni. I diversi elementi sono concatenati tra loro con l’operatore punto (.).
Nelle istruzioni precedenti si usa il tag <br> per inserire un ritorno a capo dopo la visualizzazione di un numero.
La funzione echo invia la stringa al browser dell’utente. Utilizzando questa funzione si possono aggiungere testo, valori e marcatori HTML alla pagina che è stata richiesta. Quando il browser attiva il collegamento con numericasuali.php, il server Web legge il file e invia al browser il contenuto. Nel momento in cui capisce che è presente uno script in linguaggio PHP, richiama l’interprete ed esegue il codice. Per effetto di queste azioni il browser visualizza la pagina sotto:

Facendo clic sul pulsante Aggiorna del browser, vengono visualizzati valori diversi per i tre numeri casuali, cioè la pagina Web è dinamica, perché viene generata in modo diverso ogni volta che riceve una richiesta dal browser.
Si può sapere che cosa viene restituito al browser, per effetto dell’interazione con l’interprete PHP, visualizzando il codice HTML della pagina (tasto destro del mouse sulla pagina, scelta HTML in Internet Explorer e scelta Visualizza sorgente pagina in Chrome, oppure scorciatoia da tastiera Ctrl + U). Il risultato di questa operazione è mostrato nella figura sotto.

La pagina Web ricevuta dal browser non contiene codice PHP, ma solo il codice HTML generato dal server sulla base delle istruzioni PHP.
Le variabili e gli operatori in PHP
Nel linguaggio PHP le variabili sono identificate da un nome preceduto dal segno del dollaro $. I nomi delle variabili sono case sensitive (cioè distinguono maiuscolo e minuscolo) e per essere validi devono iniziare con una lettera e contenere lettere, cifre o il carattere di sottolineatura _. Non è necessario dichiarare le variabili, quindi una variabile viene generata nel momento in cui le si assegna un valore.
<?php
$eta = 19; //contiene un intero
$titolo = "I promessi sposi "// contiene una stringa
$prezzo = 31.2; // contiene un floating point
?>
PHP, in modo autonomo e dinamico, attribuisce il tipo a ogni variabile. Il tipo associato a una variabile può variare all’interno dello script; la stessa variabile viene considerata un intero se a essa si associa un numero, oppure viene considerata una stringa se a essa si associa una stringa di caratteri.I principali tipi di variabile gestiti nel linguaggio PHP sono:
- numero intero;
- numero a virgola mobile (fl oating point);
- stringa;
- valori logici;
- array;
- oggetto.
Esistono due modalità per assegnare un valore alle variabili che memorizzano una stringa:
- racchiudendo il testo tra doppi apici “;
- racchiudendo il testo tra apici singoli ‘.
Con il primo metodo, se all’interno della stringa sono presenti altre variabili, queste vengono espanse nel loro valore. Con il secondo metodo questo non avviene.
<?php
$nome = "Giovanni";
$saluto = "Buongiorno $nome";
// contiene: Buongiorno Giovanni
echo "$saluto <br>";
$saluto = 'Buongiorno $nome';
// contiene: Buongiorno $nome
echo "$saluto <br>";
?>

Le stringhe possono essere concatenate utilizzando il punto (.), operatore di concatenazione
<?php
$nome = "Giovanni";
$saluto = "Buongiorno " . $nome; // contiene: Buongiorno Giovanni
echo "$saluto <br>";
$somma = 768;
$messaggio = "Totale = " . $somma; // contiene: Totale = 768
echo "$messaggio <br>";
?>

Con i numeri e le variabili numeriche si possono utilizzare i seguenti operatori:




Gli array
Nel linguaggio PHP un array è rappresentato da una variabile che contiene un insieme di valori identificati da un indice. Anche gli array, come le variabili, non devono essere dichiarati: essi sono creati tramite l’assegnamento dei valori. L’indice con cui si accede agli elementi degli array può essere un numero oppure una stringa. Nel primo caso si parla di array numerici, nel secondo caso di array associativi. Per accedere al valore di un elemento dell’array si utilizza il nome della variabile seguito dall’indice dell’elemento racchiuso tra parentesi quadre. Nel linguaggio PHP, a differenza di altri linguaggi di programmazione, gli elementi di un array possono essere di qualsiasi tipo e non è necessario che siano tutti dello stesso tipo. Quindi nello stesso array si possono memorizzare, per esempio, valori numerici e valori stringa.
Gli array numerici
Negli array numerici l’indice è un numero intero che parte da 0.

Gli array associativi
Negli array associativi l’indice è una stringa che è indicata tra doppi apici

Le funzioni count e var ̲ dump
Il linguaggio PHP mette a disposizione diverse funzioni che operano con gli array. Tra queste esiste la funzione count che riceve come parametro l’array e restituisce il numero di elementi di cui è composto. La funzione var_dump visualizza tipo e valore del contenuto di una variabile ricevuta come argomento.
Nell’esercizio sotto visualizziamo il tipo e il valore delle componenti di un array (applicando la funzione var_dump) e il numero delle componenti del medesimo array (applicando la funzione count)
<!DOCTYPE html>
<html>
<head>
<title>Array e tipi</title>
</head>
<body>
<h2>Array: tipi e valori</h2>
<hr>
<?php
$dati = array(30, "Roma", 12.7, true, null);
echo 'var_dump($dati[0]) = ';
echo var_dump($dati[0]) . '<br>';
echo 'var_dump($dati[1]) = ';
echo var_dump($dati[1]) . '<br>';
echo 'var_dump($dati[2]) = ';
echo var_dump($dati[2]) . '<br>';
echo 'var_dump($dati[3]) = ';
echo var_dump($dati[3]) . '<br>';
echo 'var_dump($dati[4]) = ';
echo var_dump($dati[4]) . '<br>';
echo '<hr>';
echo 'count($dati) = ';
echo count($dati) . '<br>';
?>
</body>
</html>

Le variabili predefinite e variabili superglobali
Il linguaggio PHP possiede un grande numero di variabili predefinite, che sono disponibili per gli script durante la fase di esecuzione. Molte delle variabili predefinite sono dette superglobals, perché sono visibili da qualsiasi punto del codice PHP. Queste variabili sono create direttamente dall’interprete PHP e sono raggruppate nei seguenti array associativi:
• $_GET: contiene le variabili passate allo script tramite la modalità GET;
- $_POST: contiene le variabili passate allo script tramite la modalità POST;
- $_SERVER: contiene le variabili passate allo script dal server Web;
- $_COOKIE: contiene le variabili passate allo script tramite i cookie;
- $_SESSION: contiene le variabili utilizzate per implementare il concetto di sessione.
Gli array $_GET e $_POST contengono le variabili che il browser Web può passare come parametri quando richiama uno script PHP. Le variabili predefinite passate dal server Web contengono informazioni importanti sullo script e sul computer client che ha richiesto l’esecuzione dello script. In particolare:
- la variabile $_SERVER[‘REMOTE_ADDR’] contiene l’indirizzo IP da cui proviene la richiesta di esecuzione dello script, ovvero l’indirizzo IP della macchina dell’utente;
- la variabile $_SERVER[‘SERVER_SOFTWARE’] contiene il nome del server Web che esegue lo script;
- la variabile $_SERVER[‘HTTP_USER_AGENT’] contiene una stringa con il nome del browser utilizzato dall’utente;
- la variabile $_SERVER[‘SERVER_NAME’] contiene il nome della macchina su cui gira il server Web;
- la variabile $_SERVER[‘PHP_SELF’] contiene il nome dello script in esecuzione.
Gli array associativi predefiniti del linguaggio PHP devono essere scritti con i caratteri tutti maiuscoli. Gli indici delle variabili, tra parentesi quadre, sono racchiusi da singoli apici oppure da doppi apici.
Le precedenti informazioni possono essere utilizzate per registrare gli accessi al server, attraverso i cosiddetti file di log, e per produrre successivamente le statistiche relative ai visitatori, per esempio da dove si collegano e quale browser Web utilizzano.
Occorre osservare che le variabili di uno script, di norma, esistono e hanno validità limitata al solo script nel quale sono state create: terminata l’esecuzione dello script esse vengono distrutte. A questa regola fanno eccezione le variabili dell’array $_SESSION la cui validità può essere estesa a diversi script. Questa caratteristica è sfruttata per realizzare sessioni di lavoro. Con il termine sessione si intende lo svolgimento in un arco temporale di un insieme di attività correlate, con una o alcune di queste che sono preliminari ad altre.
Nell’esempio sotto creiamo uno script che si connette ad un server e visualizza il suo indirizzo IP, il tipo di browser che sta utilizzando, il server Web che esegue lo script e il nome del server a cui è collegato
<!DOCTYPE html>
<html>
<head>
<title>Server</title>
</head>
<body>
Il tuo indirizzo IP :<?php echo $_SERVER['REMOTE_ADDR'] . "<br>" ?>
Il tuo browser Web :<?php echo $_SERVER['HTTP_USER_AGENT'] . "<br>" ?>
Il tuo server Web :<?php echo ($_SERVER['SERVER_SOFTWARE']) . "<br>" ?>
Il tuo server :<?php echo $_SERVER['SERVER_NAME'] . "<br>" ?>
</body>
</html>

La struttura if
Il linguaggio PHP, come tutti i linguaggi di programmazione, prevede costrutti per controllare l’ordine di esecuzione delle istruzioni (strutture di controllo). La struttura di selezione si rappresenta con la sintassi generale visibile accanto.
<?php
if ( condizione ) {
// istruzioni eseguite se condizione è vera
} else {
// istruzioni eseguite se condizione è falsa
}
?>
Le strutture while e for
Le strutture di iterazione hanno il compito di ripetere l’esecuzione di un blocco di istruzioni per un numero di volte specifi cato tramite una condizione.La struttura di ripetizione while ha la sintassi generale visibile accanto. La struttura di ripetizione for ha la generale visibile accanto
<?php
while ( condizione ) {
// istruzioni eseguite mentre condizione si mantiene vera
}
?>
<?php
for( inizializzazione; condizione; aggiornamento) {
// istruzioni eseguite se condizione è vera
}
?>
L’interazione con l’utente
Con il linguaggio PHP l’interazione avviene nel momento in cui l’utente invia una richiesta al server Web: quest’ultimo genera come risposta, tramite PHP, una pagina Web dinamica. L’interazione dell’utente avviene aggiungendo particolari informazioni alla richiesta di una pagina Web e può essere gestita attraverso i form del linguaggio HTML, cioè moduli che permettono la costruzione di un’interfaccia grafi ca formata da caselle di testo e da pulsanti. Tramite questa interfaccia, l’utente può inserire i valori e inviarli al server Web come parametri dello script
Un form HTML che contiene una casella di testo (text) e un pulsante per l’invio (submit) è quello accanto
<form action="cerca.php" method="get">
Parola: <input type="text" name="parola" />
<input type="submit" value="Cerca" />
</form>
Quando si fa clic sul pulsante con l’etichetta Cerca, il browser richiama lo script cerca.php indicato nell’intestazione del modulo come valore dell’attributo action. Il browser aggiunge automaticamente alla richiesta tutti i campi presenti nel modulo: per ogni campo crea un parametro avente come nome il nome del campo (indicato dall’attributo name del tag <input>) e come valore ciò che l’utente ha inserito nella casella di testo.
I metodi get e post
Come si può notare dall’esempio precedente, l’attributo method del form HTML ha il compito di indicare al browser quale modalità deve utilizzare per inviare i campi del modulo al server Web. Nella modalità get i parametri sono codificati automaticamente dal browser all’interno dell’indirizzo e vengono visualizzati insieme all’URL della pagina Web. Questa modalità non è adatta in tutte le situazioni: per esempio non è desiderabile che una password o un numero di carta di credito siano visualizzati insieme all’indirizzo. In certi casi, inoltre, non è tecnicamente possibile utilizzare la modalità get viste le limitazioni sulla lunghezza degli indirizzi: si pensi a un modulo che contiene un’area di testo (textarea) con un numero notevole di caratteri.Il form dell’esempio precedente possiede un solo campo. Supponendo che l’utente abbia inserito nella casella il testo gatto, il browser richiama il seguente script con parametro:
Copied!cerca.php?parola=gatto
La modalità post viene utilizzata per spedire grandi quantità di dati e in modo che non siano visibili all’utente. Una pagina generata da un modulo che ha usato il metodo get può essere salvata nei bookmarks con il corretto valore dei parametri trasmessi (che infatti sono parte dell’URL della pagina), mentre questo non avviene con una pagina generata con il metodo post. I parametri vengono passati allo script PHP per mezzo dell’array associativo $_GET nel caso di parametri passati con il metodo get, oppure $_POST se i parametri sono passati con il metodo post. I valori sono disponibili nella componente dell’array di indice uguale al nome del parametro. Nell’esempio precedente, dove si è usata la modalità get, il valore attribuito al campo parola è accessibile nello script PHP tramite la variabile: $_GET[“parola”]
I metodi get e post realizzano il passaggio di valori da un form HTML a uno script PHP che può costruire una pagina di risposta personalizzata in base ai valori ricevuti.
Nell’esempio sotto costruiamo un modulo HTML (richiesta.html) per richiamare lo script che converte una lunghezza da chilometri a miglia (converti.php), passando come parametro con il metodo post il valore della lunghezza inserito dall’utente.
<!DOCTYPE html>
<html>
<head>
<title>Conversione km-miglia</title>
</head>
<body>
<h2>Conversione in miglia</h2>
<form action="converti.php" method="post">
lunghezza in km: <input type="text" name="km">
<input type="submit" name="invia" value="Converti">
</form>
</body>
</html>
<!DOCTYPE html>
<html>
<head>
<title>Conversione km-miglia</title>
</head>
<body>
<h3><?php echo $_POST["km"]." "; ?>kilometri </h3>
corrispondono a
<h3>
<?php
/** il valore dei km e' ricevuto
* come parametro dalla pagina HTML
* 1 miglio = 1,609344 kilometri
*/
$miglia = $_POST["km"] /1.6093;
echo ($miglia). " ";
?>
Miglia
</h3>
</body>
</html>

Questa soluzione può essere realizzata anche con un’unica pagina PHP che contiene il form HTML e la parte di calcolo. Per far questo occorre indicare come attributo action del form la pagina stessa, con la sintassi:
<form method=”post” action=”<?php echo $_SERVER[‘PHP_SELF’]; ?>”>
La variabile $_SERVER[‘PHP_SELF’], infatti, contiene il nome dello script in esecuzione. La precedente pagina richiesta.html può quindi essere eliminata e le sue funzionalità sono comprese nell’unica pagina PHP che risolve il problema.
Ovviamente tutto il codice va gestito in un unico file come indicato sotto (converti2.php).
<!DOCTYPE html>
<html>
<head>
<title>Conversione km-miglia</title>
</head>
<body>
<h3><?php echo $_POST["km"]." "; ?>kilometri </h3>
corrispondono a
<h3>
<?php
/** il valore dei km e' ricevuto
* come parametro dalla pagina HTML
* 1 miglio = 1,609344 kilometri
*/
$miglia = $_POST["km"] /1.6093;
echo ($miglia). " ";
?>
Miglia
</h3>
</body>
</html>

Quando l’utente fa clic sul pulsante di nome invia, la pagina chiama l’esecuzione di se stessa ed esegue la visualizzazione. Di fatto la pagina viene caricata due volte: la prima volta deve solo acquisire il dato dell’utente; se invece il caricamento della pagina è avvenuto sulla base della richiesta dell’utente che ha fatto clic sul pulsante di nome invia, viene eseguito lo script per la visualizzazione dei risultati del calcolo. La distinzione tra il primo e il secondo caricamento è realizzata dalla struttura if che controlla, con la funzione predefinita isset, se alla variabile $POST[“invia”] è stato assegnato un valore.
La funzione isset
In generale, la funzione predefinita isset del linguaggio PHP controlla se a una $variabile è stato assegnato un valore oppure no. La funzione isset restituisce true se alla variabiel è stato assegnato un valore, mentre restituisce false se alla variabile non è mai stato assegnato un valore, oppure ha il valore null.
L’accesso ai database MySQL
Mostriamo come i due ambienti PHP e MySQL possano interagire nella costruzione di pagine Web per l’accesso ai database in rete. PHP è un linguaggio di scripting che estende le funzionalità del Web server, mentre MySQL è un programma server che si occupa della gestione di basi di dati. In un sito Web dinamico i dati risiedono in un database sul server gestito da MySQL e, ogni volta che un utente ne fa richiesta, questi dati vengono recuperati e mostrati nelle pagine Web realizzate sul server tramite i marcatori del linguaggio HTML e inviate al browser dell’utente client. Le due parti dell’applicazione Web, lato servere lato client, si collegano usando gli script in linguaggio PHP che svolgono i seguenti compiti:
- connessione al database MySQL, invio dei comandi SQL e acquisizione delle risposte;
- scrittura dei dati ricevuti dal database all’interno di pagine Web in formato HTML, in modo che siano interpretate dal browser dell’utente.
La figura sotto rappresenta la situazione che si verifica quando un utente richiede una pagina Web lato server:

- il browser Web effettua una richiesta di una pagina Web in formato PHP;
- il server Web riconosce che la richiesta fa riferimento a un fi le con estensione .php e quindi attiva l’interprete PHP per eseguire gli script in esso contenuti;
- lo script PHP contiene i comandi per collegarsi al database MySQL e inviare le richieste tramite i comandi in SQL;
- il server MySQL risponde restituendo i dati richiesti;
- lo script PHP scrive questi dati all’interno di una pagina Web e la restituisce al server Web;
- il server Web invia al browser dell’utente la pagina in formato HTML, generata in modo dinamico dallo script PHP.
Connessione ai Database
Esistono tre metodi per connettersi ai database attraverso script PHP. La differenza è nell’approccio usato:
mysqli_connect()
(Stile Procedurale)
mysqli_connect() è una funzione usata per connettersi a un database MySQL in stile procedurale. Restituisce un oggetto di connessione o false
in caso di errore.
<?php
//approccio procedurale
$servername = "localhost";
$username = "root";
$password = "";
$database = "test";
$conn = mysqli_connect($servername, $username, $password, $database);
if (!$conn) {
die("Connessione fallita: " . mysqli_connect_error());
} else {
echo "Connessione riuscita con approccio procedurale!";
}
?>

mysqli
(Stile orientato agli oggetti)
mysqli è una classe che permette di gestire la connessione e l’interazione con il database in stile OOP (Object-Oriented Programming). Si usa creando un’istanza della classe mysqli
.
<?php
//connessione con approccio orientata agli oggetti
$servername = "localhost";
$username = "root";
$password = "";
$database = "test";
$conn = new mysqli($servername, $username, $password, $database);
if ($conn->connect_error) {
die("Connessione fallita: " . $conn->connect_error);
} else {
echo "Connessione riuscita con approccio orientato agli oggetti!";
}
?>

PDO
(Stile orientato agli oggetti)
L’approccio PDO (PHP Data Objects) è un’alternativa a MySQLi per interagire con diversi database in PHP. E’ più flessibile e sicuro.
<?php
// connessione con PDO
$servername = "localhost";
$username = "root";
$password = "";
$database = "test";
try {
$conn = new PDO("mysql:host=$servername;dbname=$database", $username, $password);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
echo "Connessione riuscita con PDO!";
} catch (PDOException $e) {
die("Connessione fallita: " . $e->getMessage());
}
?>

Commentiamo ora gli script:
La funzione die()
in PHP serve per terminare immediatamente lo script e, opzionalmente, stampare un messaggio di errore.
exit()
Termina lo script (senza messaggio o con un codice di stato)
La freccia (->
) in PHP viene utilizzata per accedere alle proprietà e ai metodi di un oggetto.
-
->
: Usato per accedere a proprietà/metodi di un’istanza (es.$conn->query()
). -
::
: Usato per accedere a metodi/proprietà statiche di una classe (es.Classe::metodo()
).
$conn
diventa un oggetto della classe mysqli
$conn->connect_error
, la freccia sta accedendo alla proprietà connect_error
dell’oggetto $conn
, che è un’istanza della classe mysqli.
$conn
diventa un oggetto della classe mysqli
. Se la connessione fallisce, MySQLi imposta la proprietà connect_error
con il messaggio di errore.
-
$conn->setAttribute(...)
→ Imposta un’opzione sulla connessione PDO. -
PDO::ATTR_ERRMODE
→ Definisce la modalità di gestione degli errori. -
PDO::ERRMODE_EXCEPTION
→ Fa sì che gli errori del database generino eccezioni (Exception
).
Se non si imposta questa opzione, PDO non genera errori visibili e può essere difficile individuare problemi nel codice.
Scelta consigliata:
PDO per progetti scalabili e sicuri.
MySQLi OOP se lavori solo con MySQL e preferisci OOP.
MySQLi Procedurale è meno flessibile, meglio evitarlo.
Per testare il codice occorre creare il database “test”:
- far partire MySQL dal pannello XAMPP
- cliccare su ADMIN in corrispondenza di MYSQL
- Nel pannello di PHPmyAdmin cliccare su SQL e scrivere il codice CREATE DATABASE test;
- cliccare ESEGUI
Viene creato così il database “test”
Nella sezione DOWNLOAD o direttamente da qui: https://profgiagnotti.it/download/4860/?tmstv=1744539632 è possibile scaricare gli script descritti nell’articolo
Lascia un commento