Home
Come e perché creare siti dinamici basati su PHP e MySQL

14 Aprile 2022

Come e perché creare siti dinamici basati su PHP e MySQL

di

Ci sono siti che devono solo mostrare contenuti e altri che devono attingere alle informazioni presenti in una o più basi di dati, pubblicarle, aggiornarle, integrarle. Con i giusti linguaggi di interrogazione e programmazione, è possibile creare in modo semplice meccanismi di gestione anche elaborati.

Siti web statici o dinamici

Quando un sito viene creato utilizzando solo codice HTML e CSS, ogni visitatore vede lo stesso contenuto, perché a tutti vengono inviati gli stessi file HTML e CSS.

  1. Quando il browser richiede una pagina creata utilizzando file HTML e CSS, la richiesta viene inviata al server web che ospita il sito.
  2. Il server web trova il file HTML richiesto dal browser e glielo invia. Può anche inviare del codice CSS per definire lo stile della pagina, dei media (come le immagini), del codice JavaScript e altri file utilizzati dalla pagina.

Poiché a tutti i visitatori vengono inviati gli stessi file HTML, vedranno tutti lo stesso contenuto. Pertanto, questo tipo di sito è noto come sito web statico.

Coloro che gestiscono siti web statici devono conoscere i linguaggi HTML e CSS. Se i proprietari vogliono aggiornare il testo di una pagina, il codice HTML deve essere aggiornato manualmente e ricaricato sul server web.

Schema di come il browser naviga in un sito statico

Schema di come il browser naviga in un sito statico.

Il codice PHP non viene inviato al browser web, ma viene utilizzato per creare una pagina HTML la quale viene poi mandata al browser. Poiché il codice PHP viene eseguito sul server web, si parla di programmazione lato server.

PHP può essere utilizzato per creare pagine HTML su misura o personalizzate per ogni singolo visitatore. Ciò può includere la visualizzazione del nome del visitatore, degli argomenti cui è interessato o dei post dei suoi amici.

Per realizzare un sito statico, è sufficiente conoscere HTML e CSS, che ho trattato nel mio libro omonimo.

PHP: il linguaggio e l’interprete

L’interprete PHP è un software che viene eseguito sul server web. Possiamo dirgli cosa fare usando codice scritto in linguaggio PHP.

Il software è ciò che ci permette di utilizzare un computer per fargli eseguire determinate attività senza sapere esattamente come le eseguirà. Alcuni esempi.

  • I programmi di posta elettronica consentono di inviare e ricevere mail senza sapere come i computer le accettano e trasmettono.
  • Photoshop consente di modificare le immagini senza conoscere come il computer le manipola.

Ogni volta che utilizziamo un software, questo è in grado di eseguire le stesse attività, ma può eseguirle con dati diversi.

  • Un programma di posta elettronica può essere utilizzato per creare, inviare, ricevere e archiviare messaggi, ma il contenuto e il destinatario di ogni messaggio possono essere diversi.
  • Photoshop può applicare un filtro, ridimensionare o ritagliare un’immagine, e questo con qualsiasi immagine.

Entrambi questi software, per svolgere queste attività, hanno un’interfaccia grafica con cui l’utente può interagire.

Anche l’interprete PHP è un software, ed è parte di un server web. Ma, invece di usare un’interfaccia utente grafica, si può dire all’interprete PHP cosa deve svolgere usando del codice scritto nel linguaggio di programmazione PHP.

Quando si crea una pagina web usando il linguaggio PHP, questo eseguirà sempre le stesse attività utilizzando, ogni volta che viene richiesta la pagina, dati diversi. Per esempio, un sito scritto utilizzando PHP potrebbe avere:

  • una pagina di accesso, che ogni utente utilizza per accedere al sito, anche se l’indirizzo e-mail e la password utilizzati per accedere sono diversi;
  • una pagina dell’account, che ogni utente può utilizzare per visualizzare i dettagli del proprio account; anche se centinaia di persone utilizzano contemporaneamente la pagina, vedranno solo le proprie informazioni.

Ciò è possibile perché le istruzioni necessarie per eseguire queste attività sono sempre le stesse per ogni utente, ma i dati che ognuno fornisce o visualizza possono essere diversi.

Leggi anche: PHP e MySQL: la programmazione lato server spiegata in modo facile, di Jon Duckett

Esecuzione di un compito con dati diversi

I linguaggi di programmazione consentono di creare regole che indicano a un computer come svolgere un’attività. I dati utilizzati dal programma possono essere diversi ogni volta che l’attività viene eseguita.

Quando si usa un linguaggio di programmazione, bisogna dare al computer istruzioni precise, dicendogli esattamente che cosa deve fare. Queste istruzioni sono molto diverse da quelle che si potrebbero dare a una persona affinché esegua un compito.

Immaginiamo di voler acquistare cinque barrette di cioccolato e di doverne calcolare il prezzo totale. Per calcolarlo, moltiplichiamo il prezzo di una singola barretta per il numero di barrette che desideriamo acquistare. Potremmo esprimere questa regola nel modo seguente:

