PHP e MySQL
In questo corso costruiamo, un pezzo alla volta, un'applicazione web completa: il gestionale della biblioteca scolastica, con catalogo, ricerca, prestiti, statistiche e un'area riservata per il bibliotecario.
Il corso ha tre parti:
- Database e SQL (lezioni 1–6): si progetta il database con il modello E/R, lo si traduce in tabelle e si impara SQL da zero, fino alle JOIN e ai raggruppamenti.
- PHP (lezioni 7–9): il linguaggio, le pagine dinamiche e i form, con un occhio alla sicurezza fin dall'inizio.
- PHP con MySQL (lezioni 10–16): connessione con mysqli nello stile a funzioni (con il confronto a oggetti e con PDO), query preparate contro la SQL injection, CRUD, login con password sicure, il progetto finale e una traccia d'esame svolta.
Per allenarsi con SQL: la lezione 17 raccoglie otto esercitazioni in difficoltà crescente (crea il database, inserisci i dati, scrivi le query), con i risultati attesi per controllarsi. La lezione 18 fa lo stesso con PHP: tre esercitazioni su PHP da solo e cinque applicazioni web sugli stessi database, ognuna con la sua lista di prove.
È lo stesso tipo di applicazione richiesto nella seconda prova dell'Esame di Stato di Informatica: progetto del database, query SQL e pagine web che le usano.
Cosa vi serve: XAMPP con PHP 8 (lezione 1), Visual Studio Code e un browser. Il database del corso si scarica nella prima lezione.
Per ripassare: il quiz «PHP e MySQL», 38 domande dalla progettazione alla sicurezza, anche su mysqli e PDO, in stile «Chi vuol prendere 10».
- 1 Database, DBMS e XAMPP Che cos'è un database e perché serve, il modello relazionale, come lavora un sito dinamico e come si installa XAMPP con phpMyAdmin.
- 2 Il modello Entità/Relazioni Progettare un database prima di crearlo: entità, attributi, identificatori, associazioni e cardinalità, con il diagramma E/R della biblioteca.
- 3 Dal modello E/R alle tabelle Lo schema logico: tabelle, chiavi primarie ed esterne, le regole per tradurre le associazioni 1:1, 1:N e N:M, e la normalizzazione fino alla terza forma normale.
- 4 SQL: creare le tabelle (DDL) CREATE DATABASE e CREATE TABLE, i tipi di dato di MySQL, i vincoli (PRIMARY KEY, NOT NULL, UNIQUE, DEFAULT, CHECK, FOREIGN KEY), ALTER TABLE e DROP.
- 5 SQL: inserire, modificare e interrogare i dati (DML) INSERT, UPDATE e DELETE per cambiare i dati; SELECT con WHERE, operatori, LIKE, IN, BETWEEN, IS NULL, ORDER BY, LIMIT e colonne calcolate per interrogarli.
- 6 Query avanzate: JOIN, raggruppamenti e sottoquery Unire più tabelle con INNER JOIN e LEFT JOIN, contare e sommare con le funzioni di aggregazione, raggruppare con GROUP BY e filtrare i gruppi con HAVING, usare le sottoquery.
- 7 PHP: primi passi Il primo script PHP, come PHP si mescola all'HTML, echo, variabili, tipi di dato, stringhe, operatori e come leggere gli errori.
- 8 PHP: condizioni, cicli, array e funzioni if, match e i cicli; array indicizzati e associativi, gli array di righe (come quelli che arrivano dal database) e foreach; funzioni con i tipi; include e require per dividere il sito in pezzi.
- 9 I form: GET, POST e validazione Ricevere i dati dei form con $_GET e $_POST, validarli lato server, ripresentare il form con gli errori, difendersi dal Cross-Site Scripting con htmlspecialchars e usare lo schema Post/Redirect/Get.
- 10 PHP e MySQL: la connessione con mysqli Collegarsi a MySQL con mysqli nello stile a funzioni, eseguire una SELECT e mostrarne il risultato in una tabella HTML; mysqli_fetch_all, mysqli_fetch_assoc e i conteggi; gestire gli errori; lo stesso a oggetti e con PDO.
- 11 Query preparate e SQL injection Come funziona l'attacco SQL injection, perché le query preparate lo rendono impossibile, mysqli_prepare e mysqli_stmt_bind_param, LIKE, LIMIT, NULL, ordinamenti con la lista bianca; lo stesso a oggetti e con PDO.
- 12 CRUD: inserire, modificare e cancellare dal sito Le quattro operazioni di ogni applicazione gestionale con PHP e mysqli: la scheda di un record, un unico form per inserire e modificare, la cancellazione con POST, i messaggi dopo il redirect e la gestione dei vincoli del database.
- 13 Sessioni, login e sicurezza Ricordare un visitatore tra una pagina e l'altra con le sessioni, salvare le password con password_hash, il login e il logout, le pagine riservate, i ruoli e la protezione dagli attacchi CSRF.
- 14 Ricerca, paginazione, prestiti e statistiche Il catalogo completo con ricerca, filtri e pagine numerate costruiti in sicurezza; la gestione dei prestiti con JOIN su tre tabelle e controlli lato server; la pagina delle statistiche con GROUP BY.
- 15 Progetto finale Completare l'applicazione della biblioteca oppure realizzarne una su un tema a scelta: i passi del lavoro, cosa consegnare, i requisiti minimi, le estensioni e la griglia di valutazione.
- 16 Verso l'Esame di Stato: una traccia svolta Una traccia in stile seconda prova di Informatica (bike sharing cittadino) svolta passo per passo: analisi, modello E/R, schema logico, SQL, pagine PHP con query preparate, transazioni e quesiti della seconda parte.
- 17 Esercitazioni SQL: crea e interroga un database Otto esercitazioni in difficoltà crescente per allenarsi con SQL: dalla rubrica con una sola tabella alla mini-traccia d'esame del cinema multisala. Per ognuna si creano le tabelle, si inseriscono i dati e si scrivono le query, con i risultati attesi per controllarsi.
- 18 Esercitazioni PHP: dalle pagine dinamiche alle applicazioni con il database Otto esercitazioni in difficoltà crescente per allenarsi con PHP: tre su PHP da solo (array, form, funzioni) e cinque su PHP con MySQL, sugli stessi database delle esercitazioni SQL. Ognuna ha una lista di prove per controllare il proprio lavoro.