PROGETTO CINEMA E FILM IN PHP E MYSQL

Per le classi V D e V E presento il progetto realizzato dallo studente Lorenzo Lugli classe V A a.s. 2010/2011
Il vostro progetto presente in questo link:
http://paololatella.blogspot.it/2015/09/lezione-di-giovedi-17-settembre-2018.html
deve seguire le indicazioni presenti in questo post.

PROGETTO FILM IN PHP E MYSQL
 

TRACCIA

IL CANDIDATO , FORMULATE LE OPPORTUNE IPOTESI AGGIUNTIVE REALIZZI:

·         UN ANALISI DELLA REALTA'

·         UNO SCHEMA CONCETTUALE

·         CREAZIONE DEL DATABASE

·         UN INTERFACCIA PER INSERIRE , MODIFICARE ED ELIMINARE I DATI NELLE TABELLE

·         RISOLVERE ALCUNE QUERY

L' APPLICATIVO DEVE ESSERE REALIZZATO PER IL WEB CON RELATIVO SITO CON DUE AREE, LA PRIMA PER L' AMMINISTRATORE DEL SISTEMA PROTETTO DA PASSWORD, LA SECONDA AREA CHE CONSENTE LA RICERCA DEI DATI IN BASE ALLE QUERY CONSEGNATE.


 
Database
GESTIONE PROIEZIONI
Relazione

è ANALISI DI MASSIMA

L'ambito in cui il programmatore si trova ad operare è quello di un cinema che richiede una soluzione informatica per la gestione dell'archivio digitale dei film proiettati.
Le specifiche per la creazione del database richiedono che sia costituito da cinque entità:
 ñ  ATTORI: contiene i principali dati anagrafici degli attori (cognome, anno di nascita, nazionalità) oltre che un codice identificativo univoco;
ñ  RECITA: tabella necessaria per collegare, attraverso una relazione molti a molti, l'entità attori e l'entità film. Contiene il codice dell'attore e il codice del film in cui recita;
ñ  FILM: questa tabella raccoglie i dati relativi ai film in proiezione (codice film, titolo, anno di produzione, nazionalità, regista e genere)
ñ  PROIEZIONI: lo scopo di questa entità è quello di creare una relazione molti a molti tra le tabelle film e sale; per questo motivo contiene i codici film e sala oltre che dati più dettagliati relativi alla singola proiezione (un codice identificativo, gli incassi e la data);
ñ  SALE: contiene dati relativi le diverse sale del cinema, in particolare codice della sala, numero di posti, nome e locali;
  Le relazioni, come già accennato in precedenza, sono del tipo molti a molti e si instaurano tra le entità “Attori” e “Film” attraverso la tabella “Recita” e tra le entità “Film” e “Proiezioni” attraverso la tabella “Proiezioni”.
 
Oltre alla realizzazione del database vero e proprio, viene richiesto al programmatore un sito web che permetta al personale del cinema la gestione dell'archivio attraverso un'interfaccia grafica user-friendly.
 
La codifica del database, che verrà inserito nel DBMS MySQL, sarà effettuata in linguaggio SQL, mentre le pagine grafiche di gestione saranno realizzate in linguaggio PHP per quanto riguarda le parti dinamiche e HTML/CSS per le porzioni statiche e la grafica.
 
è ANALISI DETTAGLIATA
Il sito web, realizzato secondo le specifiche della committenza, si divide in due aree; la prima, comprendente la home page e la pagina di interrogazione del database (consultazione.php) è dedicata soprattutto ai visitatori del sito estranei alla compagnia che desiderano ottenere alcune informazioni contenute nel database, mentre la seconda, di cui fanno parte le pagine che permettono di inserire, aggiornare e cancellare dati dal database, è riservata agli amministratori.
 
