diff --git a/file/film/index.php b/file/film/index.php index 46722f5..036b79b 100644 --- a/file/film/index.php +++ b/file/film/index.php @@ -7,11 +7,21 @@ if (isset($_GET['s'])) { // Ricerca film dal DB -$conn = mysqli_connect("localhost", "root", "", "film_attori"); +// Questi valori vengono letti automaticamente +$host = getenv('DB_HOST'); // Sarà "local_db" +$db = getenv('DB_NAME'); // Sarà "nomerepository-nomeutente" +$user = getenv('DB_USER'); // Uguale al nome DB +$pass = getenv('DB_PASS'); // Password generata casualmente ad ogni deploy +$charset = 'utf8mb4'; -if ($conn === false) { - exit("Errore: impossibile stabilire una connessione " . mysqli_connect_error() . ""); +$dsn = "mysql:host=$host;dbname=$db;charset=$charset"; + +try { + $pdo = new PDO($dsn, $user, $pass); +} catch (\PDOException $e) { + throw new \PDOException($e->getMessage(), (int) $e->getCode()); } + // Collegamento al DB effettuato // Leggo ID @@ -30,43 +40,30 @@ if (!is_numeric($_GET['id']) || $_GET['id'] === "" || $_GET['id'] === null) { } $idFilm = intval($_GET['id']); -$query = "SELECT film.id_film, film.nome, film.trama, film.durata, film.data_uscita, generi.nome as genere FROM film, generi WHERE film.id_genere = generi.id_genere AND film.id_film = " . $idFilm . " ORDER BY film.data_uscita"; +$query = "SELECT film.id_film, film.nome, film.trama, film.durata, film.data_uscita, generi.nome as genere FROM film, generi WHERE film.id_genere = generi.id_genere AND film.id_film = :id ORDER BY film.data_uscita"; // Leggo i dati del film e faccio il JOIN per avere il nome del genere -$res = mysqli_query($conn, $query); +$stmt = $pdo->prepare($query); +$stmt->execute([ + ':id' => $idFilm +]); -if ($res === false) { - // Codice HTTP 500: Errore - http_response_code(500); - echo "Errore: impossibile eseguire la query. " . mysqli_error($conn) . ""; - mysqli_close($conn); - exit(); -} - -$row = mysqli_fetch_array($res); - -mysqli_free_result($res); +$row = $stmt->fetch(); if (!$row) { // Codice HTTP 404: Not found http_response_code(404); echo "Film non trovato!"; - mysqli_close($conn); return; } // Ottengo gli attori -$queryAttori = "SELECT attori.nome, attori.cognome, attori.data_nascita, recitare.ruolo FROM attori, recitare WHERE attori.id_attore = recitare.id_attore AND recitare.id_film = " . $idFilm . " ORDER BY recitare.ruolo DESC "; +$queryAttori = "SELECT attori.nome, attori.cognome, attori.data_nascita, recitare.ruolo FROM attori, recitare WHERE attori.id_attore = recitare.id_attore AND recitare.id_film = :id ORDER BY recitare.ruolo DESC "; -$resAttori = mysqli_query($conn, $queryAttori); - -if ($resAttori === false) { - // Codice HTTP 500: Errore - http_response_code(500); - echo "Errore: impossibile eseguire la query. " . mysqli_error($conn) . ""; - mysqli_close($conn); - exit(); -} +$stmt = $pdo->prepare($queryAttori); +$stmt->execute([ + ':id' => $idFilm +]); ?> @@ -123,7 +120,7 @@ if ($resAttori === false) {
fetch()) { $test = false; ?>
@@ -136,9 +133,6 @@ if ($resAttori === false) {
Errore: impossibile stabilire una connessione " . mysqli_connect_error() . ""); +try { + $pdo = new PDO($dsn, $user, $pass); +} catch (\PDOException $e) { + throw new \PDOException($e->getMessage(), (int) $e->getCode()); } // Collegamento al DB effettuato - -$query = "SELECT film.id_film, film.nome, film.trama, film.data_uscita, generi.nome as genere FROM film, generi WHERE film.id_genere = generi.id_genere ORDER BY film.data_uscita"; $searched = ""; // Leggo la ricerca -if (isset($_GET['q'])) { - if (is_string($_GET['q']) && $_GET['q'] !== "" && $_GET['q'] !== null) { - $nome = htmlspecialchars($_GET['q']); - $searched = $nome; - $query = "SELECT film.id_film, film.nome, film.trama, film.data_uscita, generi.nome as genere FROM film, generi WHERE film.id_genere = generi.id_genere AND film.nome LIKE '%" . $nome . "%' ORDER BY film.data_uscita"; - } +$params = []; + +if (isset($_GET['q']) && $_GET['q'] !== '') { + $nome = $_GET['q']; + $searched = $nome; + + $query = `SELECT film.id_film, film.nome, film.trama, film.data_uscita, generi.nome as genere + FROM film + JOIN generi ON film.id_genere = generi.id_genere + WHERE film.nome LIKE :nome + ORDER BY film.data_uscita`; + + $params[':nome'] = "%$nome%"; +} else { + $query = `SELECT film.id_film, film.nome, film.trama, film.data_uscita, generi.nome as genere + FROM film + JOIN generi ON film.id_genere = generi.id_genere + ORDER BY film.data_uscita`; } // Leggo i dati del film e faccio il JOIN per avere il nome del genere -$res = mysqli_query($conn, $query); - -if ($res === false) { - // Codice HTTP 500: Errore - http_response_code(500); - echo "Errore: impossibile eseguire la query. " . mysqli_error($conn) . ""; - mysqli_close($conn); - exit(); -} +$stmt = $pdo->prepare($query); +$stmt->execute($params); ?> @@ -71,7 +82,8 @@ if ($res === false) {

Film in sala

- +
@@ -84,12 +96,13 @@ if ($res === false) { $test = true; - while ($row = mysqli_fetch_array($res)) { + while ($row = $stmt->fetch()) { $test = false; ?>
- +
@@ -99,9 +112,6 @@ if ($res === false) {