Una piattaforma web completa per gli amanti del cinema, sviluppata in PHP con MySQL. DibrisPlus permette agli utenti di esplorare un catalogo di film, creare liste personali, valutare i film e trovare cinema nelle vicinanze.
- Catalogo Film Completo - Esplora un'ampia collezione di film con dettagli completi
- Sistema di Valutazione - Vota i tuoi film preferiti da 0 a 10
- Liste Personali - Organizza i film in:
- ❤️ Preferiti
- ⏰ Da guardare dopo
- ✅ Già visti
- Ricerca Avanzata - Trova film per titolo
- Profilo Personalizzabile - Gestisci i tuoi dati e foto profilo
- Cinema Finder - Trova cinema vicini a te con mappa interattiva
- Gestione Film - Aggiungi, modifica ed elimina film dal catalogo
- Gestione Utenti - Visualizza e gestisci gli account utente
- Caricamento Media - Upload di locandine e trailer
- Backend: PHP 7.4+
- Database: MySQL/MariaDB
- Frontend: HTML5, CSS3, JavaScript
- Mapping: Leaflet.js + OpenStreetMap
- Icons: Font Awesome
- Fonts: Google Fonts (New Walt Disney Font)
DibrisPlus/
├── Amministration/ # Area amministrativa
├── Cinema/ # Finder cinema con mappa
├── Common_elements/ # Componenti condivisi
├── Film/ # Pagine dettaglio film
├── Home/ # Homepage
├── Login/ # Sistema autenticazione
├── Registration/ # Registrazione utenti
├── Search_page/ # Ricerca film
├── User_area/ # Profilo utente
├── Script_php/ # Script PHP core
├── test/ # Test automatici
└── presentation.php # Landing page
- PHP 7.4 o superiore
- MySQL 5.7 o superiore / MariaDB 10.2+
- Web server (Apache/Nginx)
- Crea un database MySQL:
CREATE DATABASE unige;- Configura la connessione nel file
Common_elements/databaseConnection.php:
$conn = new mysqli('localhost', 'your_username', 'your_password', 'unige');- Crea le tabelle necessarie:
-- Tabella utenti
CREATE TABLE utenti (
email VARCHAR(100) PRIMARY KEY,
nome VARCHAR(50) NOT NULL,
cognome VARCHAR(50) NOT NULL,
password VARCHAR(255) NOT NULL,
numero_telefono VARCHAR(15),
photo LONGBLOB,
admin BOOLEAN DEFAULT FALSE
);
-- Tabella film
CREATE TABLE film (
Titolo VARCHAR(255) PRIMARY KEY,
Locandina LONGBLOB,
AnnoDiRilascio YEAR,
Regista VARCHAR(100),
Genere VARCHAR(200),
Durata INT,
Produzione VARCHAR(200),
Distribuzione VARCHAR(200),
Paese VARCHAR(100),
Incassi BIGINT,
CostiDiProduzione BIGINT,
Descrizione TEXT,
Trailer VARCHAR(500),
Attori TEXT
);
-- Tabelle per le liste utente
CREATE TABLE film_preferiti (
Email VARCHAR(100),
film VARCHAR(255),
FOREIGN KEY (Email) REFERENCES utenti(email),
FOREIGN KEY (film) REFERENCES film(Titolo),
PRIMARY KEY (Email, film)
);
CREATE TABLE film_da_guardare (
Email VARCHAR(100),
film VARCHAR(255),
FOREIGN KEY (Email) REFERENCES utenti(email),
FOREIGN KEY (film) REFERENCES film(Titolo),
PRIMARY KEY (Email, film)
);
CREATE TABLE film_visti (
Email VARCHAR(100),
film VARCHAR(255),
FOREIGN KEY (Email) REFERENCES utenti(email),
FOREIGN KEY (film) REFERENCES film(Titolo),
PRIMARY KEY (Email, film)
);
-- Tabella voti
CREATE TABLE voti (
Email VARCHAR(100),
Voto INT CHECK (Voto >= 0 AND Voto <= 10),
Film VARCHAR(255),
FOREIGN KEY (Email) REFERENCES utenti(email),
FOREIGN KEY (Film) REFERENCES film(Titolo),
PRIMARY KEY (Email, Film)
);- Clona il repository:
git clone https://github.com/username/dibrisplus.git-
Configura il web server per puntare alla cartella del progetto
-
Visita
presentation.phpper iniziare
- Registrazione: Crea un account dalla pagina di registrazione
- Login: Accedi con le tue credenziali
- Esplora: Naviga nel catalogo film dalla homepage
- Gestisci Liste: Aggiungi film alle tue liste personali
- Valuta: Assegna voti ai film che hai visto
- Cerca Cinema: Usa la mappa per trovare cinema vicini
- Accedi con un account amministratore
- Vai nell'area amministrativa
- Gestisci film e utenti tramite le interfacce dedicate
Il progetto include test automatici nella cartella test/. Per eseguirli:
- Configura l'URL di base nel file
test_all.php - Esegui:
php test/test_all.php
I test coprono:
- Registrazione utente
- Login/Logout
- Visualizzazione profilo
- Aggiornamento profilo
- Autenticazione sicura con hash delle password
- Sessioni gestite correttamente
- SQL Injection prevenuta con prepared statements
- XSS Protection con sanitizzazione input
- Controllo permessi per area amministrativa
- Validazione dati lato server e client
- Design responsive per dispositivi mobili
- Tema Disney-inspired con font personalizzato
- Animazioni CSS fluide
- Background animato con bolle
- Interfaccia intuitiva e user-friendly
presentation.php- Landing page del sitoCommon_elements/databaseConnection.php- Configurazione databaseCommon_elements/controllo_accesso.php- Controllo autenticazioneCommon_elements/controlla_permessi.php- Controllo permessi adminScript_php/login.php- Gestione loginScript_php/registration.php- Gestione registrazione
- Fork del repository
- Crea un feature branch (
git checkout -b feature/NuovaFunzionalita) - Commit delle modifiche (
git commit -m 'Aggiunta nuova funzionalità') - Push al branch (
git push origin feature/NuovaFunzionalita) - Crea una Pull Request
Questo progetto è sviluppato per scopi educativi nell'ambito del corso di Applicazioni Web dell'Università di Genova.
Progetto sviluppato per il corso di Applicazioni Web - DIBRIS, Università di Genova.
🎬 DibrisPlus - La tua piattaforma cinematografica personale