n  LOGIN E LOGOUT
L'autenticazione degli amministratori è stata realizzata attraverso lo strumento delle sessioni, incluso nel linguaggio php.
Per poter ottenere l'accesso all'area riservata, è necessario autenticarsi inserendo username e password nel form dedicato al login presente all'interno della pagina “area_riservata.php”; i dati digitati vengono inviati alla pagina “login.php”, che, dopo averne verificato la corrispondenza con quelli definiti, inizia una nuova sessione e memorizza l'username (sufficiente per riconoscere l'utente registrato) nell'array superglobale di sessione $_SESSION, dove rimane memorizzato fino alla chiusura del browser o fino a che l'amministratore non decida di terminare la sessione premendo il pulsante “Logout”.
Si ricorda che un array superglobale non è altro che un array direttamente disponibile all'interno delle funzioni, che non richiede quindi inizializzazione.
Qualora i dati di accesso digitati non fossero esatti, la pagina di controllo “login.php”, grazie alla funzione “header” esegue un reindirizzamento alla pagina di provenienza (“area_riservata.php”) trasferendo congiuntamente, tramite il metodo GET, un codice di errore che provocherà la comparsa, al di sotto del form, di un messaggio indirizzato all'utente per informarlo dell'errore commesso.
 
Il logout viene effettuato dalla pagina “logout.php” a cui è collegato il pulsante “Logout” presente nell'intestazione di ogni pagina quando loggati.
  Il funzionamento è semplice: per prima cosa viene richiamata la sessione attiva, poi si procede alla sua eliminazione attraverso la funzione “session_destroy()”, infine, per sicurezza, si sovrascrive l'array $_SESSION con un array vuoto. A questo punto viene eseguito un reindirizzamento alla home page.
 
n  INSERIMENTO NEL DATABASE
Per poter inserire nuove tuple nel database è necessario essere amministratori e autenticarsi per l'accesso all'area riservata.
Per prima cosa aprire la pagina di inserimento selezionandola dal menù in alto, poi selezionare la tabella in cui si desidera inserire nuovi dati e compilare il form contestuale e continuare la procedura fino alla conferma dell'inserimento.
Per limitare il numero di pagine necessarie, si è scelto di combinare gli inserimenti nelle diverse tabelle in un'unica pagina, chiamata “inserisci_db_cinema.php”. A questo scopo è stato usato il metodo GET per inviare alla suddetta pagina un indicatore della porzione di codice da eseguire. Per esempio, cliccando sulla tabella attori, viene inviato alla pagina “inserisci_db_cinema.php” il valore della variabile $tab “attori” e si attiva la parte di codice responsabile della stampa a video del form relativo quella tabella; una volta riempito il form, invece che indirizzarsi ad una nuova pagina per l'inserimento vero e proprio dei dati nel database, viene assegnato un nuovo valore alla variabile $tab (attoriexe) che stavolta attiverà la parte di codice relativa l'inserimento
n  AGGIORNAMENTO E CANCELLAZIONE
Anche per poter modificare o cancellare dati già presenti nel database è, ovviamente, necessaria l'autenticazione.
Queste operazioni sono rese molto semplici dal fatto che ogni volta che si desidera intervenire sui dati memorizzati nel database in una specifica tabella, viene stampato a video il suo intero contenuto; non è quindi richiesto conoscere a memoria il codice della tupla da modificare, ma è sufficiente effettuare una veloce ricerca visiva tra i dati (mostrati in ordine alfabetico o, se più significativo, di codice).
La modifica o cancellazione dei dati si effettuano seguendo la stessa procedura dell'inserimento, salvo la richiesta di conferma prima di effettuare la cancellazione.
Per limitare il numero di pagine necessarie, si è scelto di combinare  le modifiche e le cancellazioni nelle diverse tabelle in tre sole pagine, chiamate  rispettivamente “modifica_db_cinema.php”, che si occupa della visualizzazione del form contestuale la tabella, “aggiorna_db_cinema.php” e “cancella_db_cinema.php” che si occupano dell'esecuzione vera e propria delle funzioni richieste. A questo scopo è stato usato il metodo GET per inviare alle suddette pagine un indicatore della porzione di codice da eseguire.
 
n  INTERROGAZIONE
La consultazione del database non richiede un accesso autenticato ed è perciò una funzione disponibile a tutti i visitatori del sito.
Dalla pagina consultazione è sufficiente selezionare la query che si desidera eseguire e attendere la visualizzazione a video dei risultati dell'elaborazione.
Per limitare il numero di pagine necessarie, si è scelto di combinare tutte le query in un'unica pagina chiamata “interroga_db_cinema.php”. L'esecuzione della query richiesta è effettuata, ancora una volta, grazie al metodo della variabile passata tramite GET alla pagina di destinazione.
n  RIEPILOGO
Riepilogando, il sito web realizzato si compone delle seguenti pagine:
 
è “aggiorna_db_cinema.php”: esegue l'aggiornamento dei dati nel database;
è “area_riservata.php”: pagina da cui si accede all'area riservata;
è “cancella_db_cinema.php”: cancella dati contenuti nel database;
è “consultazione.php”: pagina da cui selezionare la query da eseguire;
è “index.php”: home page del sito;
è “inserisci_db_cinema.php”: inserisce dati nel database;
è “inserisci.php”: pagina da cui selezionare la tabella in cui inserire i dati;
è “interroga_db_cinema.php”: esegue query;
è “login.php”: esegue il login;
è “logout.php”: esegue il logout;
è “modifica_db_cinema.php”: stampa il form della tabella da modificare;
è “modifica-elimina.php”: pagina da cui selezionare la tabella in cui modificare i dati;
 




è APPROFONDIMENTO RIGUARDO I LINGUAGGI USATI
  PHP:
  (acronimo ricorsivo di "PHP: Hypertext Preprocessor", preprocessore di ipertesti; originariamente acronimo di "Personal Home Page") è un linguaggio di scripting interpretato, con licenza open source e libera, originariamente concepito per la programmazione Web ovvero la realizzazione di pagine web dinamiche.
  Attualmente è utilizzato principalmente per sviluppare applicazioni web lato server ma può essere usato anche per scrivere script a riga di comando o applicazioni standalone con interfaccia grafica.
L'elaborazione di codice PHP sul server produce codice HTML da inviare al browser dell'utente che ne fa richiesta. Il vantaggio dell'uso di PHP e degli altri linguaggi Web come ASP e .NET rispetto al classico HTML derivano dalle differenze profonde che sussistono tra Web dinamico e Web statico.
PHP riprende per molti versi la sintassi del C, come peraltro fanno molti linguaggi moderni, e del Perl. È un linguaggio a tipizzazione debole e dalla versione 5 migliora il supporto al paradigma di programmazione ad oggetti. Certi costrutti derivati dal C, come gli operatori fra bit e la gestione di stringhe come array, permettono in alcuni casi di agire a basso livello; tuttavia è fondamentalmente un linguaggio di alto livello, caratteristica questa rafforzata dall'esistenza delle sue moltissime API, oltre 3.000 funzioni del nucleo base. PHP è in grado di interfacciarsi a innumerevoli database (tra cui MySQL) e supporta numerose tecnologie, come XML, SOAP, IMAP, FTP, CORBA. Si integra anche con altri linguaggi/piattaforme quali Java e .NET.
Fornisce un'API specifica per interagire con Apache, nonostante funzioni naturalmente con numerosi altri server web. È anche ottimamente integrato con il database MySQL, per il quale possiede più di una API. Per questo motivo esiste un'enorme quantità di script e librerie in PHP, disponibili liberamente su Internet. La versione 5, comunque, integra al suo interno un piccolo database embedded, SQLite.
Dispone di un archivio chiamato PEAR che mette a disposizione un framework di librerie riusabili per lo sviluppo di applicazioni PHP e di PECL che raccoglie tutte le estensioni conosciute scritte in C.
artire dal 2011 PHP non ha supporto nativo per le stringhe Unicode o multibyte, il supporto Unicode è in fase di sviluppo per una futura versione di PHP e consentirà stringhe così come classe, metodo, e la funzione nomi per contenere caratteri non ASCII.
 
 SQL:

MySQL, definito Oracle MySQL, è un Relational database management system (RDBMS), composto da un client con interfaccia a caratteri e un server, entrambi disponibili sia per sistemi Unix come GNU/Linux che per Windows, anche se prevale un suo utilizzo in ambito Unix.
Dal 1996 supporta la maggior parte della sintassi SQL e si prevede in futuro il pieno rispetto dello standard ANSI. Possiede delle interfacce per diversi linguaggi, compreso un driver ODBC, due driver Java, un driver per Mono e .NET ed una libreria per python.
 Il codice di MySQL venne sviluppato fin dal 1979 dalla ditta TcX ataconsult, poi rinominata MySQL AB, ma è solo dal 1996 che viene distribuita una versione che supporta SQL, prendendo spunto da un altro prodotto: mSQL. MySQL AB è stata rilevata da Sun Microsystems nel 2008, mentre nel 2010 quest'ultima è stata acquisita da Oracle Corporation.
MySQL svolge il compito di DBMS nella piattaforma LAMP, una delle più usate e installate su Internet per lo sviluppo di siti e applicazioni web dinamiche.
 
Definizioni:
§  Record: un record è l'insieme delle informazioni di un elemento. Semplificando il discorso, un record è una riga di una tabella.
§  Campo: un campo è una caratteristica della tabella. Semplificando, è il nome della colonna.
§  Query: è un'interrogazione al database. Attraverso il linguaggio SQL, con una query è possibile estrarre informazioni e manipolare i dati. Il modo in cui, praticamente, i comandi vengono inviati ad una base dati cambia a seconda del db utilizzato. Con Microsoft Access è possibile costruire le query in visuale ed inviarle direttamente dal programma (è un db particolare, che in un solo file contiene tool, motore, strumenti di sviluppo). Con mysql è possibile utilizzare la riga di comando (anche da DOS, se è installato mysql sul pc), tool particolari o script php. Una pagina PHP consente un accesso diretto a qualsiasi db mysql (di cui si conoscano username e password).
MODELLO CONCETTUALE DEL DATABASE
MODELLO LOGICO DEL DATABASE


Progetto realizzato dall'alunno Lorenzo Lugli
link intera procedura: http://www.bassi.gov.it/documents/PLATELLA/cinema_proiezioni.zip

Commenti