RELAZIONE TECNICA GESTIONE CARTE DI CREDITO a cura di EMANUELE CESARI 1 INDICE ARGOMENTO: PAGINA 1. Traccia del problema 3 2. Analisi di massima e spiegazione 4-11 3. Modello Er 12 4. Scema Relazionale 13 5. Manuale d 'uso e conclusione 14 2 TRACCIA DEL PROBLEMA Carta di credito (Cesari e Dhana) Si consideri una Banca Dati per gli acquisti con carta di credito che contiene le seguenti informazioni sui clienti (titolari di carte di credito), estratti conto, dettagli degli acquisti, prodotti acquistati, luoghi degli acquisti e promozioni. Dei clienti interessano il codice fiscale, che li identifica, il nome, il reddito, il sesso, l’anno di nascita, l’indirizzo, il numero e l’anno di scadenza della carta. I clienti ricevono mensilmente un estratto conto del quale interessano il numero, che lo identifica, la data, il totale delle spese addebitato e, per ogni acquisto, la data, l’importo, il luogo (città, provincia e regione), la descrizione e la categoria del prodotto (supermercato, ristorante, auto, viaggi, varie). Con l’estratto conto vengono segnalate al cliente diverse promozioni di acquisti delle quali interessano il codice, che le identifica, la descrizione, il costo, le date di inizio e fine della promozione. Per ogni promozione inviata ad un cliente interessa la risposta (sì, no) del cliente. Presentare entro e non oltre il 28 febbraio 2015: la relazione tecnica, il sito web professionale, la gestione mySql + Php con inserimento, modifica, visualizzazione e cancellazione dei dati nelle tabelle realizzate. Creare le seguenti queries: elenco dei clienti ai quali sta per scadere la carta di credito elenco clienti con gli acquisti effettuati elenco delle promozioni inviate ai clienti 3 ANALISI DI MASSIMA L' applicazione permette di simulare l'operato online di un istituto di credito che fornisce servizi di carte di credito. L'applicazione è sviluppata interamente in html, css per la grafica, le parti di programmazione sono sviluppate in php e il database viene gestito utilizzando Mysql. Il sito è costituito da due parti: la prima parte simula il front- end ed è puramente a scopo grafico da cui si puo accedere alla pagina del login Queste pagine sono realizzate interamente in html e css per alcune parti di grafica, queste pagine simulano la presentazione e le informazione di un azienda sul proprio sito; e anche presente una pagina di contact us che in futuro potrà essere implementata e resa funzionante. Per accedere alla seconda parte del sito quella che simula la pagina di back office dove l'amministratore del sito può compiere operazioni sulla base di dati bisogna cliccare sulla pagina Login. Per effetturare il login bisognera utilizzare le seguenti credenziali 4 Username:admin password:1234 Questo è lo screen della pagina login con le credenziali inserite, per realizzare questa pagina mi sono ispirato al classico login in stile google. Dunque è utilizzato un css opensource preso da internet e un semplice form html/php inoltre sui campi è presente un controllo che non permette di effettuare il login se prima non si sono compilati tutti i campi. Il login è stato gestito con l'utilizzo delle sessioni in php, la pagina di login(figura) invia username e password ad una pagina di check login dove tramite una query si controlla che l'username e la password inseriti siano presenti nel database se essi sono presenti a una variabile di sessione $session_register("autorizzato"); assumera il valore autorizzato e cio permetterà di accedere alle pagine riseravate in quanto ogni pagina successiva al login verifichera che la sessione sia registrata tramite questo script: //codice controllo sessione 5 <?php session_start(); if (!session_is_registered('autorizzato')) { echo "<h1>Area riservata - accesso negato</h1>"; die; } ?> se la sessione non sara registrata verrà visualizzato il seguente messaggio di errore “AREA RISERVATA -ACCESSO NEGATO”. Se invece si è effettuato il login correttamente ( dunque la sessione è registrata) si potra accedere al pannello di controllo dell'amministratore dal quale si potranno eseguire le query. 6 Questa pagina simula il back office dove si possono compiere le query, modificare,inserire o eliminare nuovi dati nel database. Come indicato L'amministratore di questa pagina possiede tutti i privilegi dunque potrà modificare tutti i dati presenti nella base di dati, e vincoli di integrità sui dati sono impostati on delete “CASCADE” E on update “CASCADE”. La pagina è costituita da un menu dal quale si può accedere a tutte le query e i menu disponibile e dei bottoni che permettono di raggiungere le query velocemente. Dal menu clienti si potranno compiere le seguenti operazioni : • visualizzazione dei dati personali di tutti i clienti • Inserimento dei dati di nuovi clienti • Modifica dei dati dei clienti • Eliminazione dei dati dei clienti Ovviamente queste pagine presuppongono che sia presente un database nel quale esista la tabella clienti; queste 4 operazioni sono gestite semplicemente come query a questo database e sono semplici operazioni di visualizazzione, inserimento, modifica e cancellazione in sql, di conseguenza non riporterò il codice. Ecco uno screen di un esempio di inserimento: 7 (form html passaggio valori tramite il metodo post) se i valori inseriti saranno corretti il nuovo cliente verrà inserito nella tabella clienti e verrà visualizzato il messaggio “registrazione record avvenuta con successo” Le pagine elimina e modifica agiscono in modo molto simile a questa pagina solamente che al posto del inserimento abbiamo l'update per la modifica e Delete per l'eliminazione. Ecco il codice della query per l'inserimento di un nuovo cliente (ovviamente per poter eseguire la query bisogna includere il file di connessione al database tramite l' istruzione include) // query inserimento 8 include("connessione.php"); //Inizializzo variabili $codice=$_POST['codice']; $nome=$_POST['nome']; $cognome=$_POST['cognome']; $reddito=$_POST['reddito']; $telefono=$_POST['telefono']; $sesso=$_POST['sesso']; $indirizzo=$_POST['indirizzo']; $annodinascita=$_POST['annonascita']; $scadenzacarta=$_POST['scadenza']; $query="INSERT INTO `my_ilblogdiemanuele`.`clienti` (`codicefiscale`, `nome`, `cognome`, `reddito`, `sesso`, `annodinascita`, `indirizzo`, `telefono`, `scadenzacarta`, `Codicepromozione`) VALUES ('$codice', '$nome', '$cognome', '$reddito', '$sesso', '$annodinascita', '$indirizzo', '$telefono', '$scadenzacarta', '1')"; $result = mysql_query($query); if (!$result) { echo"I Valori Inseriti non sono Validi in quanto potrevve gia essere presenti nel nostro database"; ?> <br> <? echo"ecco l'errore riscontrato:"; ?> <br> <? die("Errore nella query " . mysql_error()); } else ?> <h4>registrazione record avvenuta con successo</h4> <? mysql_close($conn); ?> 9 il file connessione.php che ho incluso contiene semplicemente le istruzione per connettersi al database include("connessione.php"); <?php //Connessione mysql $hostname="localhost"; $username="ilblogdiemanuele"; $password=""; $conn=mysql_connect($hostname, $username, $password); if(!$conn) die("Errore di connessione a mysql<br>"); //Selezione DataBase $dbname="my_ilblogdiemanuele"; $db=mysql_select_db($dbname); if(!$db) die("Errore di connessione al DataBase<br>"); echo ""; ?> Il sito permette anche di eseguire altre operazioni come visulizzare per ogni cliente quando scade la sua carta operazione effetuabile tramite il menu scadenza carte 10 Le altre operazioni che l'applicazione permette sono: • visualizzare l'estrattoconto di ogni cliente assieme alla data • visualizzare gli acquisti effettuati da ogni cliente con la propria carta di credito, l'importo di questi acquisti, la data, il numero dell estrattoconto in cui sono contenuti e una breve descrizione. Il sito permette inoltre di effettuare il logout, che distruggerà la sessione esistente e rimanderà alla pagina di login 11 MODELLO ER Il sito si basa su un database che presenta il sequente modello ER 12 SCEMA RELAZIONALE PROMOZIONI (codice,nome,datainizio,datafine) CLIENTI(Codicefiscale,nome,cognome,reddito,sesso,annodinascita,indirizzo,tel efono, scadenza carta,codicepromozione) FK clienti(codicepromozionie) references promozioni(codice) ESTRATTOCONTO (Numero,data,importo,codicefiscalecliente) FK estrattoconto(codicefiscalecliente) references clienti(codicefiscale) ACQUISTI(codice,importo,data,luogo,descrizione,numeroestrattoconto) FK acqusiti (numeroestrattoconto)references estrattoconto(numero) 13 MANUALE D'USO Per utilizzare l'applicativo basta avere un connessione internet e un browser Ps il sito è realizzato unicamente a scopo didattico come esercitazione scolastica 14