PHP e HTML
Due ruoli diversi
Sezione intitolata “Due ruoli diversi”HTML descrive la pagina. PHP prepara i dati e le parti dinamiche.
<?php$titolo = "Benvenuto";?>
<h1><?php echo $titolo; ?></h1>PHP calcola il valore e HTML lo mostra.
Echo dentro HTML
Sezione intitolata “Echo dentro HTML”Per stampare un valore puoi usare echo.
<?php$nome = "Luca";?>
<p>Ciao, <?php echo $nome; ?>!</p>Esiste anche una forma breve:
<p>Ciao, <?= $nome ?>!</p><?= $nome ?> significa “stampa questo valore”.
Separare logica e markup
Sezione intitolata “Separare logica e markup”Prepara i dati prima dell’HTML.
<?php$utente = [ "nome" => "Sara", "ruolo" => "amministratrice",];?>
<h1><?= $utente["nome"] ?></h1><p>Ruolo: <?= $utente["ruolo"] ?></p>Così la pagina è più leggibile: prima organizzi i dati, poi li mostri.
Scorrere dati in una pagina
Sezione intitolata “Scorrere dati in una pagina”<?php$prodotti = ["Penna", "Quaderno", "Zaino"];?>
<ul> <?php foreach ($prodotti as $prodotto): ?> <li><?= $prodotto ?></li> <?php endforeach; ?></ul>La sintassi con endforeach è comoda nei template HTML perché evita molte parentesi graffe.
Proteggere il testo
Sezione intitolata “Proteggere il testo”Quando stampi dati che arrivano da utenti, usa htmlspecialchars.
<p><?= htmlspecialchars($nome, ENT_QUOTES, 'UTF-8') ?></p>È una piccola abitudine che evita molti problemi di sicurezza.
Alternare PHP e HTML senza confusione
Sezione intitolata “Alternare PHP e HTML senza confusione”In una pagina mista, ragiona in due fasi:
- PHP prepara i dati
- HTML mostra i dati
<?php$titolo = "Catalogo";$numeroProdotti = 3;?>
<h1><?= htmlspecialchars($titolo, ENT_QUOTES, 'UTF-8') ?></h1><p>Prodotti disponibili: <?= $numeroProdotti ?></p>Questo ordine evita di inserire calcoli lunghi in mezzo al markup.
Condizioni dentro una pagina
Sezione intitolata “Condizioni dentro una pagina”Puoi mostrare HTML diverso in base a una condizione.
<?php$utenteLoggato = false;?>
<?php if ($utenteLoggato): ?> <p>Benvenuto nella tua area personale.</p><?php else: ?> <p>Accedi per continuare.</p><?php endif; ?>Questa forma è leggibile nei template perché separa il codice PHP dai blocchi HTML.
Errore comune: fare troppa logica nel template
Sezione intitolata “Errore comune: fare troppa logica nel template”Se dentro l’HTML accumuli calcoli, query al database o controlli lunghi, la pagina diventa difficile da mantenere. Prepara prima i dati in PHP e usa il template solo per mostrarli.