totale = prezzo x quantità

Ecco alcuni esempi di calcolo del costo totale delle caramelle.

  • Se una barretta di cioccolato costa $1 e ne acquistiamo 5, il totale è $5.
  • Se il prezzo di una singola barretta fosse $1,50, la regola è la stessa, ma il totale sarebbe $7,50.
  • Volendo acquistare 10 barrette a $2 ciascuna, la regola è la stessa, ma il totale sarebbe $20.

I valori utilizzati al posto delle parole totale, prezzo e quantità possono cambiare, ma la regola utilizzata per calcolare il costo totale delle caramelle resta la stessa.

Quando si usa codice PHP per creare una pagina web, occorre prima comprendere:

  • il compito che vogliamo ottenere;
  • i dati, che possono cambiare ogni volta che viene eseguita un’attività.

Quindi possiamo fornire all’interprete PHP istruzioni dettagliate su come eseguire l’attività e utilizzate i nomi per rappresentare i valori che possono cambiare. Se abbiamo detto all’interprete PHP che:

prezzo = 3 quantità = 5

potremo usare la regola:

totale = prezzo x quantità

La parola totale rappresenterebbe un valore di 15. La volta successiva che eseguiremo la pagina, potremo dare a prezzo o quantità valori diversi e potremo calcolare il nuovo totale usando la stessa regola.

I programmatori chiamano le parole che rappresentano valori col nome di variabili, perché il valore che rappresentano può variare a ogni esecuzione del programma.

Che cos’è una pagina PHP

Spesso una pagina PHP contiene una combinazione di codice HTML e PHP. Può essere utilizzata per inviare una pagina HTML al browser.

Sotto, a sinistra, si può vedere una pagina PHP che contiene un mix di codice HTML e PHP:

  • il codice HTML è in blu;
  • il codice PHP è in viola.

Quando l’interprete PHP apre il file, questo:

copia tutto il codice HTML direttamente in un file HTML temporaneo che crea per quell’utente;
poi segue qualsiasi istruzione scritta in codice PHP (che spesso genera contenuti per la pagina HTML).

Il codice PHP che segue determina l’anno corrente e lo scrive all’interno dei tag di apertura <p> e chiusura </p>.

Il codice PHP può eseguire attività semplici, come operazioni aritmetiche o ottenere la data corrente, o più complesse, come utilizzare le informazioni inviate tramite un modulo HTML per aggiornare i dati archiviati in un database.

Quando l’interprete PHP ha terminato l’elaborazione del file PHP, invia al browser la pagina HTML temporanea creata per quell’utente, quindi elimina la pagina HTML temporanea.

Sotto, a destra, si può vedere la pagina HTML che verrebbe inviata al browser una volta che l’interprete PHP avrà eseguito il codice PHP.

L’interprete PHP ha determinato l’anno in corso e lo ha visualizzato nella pagina HTML che ha creato.

L'interprete PHP determina l'anno corrente e lo scrive all'interno dei tag di paragrafo

L'interprete PHP determina l'anno corrente e lo scrive all'interno dei tag di paragrafo.

Di solito ogni pagina esegue la stessa attività a ogni richiesta, ma può funzionare con informazioni diverse per ogni utente del sito.

Un sito web PHP è costituito da un insieme di pagine PHP e ogni pagina svolge un’attività specifica. Per esempio, un sito che consente l’accesso agli iscritti potrebbe avere:

  • una pagina di accesso — per consentire agli iscritti l’accesso al sito;
  • una pagina del profilo — per consentire agli iscritti di visualizzare il proprio profilo.

Ogni volta che viene richiesta una di queste pagine, deve essere in grado di elaborare dati specifici del componente corrente. Pertanto, la pagina deve:

  • contenere istruzioni su come completare l’attività che la pagina dovrebbe svolgere;
  • assegnare un nome a ogni dato che potrebbe cambiare ogni volta che viene richiesta la pagina.

In PHP, le variabili usano un nome per rappresentare un valore che può cambiare ogni volta che viene richiesta la pagina.

Il codice PHP può dire all’interprete PHP:

  • quale nome di variabile usare per un dato che può cambiare ogni volta che viene richiesta la pagina;
  • quale valore usare a questa richiesta di pagina.

Una volta che la pagina HTML è stata inviata all’utente, l’interprete PHP dimentica tutti i valori memorizzati nelle variabili, quindi può eseguire la stessa operazione (ma con valori diversi) per la persona successiva che richiede la pagina.

L'interprete PHP ottiene il valore memorizzato nella variabile $username e lo scrive all'interno dei tag di paragrafo

L'interprete PHP ottiene il valore memorizzato nella variabile $username e lo scrive all'interno dei tag di paragrafo.

Per archiviare i dati più a lungo, basta memorizzarli in un database, per esempio MySQL.

Che cos’è MySQL

