Scrivere Script PHP: Una Guida Dettagliata Passo Passo
PHP, acronimo di Hypertext Preprocessor, è uno dei linguaggi di scripting lato server più popolari e versatili. La sua flessibilità e la sua vasta comunità di supporto lo rendono la scelta ideale per sviluppare applicazioni web dinamiche, siti e servizi online. In questo articolo, ti guideremo attraverso i passi fondamentali per iniziare a scrivere script PHP, fornendoti una base solida per la tua avventura nello sviluppo web.
Prerequisiti
Prima di immergerci nella scrittura di script PHP, assicuriamoci di avere gli strumenti necessari:
- Un ambiente di sviluppo PHP: Puoi scegliere tra diverse opzioni, come XAMPP, WAMP, MAMP (per macOS) o Docker. Questi pacchetti includono Apache o Nginx (server web), PHP e un database (come MySQL o MariaDB).
- Un editor di codice: Raccomandiamo Visual Studio Code, Sublime Text, Atom o PHPStorm, che offrono funzionalità utili come l’evidenziazione della sintassi, il completamento del codice e strumenti di debug.
- Una conoscenza di base di HTML: Anche se PHP è un linguaggio lato server, è spesso usato in combinazione con HTML per generare pagine web dinamiche. Una familiarità con HTML ti aiuterà a comprendere meglio il flusso di sviluppo.
- Un po’ di pazienza e curiosità: Imparare un nuovo linguaggio richiede tempo e pratica. Sii paziente con te stesso e non aver paura di sperimentare!
Struttura Base di uno Script PHP
Un file PHP ha tipicamente l’estensione .php
. Il codice PHP è racchiuso tra i tag <?php
e ?>
. Tutto ciò che si trova al di fuori di questi tag verrà interpretato come HTML e inviato direttamente al browser. Ecco un esempio di script PHP molto semplice:
<?php
echo "Ciao mondo!";
?>
In questo esempio, la parola chiave echo
è usata per visualizzare il testo “Ciao mondo!” nel browser. Analizziamo più nel dettaglio:
<?php
: Indica l’inizio del blocco di codice PHP.echo
: È un’istruzione PHP utilizzata per stampare output."Ciao mondo!"
: È una stringa di testo che verrà visualizzata.;
: Il punto e virgola indica la fine di un’istruzione PHP.?>
: Indica la fine del blocco di codice PHP.
Variabili in PHP
Le variabili sono contenitori utilizzati per memorizzare dati. In PHP, le variabili iniziano sempre con il simbolo $
, seguito dal nome della variabile. I tipi di dati comuni in PHP includono:
- Stringhe: Sequenze di caratteri, racchiuse tra virgolette singole o doppie.
- Interi: Numeri interi (senza parte decimale).
- Float: Numeri con parte decimale.
- Booleani: Valori logici (
true
ofalse
). - Array: Raccolte ordinate di valori.
- Oggetti: Istanze di classi.
Ecco alcuni esempi di dichiarazione e assegnazione di variabili:
<?php
$nome = "Mario"; // Stringa
$eta = 30; // Intero
$altezza = 1.75; // Float
$is_admin = true; // Booleano
echo "Nome: " . $nome . "
"; // Concatenazione di stringhe
echo "Età: " . $eta . "
";
echo "Altezza: " . $altezza . "
";
echo "Amministratore: " . ($is_admin ? "Sì" : "No") . "
"; // Operatore ternario
$array_di_numeri = [1,2,3,4,5]; //Array di interi
echo "Primo numero dell'array: " . $array_di_numeri[0] . "
";
?>
Operatori in PHP
Gli operatori consentono di eseguire operazioni sulle variabili. Alcuni operatori comuni includono:
- Operatori aritmetici:
+
(addizione),-
(sottrazione),*
(moltiplicazione),/
(divisione),%
(modulo). - Operatori di assegnazione:
=
(assegnazione),+=
(addizione e assegnazione),-=
(sottrazione e assegnazione),*=
(moltiplicazione e assegnazione),/=
(divisione e assegnazione). - Operatori di confronto:
==
(uguale a),!=
(diverso da),>
(maggiore di),<
(minore di),>=
(maggiore o uguale a),<=
(minore o uguale a). - Operatori logici:
&&
(AND),||
(OR),!
(NOT).
Ecco alcuni esempi di utilizzo degli operatori:
<?php
$a = 10;
$b = 5;
$somma = $a + $b;
$differenza = $a - $b;
$prodotto = $a * $b;
$divisione = $a / $b;
$modulo = $a % $b;
echo "Somma: " . $somma . "
";
echo "Differenza: " . $differenza . "
";
echo "Prodotto: " . $prodotto . "
";
echo "Divisione: " . $divisione . "
";
echo "Modulo: " . $modulo . "
";
$a += 5; //Equivale a $a = $a + 5;
echo "Nuovo valore di a: " . $a . "
";
$x = 10;
$y = 20;
$z = 10;
var_dump($x == $y); //false
echo "
";
var_dump($x != $y); //true
echo "
";
var_dump($x == $z); //true
echo "
";
$condizione1 = true;
$condizione2 = false;
var_dump($condizione1 && $condizione2); // false
echo "
";
var_dump($condizione1 || $condizione2); //true
echo "
";
var_dump(!$condizione1); //false
?>
Strutture di Controllo
Le strutture di controllo permettono di modificare il flusso di esecuzione del codice in base a determinate condizioni. Le principali strutture di controllo includono:
if
,else
,elseif
: Permettono di eseguire blocchi di codice diversi in base a una condizione.switch
: Permette di selezionare un blocco di codice da eseguire in base al valore di una variabile.while
: Esegue un blocco di codice ripetutamente finché una condizione è vera.do...while
: Esegue un blocco di codice almeno una volta, e poi continua a eseguirlo finché una condizione è vera.for
: Esegue un blocco di codice un numero specificato di volte.foreach
: Esegue un blocco di codice per ogni elemento di un array.
Ecco alcuni esempi:
<?php
$eta = 20;
if ($eta >= 18) {
echo "Sei maggiorenne
";
} else {
echo "Sei minorenne
";
}
$giorno_settimana = "Mercoledi";
switch ($giorno_settimana) {
case "Lunedi":
echo "Inizio della settimana
";
break;
case "Martedi":
case "Mercoledi":
echo "Metà della settimana
";
break;
case "Giovedi":
case "Venerdi":
echo "Quasi fine settimana
";
break;
case "Sabato":
case "Domenica":
echo "Fine settimana
";
break;
default:
echo "Giorno non valido
";
}
$i = 0;
while ($i < 5) {
echo "Il valore di i è: " . $i . "
";
$i++;
}
$j = 0;
do{
echo "Il valore di j è: " . $j . "
";
$j++;
} while($j < 5);
for ($k = 0; $k < 5; $k++) {
echo "Il valore di k è: " . $k . "
";
}
$colori = array("rosso", "verde", "blu");
foreach ($colori as $colore) {
echo "Colore: " . $colore . "
";
}
$persona = [
"nome" => "Giovanni",
"cognome" => "Rossi",
"eta" => 25
];
foreach($persona as $key => $value){
echo "$key = $value
";
}
?>
Funzioni in PHP
Le funzioni sono blocchi di codice riutilizzabili che eseguono un compito specifico. Permettono di organizzare il codice in modo modulare e di evitare la duplicazione di codice. Una funzione è definita usando la parola chiave function
, seguita dal nome della funzione, i parametri (se ce ne sono) tra parentesi e il corpo della funzione racchiuso tra parentesi graffe.
Ecco un esempio:
<?php
function saluta($nome) {
echo "Ciao, " . $nome . "!
";
}
saluta("Alice"); // Chiamata alla funzione
saluta("Bob");
function somma($a, $b){
return $a + $b;
}
$risultato = somma(5, 10);
echo "Risultato somma: " . $risultato . "
";
?>
Interazione con i Form HTML
PHP è spesso usato per gestire i dati provenienti dai form HTML. I dati inviati tramite un form possono essere recuperati usando le variabili superglobali $_GET
(per i form inviati con il metodo GET) o $_POST
(per i form inviati con il metodo POST). È importante sanitizzare i dati ricevuti per prevenire attacchi di sicurezza come l’SQL injection o l’XSS.
Ecco un semplice esempio di come gestire un form HTML in PHP:
form.html
<!DOCTYPE html>
<html>
<head>
<title>Form di esempio</title>
</head>
<body>
<form action="processa_form.php" method="post">
<label for="nome">Nome:</label><br>
<input type="text" name="nome" id="nome"><br>
<label for="email">Email:</label><br>
<input type="email" name="email" id="email"><br>
<input type="submit" value="Invia">
</form>
</body>
</html>
processa_form.php
<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$nome = htmlspecialchars($_POST["nome"]);
$email = filter_var($_POST["email"], FILTER_SANITIZE_EMAIL);
if (filter_var($email, FILTER_VALIDATE_EMAIL)) {
echo "Nome: " . $nome . "
";
echo "Email: " . $email . "
";
//Qui si potrebbe inserire del codice per salvare i dati nel database.
} else {
echo "Email non valida.";
}
} else {
echo "Il form deve essere inviato con il metodo POST";
}
?>
In questo esempio, htmlspecialchars()
viene usato per prevenire attacchi XSS, e filter_var()
con il filtro FILTER_SANITIZE_EMAIL
viene usato per sanitizzare l’email e FILTER_VALIDATE_EMAIL
per validare l’email.
Connessione al Database
PHP può essere utilizzato per interagire con database come MySQL, MariaDB, PostgreSQL e altri. Per connettersi a un database, in genere si utilizza l’estensione PDO (PHP Data Objects) che offre un’interfaccia più moderna e sicura rispetto all’estensione mysql. Ecco un esempio di connessione a un database MySQL e l’esecuzione di una query:
<?php
$servername = "localhost";
$username = "tuo_utente";
$password = "tua_password";
$dbname = "tuo_database";
try {
$conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
// set the PDO error mode to exception
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$sql = "SELECT id, nome, email FROM utenti";
$stmt = $conn->query($sql);
if($stmt->rowCount() > 0){
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
echo "ID: " . $row["id"] . " Nome: " . $row["nome"] . " Email: " . $row["email"] . "
";
}
}else{
echo "Nessun utente trovato";
}
} catch(PDOException $e) {
echo "Errore di connessione: " . $e->getMessage();
}
$conn = null;
?>
In questo esempio, creiamo una connessione al database utilizzando PDO, eseguiamo una query per recuperare tutti gli utenti dalla tabella utenti
e visualizziamo i risultati.
Gestione degli Errori
È fondamentale gestire gli errori in PHP per garantire che l’applicazione si comporti in modo prevedibile e per fornire un’esperienza utente migliore. PHP offre diversi meccanismi per la gestione degli errori, tra cui:
try...catch
: Permette di intercettare le eccezioni (errori) che si verificano durante l’esecuzione del codice.set_error_handler()
: Permette di definire una funzione personalizzata per gestire gli errori.error_reporting()
: Permette di specificare quali tipi di errori devono essere riportati.
Ecco un esempio di gestione di un’eccezione:
<?php
try {
$risultato = 10 / 0; // Questo causerà un'eccezione
echo "Risultato: " . $risultato;
} catch (Exception $e) {
echo "Si è verificato un errore: " . $e->getMessage();
}
?>
Debug in PHP
Il debug è una parte essenziale dello sviluppo web. PHP offre diversi strumenti e tecniche per il debug, tra cui:
var_dump()
: Utile per visualizzare il contenuto di variabili e oggetti.print_r()
: Utile per visualizzare il contenuto di array e oggetti in un formato leggibile.- Error logging: Utilizzare le impostazioni di PHP per registrare gli errori in un file, analizzabile in seguito per identificare le cause dei problemi.
- Xdebug: Un potente debugger che permette di mettere dei breakpoint nel codice e analizzare l’esecuzione passo passo.
Risorse Utili
Conclusione
In questo articolo, abbiamo esplorato i concetti fondamentali per iniziare a scrivere script PHP. Abbiamo visto come creare script base, utilizzare variabili, operatori, strutture di controllo, funzioni, interagire con form HTML, connetterci a un database e gestire gli errori. Ricorda che la pratica è fondamentale per imparare un linguaggio di programmazione, quindi non aver paura di sperimentare e mettere in pratica quanto appreso. Con la pratica e l’esperienza, sarai in grado di sviluppare applicazioni web sempre più complesse e sofisticate.
Buona programmazione!