MySQL è un tipo di database. I database archiviano i dati in modo strutturato, in modo da potervi accedere facilmente e aggiornare le informazioni in essi contenute.

I fogli di lavoro come Excel memorizzano le informazioni in una griglia di colonne e righe. I programmi possono quindi utilizzare tali dati per eseguire calcoli o manipolarli utilizzando formule.

MySQL è un software che memorizza le informazioni in modo simile; in tabelle composte da colonne e righe. È possibile utilizzare PHP per accedere e aggiornare le informazioni memorizzate nel database.

Un database può contenere più tabelle. Ogni tabella di solito contiene un tipo di dati che il sito deve memorizzare. Di seguito sono riportati due esempi di tabelle di database che contengono:

  • gli iscritti (o utenti) di un sito;
  • gli articoli visualizzati dal sito.

All’interno di ogni tabella, i nomi delle colonne descrivono il tipo di informazioni che ciascuna colonna della tabella contiene:

  • la tabella member memorizza il nome, il cognome, l’indirizzo e-mail, la password, la data di iscrizione e l’immagine del profilo di ciascun iscritto;
  • La tabella article memorizza il titolo, il riepilogo, il contenuto, la data di creazione di ciascun articolo e alcuni valori discussi nella pagina a destra.

Ogni riga contiene i dati descrittivi di un oggetto rappresentato nella tabella:

  • tabella member – ogni riga rappresenta un iscritto;
  • tabella article – ogni riga contiene un articolo.

Le tabelle Member e Article

Le tabelle Member e Article

Usando PHP, possiamo svolgere le seguenti operazioni.

  • Trarre dati dal database e visualizzare queste informazioni in una pagina web.
  • Aggiungere nuove righe di dati. Per creare un nuovo articolo, aggiungiamo una riga alla tabella article e forniamo i dati che devono essere archiviati in ciascuna colonna.
  • Cancellare righe di dati. Per eliminare un articolo, rimuoviamo l’intera riga che rappresenta l’articolo.
  • Modificare i dati di una riga. Per aggiornare l’indirizzo email di un iscritto, dobbiamo trovare la riga della tabella member che lo rappresenta, quindi aggiornare il valore nella colonna email.

Notiamo come entrambe le tabelle inizino con una colonna id. Ogni riga della tabella ha, in questa colonna, un valore univoco (che inizia da 1 e per ogni riga viene incrementato di 1). I valori nella colonna id consentono di indicare al database con quale riga di dati si desidera lavorare. Per esempio, potreste volere l’iscritto il cui id è 2 o l’articolo in cui id è 1.

MySQL è un database relazionale perché conserva le relazioni tra i tipi di dati archiviati nelle diverse tabelle. Nelle tabelle sottostanti, per esempio, gli articoli sono stati inseriti da diversi utenti iscritti al sito. Nella tabella article, il valore nella colonna member_id dice quale utente ha inserito l’articolo perché contiene un numero che corrisponde a uno dei valori nella colonna id della tabella member.

L’articolo con id 1 è stato inserito dall’iscritto il cui id è 2 (Luke Wood). Gli articoli 2 e 3 sono stati inseriti dall’utente con id 1 (Ivy Stone).

Queste relazioni:

  • strutturano i dati, assicurando che ogni tabella contenga solo un particolare tipo di dati (iscritto o articolo);
  • evitano al database di memorizzare gli stessi dati in più tabelle (con un risparmio di spazio nel database);
  • semplifica l’aggiornamento dei dati. Se un iscritto cambia nome, deve essere aggiornato solo nella tabella member (non in ogni articolo che ha inserito).

Relazione tra elementi di tabelle diverse

Relazione tra elementi di tabelle diverse.

Questo articolo riprende contenuti da PHP & MySQL.

Immagine di apertura di Hal Gatewood su Unsplash.

L'autore

  • Jon Duckett
    Jon Duckett progetta e sviluppa siti web da oltre 20 anni. Ha lavorato a progetti di startup come di grandi aziende e brand internazionali ed è autore di una dozzina di libri sul web design. HTML & CSS e JavaScript & jQuery sono i suoi best seller assoluti e sono stati tradotti in 13 lingue con oltre 800.000 copie vendute nella sola edizione inglese.

Iscriviti alla newsletter

Novità, promozioni e approfondimenti per imparare sempre qualcosa di nuovo

Gli argomenti che mi interessano:
Iscrivendomi dichiaro di aver preso visione dell’Informativa fornita ai sensi dell'art. 13 e 14 del Regolamento Europeo EU 679/2016.

Libri che potrebbero interessarti

Tutti i libri

HTML & CSS

Progettare e costruire siti web

37,91

39,90€ -5%

di Jon Duckett

JavaScript & jQuery

Sviluppare interfacce web interattive

37,91

39,90€ -5%

di Jon Duckett

PHP & MySQL

Sviluppare applicazioni web lato server

37,91

39,90€ -5%

di Jon Duckett