Relazione e-commerce



Похожие документы
RELAZIONE E-COMMERCE

RELAZIONE SCRITTA RELATIVA AL PROGRAMMA DI GESTIONE SITO E-COMMERCE

RELAZIONE SCRITTA RELATIVA AL PROGRAMMA GESTIONE MEDIAWORLD

Relazione scritta relativa alla gestione del sito E-Commerce MediaWorld

19. LA PROGRAMMAZIONE LATO SERVER

Volumi di riferimento

RELAZIONE SCRITTA RELATIVA AL PROGRAMMA DI GESTIONE TABELLA ATTORI

Data Base. Master "Bio Info" Reti e Basi di Dati Lezione 6

Il sofware è inoltre completato da una funzione di calendario che consente di impostare in modo semplice ed intuitivo i vari appuntamenti.

RELAZIONE TECNICA GESTIONE CARTE DI CREDITO. a cura di EMANUELE CESARI

Vi ricordiamo che per qualsiasi problema tecnico o informazione potete contattare info@eduitalia.org oppure Francesco al

LA GESTIONE DELLE VISITE CLIENTI VIA WEB

Sistema Informativo Gestione Fidelizzazione Clienti MANUALE D USO

PORTALE CLIENTI Manuale utente

Mon Ami 3000 MACommerce La soluzione per il commercio elettronico totalmente integrata con Mon Ami 3000

11/02/2015 MANUALE DI INSTALLAZIONE DELL APPLICAZIONE DESKTOP TELEMATICO VERSIONE 1.0

RELAZIONE RELATIVA ALLA GESTIONE DEL SITO DI E-COMMERCE

Direzione Centrale per le Politiche dell Immigrazione e dell Asilo

1) Il client(browser utilizzato) invia al server i dati inseriti dall utente. Server

Manuale per la configurazione di AziendaSoft in rete

Installazione & Configurazione Php e MySQL su Mac Os X. Php

Costruzione di Sit Web con PHP e MySQL. Lezione 7 - Esercitazione - Introduzione a MySQL: le tabelle, i tpi di dato, le query

MANUALE PARCELLA FACILE PLUS INDICE

Guida alla registrazione on-line di un DataLogger

CREATIVE-LINK realizzazione siti web E-COMMERCE? e-commerce completo. offerta realizzazione sito web professionale

SOSEBI PAPERMAP2 MODULO WEB MANUALE DELL UTENTE

LINEA UP Installazione aggiornamento da Dynet Web

Esercizio data base "Biblioteca"

Manuale Utente Albo Pretorio GA

MagiCum S.r.l. Progetto Inno-School

Manuale Amministratore Legalmail Enterprise. Manuale ad uso degli Amministratori del Servizio Legalmail Enterprise

ATOLLO BACKUP GUIDA INSTALLAZIONE E CONFIGURAZIONE

Medici Convenzionati

Sistema Gestionale FIPRO. Dott. Enea Belloni Ing. Andrea Montagnani

Introduzione. Installare EMAS Logo Generator

TS-CNS. Tessera Sanitaria Carta Nazionale dei Servizi. Manuale di installazione e configurazione. Versione del

CREATIVE-LINK realizzazione siti web E-COMMERCE? e-commerce base. offerta realizzazione sito web professionale

TS-CNS. Tessera Sanitaria Carta Nazionale dei Servizi. Manuale di installazione e configurazione. Versione del

Istruzioni per l installazione del software per gli esami ICoNExam (Aggiornate al 15/01/2014)

Sistema per scambi/cessioni di Gas al Punto di Scambio Virtuale

MANUALE PER CONSULTARE LA RASSEGNA STAMPA VIA WEB

Manuale Utente Amministrazione Trasparente GA

LETTERA D INSTALLAZIONE DELLA PROCEDURA SERVIZI SOCIALI

FIRESHOP.NET. Utilizzare il FireSoft. Rev

FidelJob gestione Card di fidelizzazione

2.1 Installazione e configurazione LMS [4]

GCEWEB Denunce mensili in WEB

Guida per la registrazione alla piattaforma di Gestione dei Corsi per il Consulente Tecnico Telematico

Nautilus Installazione Aggiornato a versione


Marketing Portal. Guida all utilizzo per i concessionari. Maggio 2013

Product Updater Scaricamento e Installazione aggiornamento

1) GESTIONE DELLE POSTAZIONI REMOTE

Basi di dati. Il Linguaggio SQL. K. Donno - Il Linguaggio SQL

MUSEO&WEB. un area riservata (OTEBAC) Roma, 15 giugno 2010

e/fiscali - Rel e/fiscali Installazione

ITI M. FARADAY Programmazione modulare a.s

Laboratorio Progettazione Web PHP e MySQL - Lezione 9. Andrea Marchetti IIT-CNR andrea.marchetti@iit.cnr.ita 2012/2013

Guida all installazione e configurazione di Joomla 1.5

Istruzioni di installazione di IBM SPSS Modeler Text Analytics (licenza per sito)

ImporterONE Export Plugin Magento

GUIDA UTENTE PRIMA NOTA SEMPLICE

Dipartimento per le Libertà Civili e l Immigrazione

Manuale d istruzione SBS

RELAZIONE PROGETTO DATABASE GESTIONE BIBLIOTECA PERSONALE

ISSA EUROPE PTSOFTWARE 2.0

Guida rapida all uso di Moodle per gli studenti

Guida all installazione di Easy

Manuale Gestore. Utilizzo Programma. Magazzino

Product Updater. Scaricamento e Installazione aggiornamento

Raggruppamenti Conti Movimenti

Dipartimento per le Libertà Civili e l Immigrazione

Database e reti. Piero Gallo Pasquale Sirsi

Esercizio sui data base "Gestione conti correnti"

Creare e gestire semplicemente progetti web accessibili.

Una metodologia di progettazione di applicazioni web centrate sui dati

PrestaShop 1.5. Manuale per gli utenti. Ultimo aggiornamento: 25 gennaio A cura di:

FPf per Windows 3.1. Guida all uso

SIFORM MANUALE VOUCHER FORMATIVI A DOMANDA AZIENDALE

I MODULI Q.A.T. PANORAMICA. La soluzione modulare di gestione del Sistema Qualità Aziendale

FRANCESCO MARINO - TELECOMUNICAZIONI

MANUALE UTENTE Fiscali Free

Obiettivo dell esercitazione

Questa guida vi illustrerà i principali passaggi da eseguire per l'inserimento dei Bandi di gara.

GERARCHIE RICORSIVE - SQL SERVER 2008

Fate doppio click sul file con nome postgresql-8.0.msi e impostate le varie voci come riportato nelle immagini seguenti:

MANUALE OPERATIVO PER IL CARICAMENTO DEI CONTENUTI DELLE AZIENDE ASSOCIATE NELLA SEZIONE A LORO RISERVATA

Pagina 1 di 16. Manuale d uso 626 VISITE MEDICHE

Product Updater Scaricamento e Installazione aggiornamento

NVU Manuale d uso. Cimini Simonelli Testa

Транскрипт:

Relazione e-commerce Barbarossa Salvatore Marco Classe 5^D Mercurio I.T.E. A. Bassi A.S. 2012 / 2013 1

Indice Traccia del problema.. 3 Analisi al dettaglio, entità, modello E/R, associazioni, modello relazionale 4-6 Modello relazionale logico, Organigramma, Creazione database 6-8 Tracciato record.. 9-10 Tabella delle variabili.. 11 Stamp immagine home, tabella metadati 12-13 Listing sito web. 13-49 Descrizione della fase di installazione del programmi.. 49 Manuale d uso di xampp. 49-53 Basic manual xampp... 51-55 Manuale di istallazione del database su Altervista, Parte didattica tecnica 55-58 2

Analisi sito web Traccia del problema Realizzare un sito web tipo e-commerce che consenta di gestire l intera proceduta informatica e che permetta al visitatore di visualizzare i prodotti presenti in magazzino, al responsabile Bennet di visualizzare i clienti presenti nel file. Realizzare la procedura in php con Mysql e PHP, un'area con l'archivio prodotti (creazione, inserimento e visualizzazione). La visualizzazione deve poter essere utilizzata senza loggarsi ma direttamente dalla home page del sito. Un'area protetta dove si gestiscono i dati dei clienti: creazione, inserimento e visualizzazione. I dati di questo archivio possono essere consultati solo dal responsabile del negozio o dalla persona autorizzata all'inserimento dei dati. Tutte due le procedure devono essere inserite all'interno del sito web già realizzato. L Ipermercato Bennet di Pieve Fissiraga in una fase di fidelizzazione (carta punti bennet) vuole tener traccia dei prodotti acquistati dai clienti. Di ogni cliente si vuole conoscere nome, cognome, indirizzo e data di nascita. Di ogni tipo di prodotto è necessario sapere codice, marca, nome, tipo di confezione (bottiglia,lattina, scatola,...), quantità contenuta nella confezione (1 litro, 0.5 kg,...) e prezzo di listino. Per ogni acquisto le casse emettono uno scontrino caratterizzato dal numero della cassa, dalla data ed orario di emissione, dall elenco dei prodotti acquistati, dal prezzo di acquisto e dalla quantità di ogni prodotto. Realizzare un sito web tipo e-commerce che consenta di gestire l intera proceduta informatica, che permetta al visitatore di visualizzare i prodotti presenti in magazzino e che consenta al responsabile del Bennet di visualizzare i clienti. Presentare il progetto con i seguenti step: - Traccia del problema; - Analisi di massima; - Analisi di dettaglio; - Tabelle delle variabili; - Tabelle tracciato record; - Algoritmo; - Listing pagine Html e Php; - Caso prova Test delle videate del sito; - Manuale d uso in italiano ed in inglese contenente la spiegazione del sito e delle varie funzionalità presenti 3

Analisi di massima Il sito permette di gestire la tabella dei dati dei clienti, la tabella delle merci (carrello online) e le operazioni di aggiornamento sia sui dati dei clienti che sui prodotti (merci). Le operazioni di aggiornamento che si compiono sul database relative alla tabella dei prodotti contenuti nel nostro carrello realizzato in php sono: inserimento, modifica e cancellazione. Le specifiche per la creazione del file di testo sono: DATI RELATIVI ALLA REGISTRAZIONE: sono i dati che il cliente inserirà negli appositi campi (nome, cognome, indirizzo, password, email). La password e l'email serviranno successivamente per effettuare il log in e poter ordinare sul nostro carrello online. DATI RELATIVI AL LOG IN: l'email e la password inseriti nella registrazione saranno utilizzati per il log in e per accedere al carrello online e altre informazioni riservate solo ai clienti del Mercurio Market. CARRELLO: tabella che contiene i dati relaivi ai prodotti dell'ipermercato. Oltre alla gestione del database, esiste un impianto web che permetta ai clienti ma anche agli amministratori dell'ipermercato di gestire le operazione di vendita e acquisto, oltre che la registrazione e il log in dei clienti interessati agli ordini online. Analisi al dettaglio Il sito web permette al cliente di accedere all area clienti, ma prima bisogna registrarsi attraverso un apposito log-in presente in ogni pagina html. Dopo essersi registrato il cliente potrà accedere nel carrello online e comprare i prodotti disponibili in magazzino. Il risultato visualizzerà il prezzo totale dell acquisto e i punti disponibili sulla propria carta fedeltà. Invece per accedere all area riservata bisogna essere esclusivamente amministratori. Gli amministratori potranno compiere operazioni sulla gestione dei database, sia sulla tabella dei prodotti, sia sulla tabella dei clienti (nome, cognome, indirizzo ecc..). Gli amministratori potranno effettuare il proprio login inserendo il proprio username e la propria password (in questo caso: user: salvatore; password: barbarossa). I clienti potranno navigare nel sito come vogliono senza richiedere l aiuto di nessuno. I link sono visibili senza dover compiere delle lunghe operazioni. Ogni informazione per l accesso o per la semplice navigazione del sito è spiegata in modo dettagliato nelle varie pagine. È pubblicato su un apposito spazio virtuale (altervista.org) e reso pubblico su internet. Entità PRODOTTI: contiene i dati relativi ai prodotti in magazzino ACQUISTI: contiene i dati relativi agli acquisti/vendite dei prodotti da parte dei clienti (carrello) CLIENTI: contiene i dati relativi agli utenti che si sono registrati CARTA FEDELTA : contiene i dati relativi alla carta fedeltà OPERATORI: contiene i dati relativi agli operatori del sito web 4

Modello E/R (database mercurio) PRODOTTI (1,1) (1,N) GESTIONE OPERATORI (0,N) CARRELLO (0,1) ACQUISTI (1,1) (1,N) PUNTI CARTA FEDELTA (1,1) ACQUISTO (1,N) CLIENTI Associazioni -Tra la tabella CLIENTI e la tabella ACQUISTI c è una relazione 1:N perchè un cliente può effettuare più acquisti. -Tra la tabella ACQUISTI e la tabella CARTA FEDELTA c è una relazione N:1 perchè con una carta fedeltà possono essere effettuati più acquisti. -Tra la tabella ACQUISTI e la tabella PRODOTTI c è una relazione N:1 perchè più acquisti possono contenere un prodotto. -Tra la tabella OPERATORI e la tabella PRODOTTI c è una relazione 1:N perchè un operatore può gestire più prodotti. 5

Modello relazionale logico clienti cl_codfis cl_nome cl_cognome cl_email cl_comune cl_locali cl_user cl_passwo acquisti ac_codacq ac_codfis ac_codpro ac_descri ac_quaacq_new ac_prezzo ac_costot ac_datacq ac_oraacq ac_codcar prodotti pr_codpro pr_descri pr_marca pr_ticonf pr_prezzo pr_quanti pr_codfor pr_codope operatori Op_codope Op_cogom cl_numtel ac_punspe cl_annas cl_sesso carta fedeltà cf_codcar cf_codfis cf_totpun Modello relazionale (le parole in corsivo sono le chiavi esterne) CLIENTI (cl_codcli, cl_cognom, cl_indiri, cl_locali, cl_user, cl_passwo, cl_codfis, cl_datnas, cl_numtel, cl_email, cl_sesso) ACQUISTI (ac_codacq, ac_codcli, ac_codpro, ac_quanti, ac_cosuni, ac_costot, ac_datacq, ac_oraacq, ac_codcar, ac_punspe) PRODOTTI (pr_codpro, pr_descri, pr_marca, pr_quanti, pr_ticonf, pr_prezzo, pr_codfor, pr_codope) CARTA FEDELTA (cf_codcar, cf_totpun, cf_codcli) OPERATORI (op_codope, op_cognom) 6

Organigramma Amministratori o Gestione utenti Inserimento utenti Modifica utenti Cancellazione utenti Visualizzazione utenti o Gestione prodotti Inserimento prodotti Modifica prodotti Cancellazione prodotti Visualizzazione prodotti o Gestione carta fedeltà Inserimento codice carta Modifica codice carta Cancellazione codice carta Visualizzazione codici carta Clienti o Gestione acquisti Acquisto prodotti Visualizzazione prodotti o Gestione carta fedeltà Inserimento codice carta Modifica codice carta Cancellazione codice carta Visualizzazione codici carta Creazione database create database mercurio; use mercurio; CREATE TABLE clienti ( cl_codfis char(16) NOT NULL, cl_nome varchar(30) NOT NULL, cl_cognome varchar(30) NOT NULL, cl_indiri varchar(50) NOT NULL, cl_comune varchar(30) NOT NULL, cl_sesso char(1) NOT NULL, cl_email varchar(30) NOT NULL, cl_passwo varchar(15) NOT NULL, cl_user varchar(30) NOT NULL, cl_annas year(4) NOT NULL, 7

cl_numtel char(10) NOT NULL, PRIMARY KEY (cl_codfis) )engine=innodb; CREATE TABLE carta_fedelta ( cf_codcar int (6) NOT NULL, cf_totpun int(15) NOT NULL, cf_codfis char(16) NOT NULL, PRIMARY KEY (cf_codcar), FOREIGN KEY (cf_codfis) REFERENCES clienti (cl_codfis) )engine=innodb; CREATE TABLE operatori ( op_codope int (6) NOT NULL, op_cognom varchar(50) NOT NULL, PRIMARY KEY (op_codope) )engine=innodb; CREATE TABLE prodotto ( pr_codpro int(6) NOT NULL, pr_descri varchar(50) NOT NULL, pr_marca varchar(30) NOT NULL, pr_quanti int (10) NOT NULL, pr_ticonf varchar(30) NOT NULL, pr_prezzo decimal(10,2) NOT NULL, pr_codfor int(6) NOT NULL, pr_codope int(6) NOT NULL, PRIMARY KEY (pr_codpro), FOREIGN KEY (pr_codope) REFERENCES operatori (op_codope) )engine=innodb; CREATE TABLE acquisti ( ac_codacq int(6) NOT NULL, ac_codfis char(16) NOT NULL, ac_codpro int(6) NOT NULL, ac_descri varchar(50) NOT NULL, ac_prezzo decimal(5,2) NOT NULL, ac_costot decimal(10,2) NOT NULL, 8

ac_datacq date NOT NULL, ac_oraacq time NOT NULL, ac_codcar int(6) NOT NULL, ac_punspe int(10) NOT NULL, ac_quaacq_new int(3) NOT NULL, PRIMARY KEY (ac_codacq), FOREIGN KEY (ac_codfis) REFERENCES clienti (cl_codfis), FOREIGN KEY (ac_codpro) REFERENCES prodotto (pr_codpro), FOREIGN KEY (ac_codcar) REFERENCES carta_fedelta (cf_codcar) ) engine=innodb; Tracciato record Tabella prodotti Nome campo Tipo Descrizione Note Obblig. Pr_codpro stringa Codice del prod. SI Pr_nompro Stringa Nome del SI (varchar) prodotto Pr_preuni decimal Prezzo unitario SI Pr_quanti integer Quantità prodotto SI Tabella acquisti Nome campo Tipo Descrizione Note Obblig. Ac_codacq stringa Codice Auto incremento SI dell acquisto Ac_nompro Stringa Nome del SI (varchar) prodotto Ac_cordpro stringa Codice del SI prodotto Ac_Pretot decimal Prezzo totale SI Ac_Quaacc_new interger Nuova quantità SI 9

Tabella clienti Nome campo Tipo Descrizione Note Obblig. Cl_Id integer Id utente Auto incremento SI Cl_name Stringa Nome utente SI (varchar) Cl_cognome stringa Cognome utente SI Cl_indirizzo stringa Indirizzo utente SI Cl_email varchar e-mai utente SI Cl_user Varchar Username SI (stringa) utente Cl_passwo Varchar Password utente SI Tabella operatori Nome campo Tipo Descrizione Note Obblig. Codope integer Codice primaria SI operatore cognom Stringa (varchar) Cognome operatore SI Tabella carta fedeltà Nome campo Tipo Descrizione Note Obblig. Codcar integer Codice primaria SI operatore totpunti Stringa Cognome SI (varchar) operatore codfiscale stringa Codice fiscale operatore Si 10

Tabella delle variabili Nome $id $name $cognome $email $indirizzo $username $password $codacq $quaacc_new $codpro $pretot $codpro $nompro $preuni $quanti $selezi $db $num $sqlinterr $db_selected $res $num Pagine utenti_2.php utenti_2.php utenti_2.php utenti_2.php utenti_2.php utenti_2.php utenti_2.php acqven_2.php acqven_2.php acqven_2.php acqven_2.php prodotti_2.php prodotti_2.php e acqven_2.php prodotti_2.php prodotti_2.php utenti_a2.php in tutti i programmi in tutti i programmi in tutti i programmi Paginacliente.php Paginacliente.php Paginacliente.php $i Paginacliente.php 11

Questa è la schermata home del sito web: Tabella dei metadati Tabelle Attributi Chiave Formato Lungh. Descrizione Clienti cl_codfis cl_nome cl_cognome cl_email cl_indiri cl_comune cl_user cl_passwo cl_numtel cl_annas cl_sesso Primaria Numerico Carattere Carattere Carattere Carattere Carattere Carattere Carattere Carattere Data/Ora Carattere 16 30 30 50 30 30 30 20 10 4 1 Codice fiscale Nome Cognome Email Indirizzo cliente Località cliente User cliente Password cliente Numero di telefono Anno di nascita cliente Sesso Acquisti ac_codacq ac_codfis ac_codpro ac_descri Primaria Esterna Esterna Carattere Numerico Numerico Carattere 6 16 6 50 Codice acquisto Codice fiscale cliente Codice prodotto Descrizione 12

Prodotti Operatori Carta fedeltà ac_quanti ac_prezzo ac_costot ac_datacq ac_oraacq ac_codcar ac_punspe pr_codpro pr_descri pr_marca pr_ticonf pr_preuni pr_quanti pr_codfor pr_codope op_codope op_cognom ca_codcar ca_codfis ca_totpun Esterna Primaria Esterna Esterna Primaria Primaria Esterna Numerico Numerico Numerico Data/Ora Data/Ora Numerico Numerico Numerico Carattere Carattere Carattere Numerico Numerico Numerico Numerico Numerico Carattere Numerico Carattere Numerico 3 5,2 10,2 6 10 6 50 30310 3 10,2 10 6 6 6 50 6 16 3 Quantità prodotto Prezzo Costo totale Data acquisto Ora acquisto Codice carta Punti spesa Codice del prodotto Nome del prodotto Marca del prodotto Tipo confezione Prezzo unitario Quantità Codice fornitore Codice operatore Codice dell operatore Cognome e nome Codice carta fedeltà Codice fiscale cliente Punti totali Listing sito web Listing annullamento utenti <html> <head> <title>annullamento utenti</title> </head> <body> Selezionare il record da cancellare:<p> <form action="utenti_a2.php" method="post"> <?php // Connessione al database MySQL $db=mysql_connect("localhost","root"); 13

// Creazione della variabile per l'interrogazione $sqlinterr ="select * from utenti "; // Esecuzione dell'interrogazione $res=mysql_db_query("bennet",$sqlinterr); // Numero di record estratti dall'interrogazione $num=mysql_num_rows($res); // Intestazione della tabella echo "<table border='1' align='center'> <tr> <td></td> <td>id</td> <td>name</td> <td>cognome</td> <td>indirizzo</td> <td>e-mail</td> <td>username</td> <td>password</td> </tr>"; // Visualizzazione dei record estratti for ($i=0; $i<$num; $i++) { $ID=mysql_result($res,$i,"ID"); $name=mysql_result($res,$i,"name"); 14

$cognome=mysql_result($res,$i,"cognome"); $indirizzo=mysql_result($res,$i,"indirizzo"); $email=mysql_result($res,$i,"email"); $username=mysql_result($res,$i,"username"); $password=mysql_result($res,$i,"password" ); // Visualizzazione della riga con radio echo "<tr> <td><input type='radio' name='selezi' value='$id'></td>"; echo " <td>$id</td> <td>$name</td> <td>$cognome</td> <td>$indirizzo</td> <td>$email</td> <td>$username</td> <td>$password</td> </tr>"; } // Chiusura della tabella echo "</table>"; // Chiusura del database mysql_close($db);?> 15

<p> <input type="submit" value="cancellare il record"> </form> </body> </html> <html> <head> <title>cancellazione del record utenti selezionato</title> </head> <body> <?php // Inizializzazione delle variabili $selezi=$_post['selezi']; // Controllo che l'utente abbia selezionato il record da cancellare if ($selezi) { // Connessione al database MySQL $db=mysql_connect("localhost", "root"); // Creazione del comando sql di cancellazione $sqlinterr="delete from utenti where"; $sqlinterr.=" ID='$selezi'"; // Invio del comando SQL 16

$res=mysql_db_query("bennet", $sqlinterr); // Risultato della cancellazione $num=mysql_affected_rows(); if ($num>0)echo "Record cancellato<p>"; else echo "Record non cancellato<p>"; // Chiusura database mysql_close($db); } else echo "Non è stato selezionato nessun record<p>";?> <a href="utenti_a1.php">ritorna alla pagina precedente</a><p> </body> </html> Listing visualizzazione utenti <html> <head> <title>consultazione tabella utenti</title> </head> <body bgcolor="brown"><font color="beige"> <?php // Apertura del Database MySQL) 17

$db=mysql_connect("localhost","root"); // Costruzione della variabile da eseguire in SQL $sqlinterr = "select * from utenti "; /* Apertura del DB sito inserito nel Data Base MySQL */ // $db_selected = mysql_select_db('sito', $db); // Esecuzione del comando di interrogazione SQL $res=mysql_db_query("bennet",$sqlinterr); $res=mysql_query($sqlinterr); // N. di record estratti dal comando SQL $num=mysql_num_rows($res); // Costruzione dell'intestazione della tabella echo "<h2><center>consultazione utenti</center></h2>"; echo "<table border='3' align='center'> <tr> <td>id</td> <td>nome</td> <td>cognome</td> <td>email</td> <td>indirizzo</td> <td>username</td> <td>password</td> 18

</tr>"; // Visualizzazione del contenuto dei record trovati for ($i=0;$i<$num;$i++) { $ID=mysql_result($res,$i,"ID"); $name=mysql_result($res,$i,"name"); $cognome=mysql_result($res,$i,"cognome"); $email=mysql_result($res,$i,"email"); $indirizzo=mysql_result($res,$i,"indirizzo"); $username=mysql_result($res,$i,"username"); $password=mysql_result($res,$i,"password" ); // Visualizzazione dei dati letti echo "<tr> <td>$id</td> <td>$name</td> <td>$cognome</td> <td>$email</td> <td>$indirizzo</td> <td>$username</td> <td>$password</td> </tr>"; } // Chiusura della tabella 19

echo "</table>"; // Chiusura del Data Base MySQL mysql_close($db);?> </body> </html> Listing inserimento utenti <html> <head> <title>inserimento utenti</title> </head> <body bgcolor="brown"><font color="beige"> <?php echo "<h3>inserire i dati dell'utente e inviare il form</h3>"; echo "<form action='utenti_2.php' method='post'>"; echo "<input name='name' size='30' maxlength='30'>nome cliente<br>"; echo "<input name='cognome' size='30' maxlength='30'>cognome cliente<br>"; echo "<input name='indirizzo' size='30' maxlength='200'>via cliente<br>"; echo "<input name='email' size='30' maxlength='100'>email cliente<p>"; echo "<input name='username' size='30' maxlength='12'>username<p>"; 20

echo "<input name='password' size='30' maxlength='12'>password<p>"; echo "<input type='submit' value='invia'>"; echo "<input type='reset' value='cancella'>"; echo "</form>";?> </body> </html> <html> <head> <title>inserimento utenti</title> </head> <body bgcolor="brown"><font color="beige"> <?php // Inizializzazione delle variabili $name=$_post['name']; $cognome=$_post['cognome']; $email=$_post['email']; $indirizzo=$_post['indirizzo']; $username=$_post['username']; $password=$_post['password']; 21

// Connessione al DB MYSQL $db=mysql_connect("localhost","root"); // Creazione del comando SQL per l'inserimento dei dati $sqlinter = "insert utenti"; $sqlinter.= "(username, password, name, cognome, indirizzo, email)"; $sqlinter.= " values "; $sqlinter.= "('$username', '$password', '$name', '$cognome', '$email','$indirizzo')"; // Invio dei dati alla tabella attori del db sito mysql_db_query("bennet", $sqlinter); // Verifica che i dati siano stati inseriti correttamente $num=mysql_affected_rows(); // Controllo che il record sia stato inserito if ($num>0) echo "Nuovo record inserito correttamente.<p>"; else echo "ERRORE!!! Record non inserito<p>"; // Chiusura del database mysql_close($db); // Invio alla pagina di digitazione dati echo "Ritorno alla pagina <a href='utenti_1.php'><font color='yellow'>utenti</a>";?> </body> </html> Listing modifica utenti 22

<html> <head> <title>modifica tabella utenti</title> </head> <body> <?php echo "<h2><center>selezionare il record da modificare</center></h2>"; echo "<form action='utenti_m2.php' method='post'>"; // Connessione al DB MySQL $db=mysql_connect("localhost","root"); /* Costruzione della variabile $sqlinterr per la visualizzazione dei record */ $sqlinterr = "select * from utenti"; // Esecuzione del comando di interrogazione $sqlinterr $res=mysql_db_query("bennet",$sqlinterr); $num=mysql_num_rows($res); // Inizio della tabella echo "<table border='1' align='center'>"; // Titolo echo "<tr> <td>id</td> <td>username</td> 23

<td>password</td> <td>nome</td> <td>cognome</td> <td>email</td> <td>indirizzo</td> </tr>"; // Estrapolazione dei valori degli attributi for ($i=0;$i<$num;$i++) { $ID=mysql_result($res,$i,"ID"); $username=mysql_result($res,$i,"username"); $password=mysql_result($res,$i,"password" ); $name=mysql_result($res,$i,"name"); $cognome=mysql_result($res,$i,"cognome"); $email=mysql_result($res,$i,"email"); $indirizzo=mysql_result($res,$i,"indirizzo"); // Visualizzazione degli attributi in tabella echo "<tr> <td><input type='radio' name='selezi' value='$id'></td> <td>$id</td> <td>$username</td> <td>$password</td> <td>$name</td> 24

<td>$cognome</td> <td>$email</td> <td>$indirizzo</td> </tr>"; } echo "</table>"; // Chiusura del DB MySQL mysql_close($db); // Bottone per l'invio dei dati a utenti_m2.php echo "<p><center><input type='submit' value='record da modificare'></center>"; echo "</form>";?> </body> </html> <html> <head> <title>modifica tabella utenti</title> </head> <body> <?php 25

// Definizione delle variabili $selezi=$_post['selezi']; if ($selezi) { // Connessione al DB MySQL $db=mysql_connect("localhost","root"); /* Costruzione della variabile $sqlinterr per la visualizzazione dei record */ $sqlinterr = "select * from utenti "; $sqlinterr.= "where utenti.id='$selezi'"; // Esecuzione del comando select $res=mysql_db_query("bennet",$sqlinterr); //$num=mysql_num_rows($res); // Lettura del contenuto del record trovato $ID_old=mysql_result($res,0,"ID"); $username_old=mysql_result($res,0,"username" ); $password_old=mysql_result($res,0,"password"); $name_old=mysql_result($res,0,"name"); $cognome_old=mysql_result($res,0,"cognome"); $email_old=mysql_result($res,0,"email"); $indirizzo_old=mysql_result($res,0,"indirizzo"); // Creazione della mappa a video per la modifica echo "<h3><center>gestione utenti: modifica</center></h3><p>"; 26

echo "<form action='utenti_m3.php' method='post'>"; echo "<input name='id_new' value='$id_old'> ID<br>"; echo "<input name='username_new' value='$username_old'> Username<br>"; echo "<input name='password_new' value='$password_old'> Password<br>"; echo "<input name='name_new' value='$name_old'>nome cliente<p>"; echo "<input name='cognome_new' value='$cognome_old'> Cognome cliente<p>"; echo "<input name='email_new' value='$email_old'> Email<p>"; echo "<input name='indirizzo_new' value='$indirizzo_old'> Indirizzo<p>"; echo "<input type='hidden' name='id' value='$selezi'>"; echo "<input type='submit' value='modifica'> "; echo "<input type='reset' value='cancella'>"; echo "</form>"; // Chiusura del DB MySQL mysql_close($db); } else echo "ERRORE!!! Selezionare un utente...";?> </body> </html> <html> <head> 27

<title>modifica tabella utenti</title> </head> <body> <?php // Inizializzazione delle variabili $ID_new=$_POST['ID_new']; $username_new=$_post['username_new']; $password_new=$_post['password_new']; $name_new=$_post['name_new']; $cognome_new=$_post['cognome_new']; $email_new=$_post['email_new']; $indirizzo_new=$_post['indirizzo_new']; $ID=$_POST['id']; // Connessione al DB MySQL $db=mysql_connect("localhost","root"); /* Costruzione della variabile $sqlinterr per la modifica del record selezionato */ $sqlinterr.= "update utenti set "; $sqlinterr.=" ID='$ID_new',"; $sqlinterr.=" name='$name_new' "; $sqlinterr.=" cognome='$cognome_new' "; $sqlinterr.=" email='$email_new' "; 28

$sqlinterr.=" indirizzo='$indirizzo_new' "; $sqlinterr.=" username='$username_new',"; $sqlinterr.=" password='$password_new',"; $sqlinterr.= "where ID='$ID'"; // Esecuzione del comando $sqlinterr mysql_db_query("bennet",$sqlinterr); // N. di record soggetti alla modifica $num = mysql_affected_rows(); // Se il record è stato trovato viene modificato. if ($num>0) echo "Record modificato.<p>"; else echo "ERRORE!!! Record non modificato.<p>"; // Chiusura del DB MySQL mysql_close($db);?> </body> </html> Listing acquisti e vendite <?php echo "<body bgcolor='brown'><font face color='beige'><h2>inserire i dati relativi agli acquisti e alle vendite</h2>"; echo "<form action='acqven_2.php' method='post'>"; 29

echo "Nome prodotto<br><input name='nompro' size='30' maxlength='30'><p>"; echo "Codice prodotto <br><input name='codpro' size='6' maxlength='6'><p>"; echo "Costo complessivo<br> <input name='pretot' size='12' maxlength='12'><p>"; echo "Quantità acquistata<br> <input name='quaacc_new' size='3' maxlength='3'><p>"; echo "<input type='submit' value='invia'>"; echo "<input type='reset' value='cancella'>"; echo "</center>"; echo "</form>"; echo "</font>";?> Listing prodotti_1.php <?php echo "<body bgcolor='brown'> <font color='beige'>"; echo "<h2>inserire i dati dei prodotti e inviare il form</h2>"; echo "<form action='prodotti_2.php' method='post'>"; echo "Codice prodotto<br> <input name='codpro' size='6' maxlength='6'><p>"; echo "Nome prodotto<br> <input name='nompro' size='20' maxlength='20'><p>"; echo "Prezzo unitario<br> <input name='preuni' size='5,2' maxlength='5,2'><p>"; echo "Quantità <br><input name='quanti' size='3' maxlength='3'><p>"; echo "<input type='submit' value='invia'>"; 30

echo "<input type='reset' value='cancella'>"; echo "</form>";?> Listing prodotti_2.php <?php echo "<body bgcolor='brown'> <font color='beige'>"; // Inizializzazione delle variabili $codpro=$_post['codpro']; $nompro=$_post['nompro']; $preuni=$_post['preuni']; $quanti=$_post['quanti']; // Connessione al DB MYSQL $db=mysql_connect("localhost","root"); // Creazione del comando SQL per l'inserimento dei dati $sqlinter = "insert prodotti"; $sqlinter.= "(codpro, nompro, preuni, quanti)"; $sqlinter.= " values "; $sqlinter.= "('$codpro', '$nompro', '$preuni', '$quanti')"; // Invio dei dati alla tabella attori del db sito mysql_db_query("bennet", $sqlinter); // Verifica che i dati siano stati inseriti correttamente $num=mysql_affected_rows(); 31

// Controllo che il record sia stato inserito if ($num>0) echo "<h3>nuovo record inserito correttamente!!</h3><p>"; else echo "<h3>errore!!! Record non inserito</h3><p>"; // Chiusura del database mysql_close($db);?> Listing prodotti_a1.php <html> <title></title> <body bgcolor="brown"> <font color="beige"> <h2>selezionare il record da cancellare</h2><p> <form action="prodotti_a2.php" method="post"> <?php echo "<body bgcolor='brown'> <font color='beige'></font>"; // Connessione al database MySQL $db=mysql_connect("localhost","root"); // Creazione della variabile per l'interrogazione $sqlinterr ="select * from prodotti "; // Esecuzione dell'interrogazione 32

$res=mysql_db_query("bennet",$sqlinterr); // Numero di record estratti dall'interrogazione $num=mysql_num_rows($res); // Intestazione della tabella echo "<table border='1'> <tr> <td>selezione</td> <td>codice prodotto</td> <td>nome prodotto</td> <td>prezzo unitario</td> <td>quantità</td> </tr>"; // Visualizzazione dei record estratti for ($i=0; $i<$num; $i++) { $codpro=mysql_result($res,$i,"codpro"); $nompro=mysql_result($res,$i,"nompro"); $preuni=mysql_result($res,$i,"preuni"); $quanti=mysql_result($res,$i,"quanti"); // Visualizzazione della riga con radio echo "<tr> <td><input type='radio' name='selezi' value='$codpro'></td>"; echo " <td>$codpro</td> 33

<td>$nompro</td> <td>$preuni</td> <td>$quanti</td> </tr>"; } // Chiusura della tabella echo "</table>"; // Chiusura del database mysql_close($db);?> <p> <input type="submit" value="cancellare il record"><p> </form> </div> </div> </div> <div id="footer"> </div> </font> </body> </html> Listing prodotti_a2.php 34

<?php echo "<h3><body bgcolor='brown'> <font color='beige'>"; // Inizializzazione delle variabili $selezi=$_post['selezi']; // Controllo che l'utente abbia selezionato il record da cancellare if ($selezi) { // Connessione al database MySQL $db=mysql_connect("localhost", "root"); // Creazione del comando sql di cancellazione $sqlinterr="delete from prodotti where"; $sqlinterr.=" codpro='$selezi'"; // Invio del comando SQL $res=mysql_db_query("bennet", $sqlinterr); // Risultato della cancellazione $num=mysql_affected_rows(); if ($num>0)echo "Record cancellato!!<p>"; else echo "Record non cancellato.<p>"; // Chiusura database mysql_close($db); } else echo "Non è stato selezionato nessun record.</h3><p>"; 35

?> Listing prodotti_m1.php <?php echo "<body bgcolor='brown'> <font color='beige'>"; echo "<h2><center>seleziona il record da modificare</center></h2>"; echo "<form action='prodotti_m2.php' method='post'>"; // Connessione al DB MySQL $db=mysql_connect("localhost","root"); /* Costruzione della variabile $sqlinterr per la visualizzazione dei record */ $sqlinterr = "select * from prodotti"; // Esecuzione del comando di interrogazione $sqlinter $res=mysql_db_query("bennet",$sqlinterr); $num=mysql_num_rows($res); // Inizio della tabella echo "<table border='1' align='center'>"; // Titolo echo "<tr> <td>selezione</td> <td>codice prodotto</td> <td>nome prodotto</td> 36

<td>prezzo unitario</td> <td>quantità</td> </tr>"; // Estrapolazione dei valori degli attributi for ($i=0;$i<$num;$i++) { $codpro=mysql_result($res,$i,"codpro"); $nompro=mysql_result($res,$i,"nompro"); $preuni=mysql_result($res,$i,"preuni"); $quanti=mysql_result($res,$i,"quanti"); // Visualizzazione degli attributi in tabella echo "<tr> name='selezi' value='$codpro'></td> <td><input type='radio' <td>$codpro</td> <td>$nompro</td> <td>$preuni</td> <td>$quanti</td> </tr>"; } echo "</table>"; echo"</font>"; // Chiusura del DB MySQL mysql_close($db); 37

// Bottone per l'invio dei dati a utenti_m2.php modificare'></center><p>"; echo "<p><center><input type='submit' value='record da echo "</form>";?> </div> </div> </div> <div id="footer"> </div> </body> </html> Listing prodotti m2.php <?php echo "<body bgcolor='brown'> <font color='beige'>"; // Definizione delle variabili $selezi=$_post['selezi']; if ($selezi) { // Connessione al DB MySQL $db=mysql_connect("localhost","root"); /* Costruzione della variabile $sqlinterr per la visualizzazione dei record */ 38

$sqlinterr = "select * from prodotti "; $sqlinterr.= "where prodotti.codpro='$selezi'"; // Esecuzione del comando select $res=mysql_db_query("bennet",$sqlinterr); //$num=mysql_num_rows($res); // Lettura del contenuto del record trovato $codpro_old=mysql_result($res,0,"codpro"); $nompro_old=mysql_result($res,0,"nompro"); $preuni_old=mysql_result($res,0,"preuni"); $quanti_old=mysql_result($res,0,"quanti"); // Creazione della mappa a video per la modifica echo "<h3><center>modifica prodotti</center></h3><p>"; echo "<form action='prodotti_m3.php' method='post'>"; echo "Codice prodotto<br><input name='codpro_new' value='$codpro_old'><p>"; echo "Nome prodotto<br><input name='nompro_new' value='$nompro_old'><p>"; echo "Prezzo unitario<br><input name='preuni_new' value='$preuni_old'><p>"; echo "Quantità<br><input name='quanti_new' value='$quanti_old'><p>"; echo "<input type='hidden' name='codprodotto' value='$selezi'>"; echo "<input type='submit' value='modifica'> "; 39

echo "<input type='reset' value='cancella'>"; echo "</form>"; // Chiusura del DB MySQL mysql_close($db); } else echo "ERRORE!!! Selezionare un utente...<p>";?> Listing prodotti_m3.php <?php echo "<body bgcolor='brown'> <font color='beige'>"; // Inizializzazione delle variabili $codpro_new=$_post['codpro_new']; $nompro_new=$_post['nompro_new']; $preuni_new=$_post['preuni_new']; $quanti_new=$_post['quanti_new']; $codprodotto=$_post['codprodotto']; // Connessione al DB MySQL $db=mysql_connect("localhost", "root"); /* Costruzione della variabile $sqlinterr per la modifica del record selezionato */ $sqlinterr = "update prodotti set "; 40

$sqlinterr.="codpro='$codpro_new',"; $sqlinterr.="nompro='$nompro_new',"; $sqlinterr.="preuni='$preuni_new',"; $sqlinterr.="quanti='$quanti_new' "; $sqlinterr.= "where codpro='$codprodotto'"; // Esecuzione del comando $sqlinterr mysql_db_query("bennet", $sqlinterr); // N. di record soggetti alla modifica $num = mysql_affected_rows(); // Se il record è stato trovato viene modificato. if ($num>0) echo "Record modificato.<p>"; else echo "<h3>errore!! Record non modificato.</h3><p>"; // Chiusura del DB MySQL mysql_close($db);?> Listing prodotti_q1.php <?php echo "<body bgcolor='brown'> <font color='beige'><h2>visualizzazione prodotti in magazzino</h2>"; // Apertura del Database MySQL) $db=mysql_connect("localhost","root"); 41

// Costruzione della variabile da eseguire in SQL $sqlinterr = "select * from prodotti "; /* Apertura del DB sito inserito nel DataBase MySQL */ // $db_selected = mysql_select_db('sito', $db); // Esecuzione del comando di interrogazione SQL $res=mysql_db_query("bennet",$sqlinterr); $res=mysql_query($sqlinterr); // N. di record estratti dal comando SQL $num=mysql_num_rows($res); // Costruzione dell'intestazione della tabella //echo "<h2><center>consultazione prodotti</center></h2>"; echo "<table border='1' > <tr> <td>codice prodotto</td> <td>nome prodotto</td> <td>prezzo unitario</td> <td>quantità</td> </tr>"; // Visualizzazione del contenuto dei record trovati for ($i=0;$i<$num;$i++) { $codpro=mysql_result($res,$i,"codpro"); 42

$nompro=mysql_result($res,$i,"nompro"); $preuni=mysql_result($res,$i,"preuni"); $quanti=mysql_result($res,$i,"quanti"); // Visualizzazione dei dati letti echo "<tr> <td>$codpro</td> <td>$nompro</td> <td>$preuni</td> <td>$quanti</td> </tr>"; } // Chiusura della tabella echo "</table>"; // Chiusura del DataBase MySQL mysql_close($db);?> P.s: per i clienti le pagine php hanno la stessa struttura, ma cambiano le variabili Listing Carrello Listing paginacliente.php 43

<?php // Apertura del Database MySQL $db=mysql_connect("localhost","root"); // Costruzione della variabile da eseguire in SQL $sqlinterr = "select * from prodotti "; /* Apertura del DB proiezioni05 inserito nel DataBase MySQL */ $db_selected = mysql_select_db('bennet', $db); // Esecuzione del comando di interrogazione SQL $res=mysql_query($sqlinterr); // N. di record estratti dal comando SQL $num=mysql_num_rows($res); //Intestazione della tabella echo "<table border='1'> <tr> <td><center><b><font color='beige'>selezione</center></b></td> <td><center><b><b><font color='beige'><font color='beige'>codice prodotto</center></b></td> <td><center><b><b><font color='beige'>nome prodotto</center></b></td> <td><center><b><b><font color='beige'>prezzo unitario</center></b></td> <td><center><b><b><font color='beige'>quantità</center></b></td> </tr>"; //Visualizzazione dei record estratti for($i=0;$i<$num;$i++) { $codpro=mysql_result($res,$i,"codpro"); $nompro=mysql_result($res,$i,"nompro"); 44

$preuni=mysql_result($res,$i,"preuni"); $quanti=mysql_result($res,$i,"quanti"); // Visualizzazione della riga con radio echo "<tr> <td><center></center><input type='radio' name='selezi' value='$codpro'></td> <td><center>$codpro</center></td> <td><center>$nompro</center></td> <td><center>$preuni</center></td> <td><center>$quanti</center></td> </tr>"; } //Chiusura della tabella echo "</table></center>"; echo "<p><input type='submit' value='acquista'>"; // Chiusura del DataBase MySQL mysql_close($db);?> Listing paginacliente2.php <?php // Definizione delle variabili $selezi=$_post['selezi']; if ($selezi) { // Connessione al DB MySQL $db=mysql_connect("localhost","root",""); /* Costruzione della variabile $sqlinterr per la visualizzazione dei record */ 45

$sqlinterr = "select * from prodotti "; $sqlinterr.= "where codpro='$selezi'"; // Esecuzione del comando select $res=mysql_db_query("bennet",$sqlinterr); // $num=mysql_num_rows($res); // Lettura del contenuto del record trovato $codpro_old=mysql_result($res,0,"codpro"); $nompro_old=mysql_result($res,0,"nompro"); $preuni_old=mysql_result($res,0,"preuni"); $quanti_old=mysql_result($res,0,"quanti"); // Creazione della mappa a video per la modifica echo "<center><form action='paginacliente3.php' method='post'>"; echo "<table border='1'> <tr> <td><font color=white>codice prodotto</font></td> <td><font color=white>nome prodotto</font></td> <td><font color=white>prezzo unitario</font></td> <td><font color=white>quantità da acquistare</font></td> <td><font color=white>quantità residua</font></td> </tr> <tr> <td><font color=white>$codpro_old</font></td> <td><font color=white>$nompro_old</font></td> <td><font color=white>$preuni_old</font></td> <td><br><center><input name='quaacc_new' value='1' maxlenght='4'></center></td> <td><font color=white>$quanti_old</font></td> </tr> </table> <input type='hidden' name='codacc' value='$selezi'> <input type='hidden' name='quaacc' value='$quanti_old'> <input type='hidden' name='nom' value='$nompro_old'> <input type='hidden' name='pre' value='$preuni_old'> <input type='submit' value=' Acquista '> <input type='reset' value='cancella'> </font></center>"; 46

// Chiusura del DB MySQL mysql_close($db); } else echo "ERRORE!!! Selezionare un utente...";?> Listing paginacliente2.php <?php // Inizializzazione delle variabili $quaacc_new=$_post['quaacc_new']; $quaacc=$_post['quaacc']; $codacc=$_post['codacc']; $nom=$_post['nom']; $pre=$_post['pre']; // Connessione al DB MySQL $db=mysql_connect("localhost","root",""); /* Costruzione della variabile $sqlinterr per la modifica del record selezionato */ $ris=$quaacc-$quaacc_new; $sqlinterr =" UPDATE prodotti set quanti='$ris' "; $sqlinterr.= "where codpro='$codacc'"; // Esecuzione del comando $sqlinterr mysql_db_query("bennet",$sqlinterr); // N. di record soggetti alla modifica 47

$num = mysql_affected_rows(); // Se il record ï ½ stato trovato viene modificato. if ($num>0) echo "<font face='comics sans MS' color=green size=3><font color='beige'>acquisto effettuato!!<p>"; else echo"<br><font color='beige'>acquisto non effettuato.<br>"; //moltiploca $pretot=$quaacc_new*$pre; echo"<font color='beige'>prezzo totale: $pretot<br>"; // Creazione del comando SQL per l'inserimento dei dati $sqlinter = "insert into acquistivendite"; $sqlinter.= "(nompro, codpro, pretot, quaacc_new)"; $sqlinter.= " values "; $sqlinter.= "('$nom', '$codacc', '$pretot', '$quaacc_new')"; // Invio dei dati alla tabella attori del db sito mysql_db_query("bennet", $sqlinter); // Verifica che i dati siano stati inseriti correttamente $num=mysql_affected_rows(); // Controllo che il record sia stato inserito if ($num>0) echo "Registrazione dell'acquisto avvenuta correttamente."; else 48

echo "ERRORE!!! Record non inserito<p>";?> Spiegazione del programma cliente: il cliente ha la possibilità di visualizzare tutti i prodotti, di registrarsi al sito inserendo i propri dati e, una volta effettuata la login utente, di acquistare i prodotti desiderati. amministratore: l amministratore gestisce tutte le tabelle attraverso un area protetta in cui egli può accedere attraverso un username e una password. Può inserire, modificare, cancellare e visualizzare tutti i dati contenuti all interno del database. login: consente all utente di accedere alla parte del sito che può essere visualizzata soltanto da chi è già registrato, attraverso l username e la password scelti al momento della registrazione. Questo programma controlla se il nome utente e la password sono corretti. Se sono corretti visualizza la pagina successiva del sito, altrimenti segnala che sono stati inseriti in modo errato. carta fedeltà: la carta fedeltà permette ai clienti registrati di ottenere un certo numero di punti a ogni acquisto effettuato e di accumularli all interno di questa per poi poter accedere ai servizi punti offerti dall azienda. Descrizione della fase di installazione del programma Web server utilizzato: Xampp. Sistema operatico: Windows xp/windows 7 Prompt dei comandi Il programma è stato realizzato con Nvu, successivamente testato con Xampp(web server), e infine pubblicato sul sito Altervista. Per gestire il database senza utilizzare il web c è bisogno del prompt dei comandi (sql). MANUALE D USO XAMPP Scarichiamo XAMPP e clicchiamoci due volte sopra per avviare l installazione 49

Selezioniamo la lingua e premiamo OK Si presenterà questa finestra di benvenuto. Clicchiamo su Next 50

Scegliamo dove installare XAMP e premiamo su Next In questa schermata ci verrà chiesto cosa vogliamo installare 51

Selezioniamo ciò che ci serve e premiamo su Install Inizierà l installazione con l estrazione dei file necessari all utilizzo di XAMPP 52

Una volta terminato premiamo su Finish 53

Si aprirà la schermata della configurazione dei servizi Dopo l installazione dei servizi premiamo su Ok Ci verrà chiesto se vogliamo avviare il pannello di controllo di XAMPP, premiamo su SI Il pannello di XAMPP si presenterà come segue 54

I programmi, per farli eseguire, bisogna salvarli prima all interno di una cartella specifica (xampp): C:\xampp\htdocs\php Poi bisogna aprire il browser (explorer, mozilla ecc..) e digiatare come indirizzo: http://localhost/php/ Oppure digitare quest altro indirizzo: http://127.0.0.1/xampp/ Infine cliccare sul file da eseguire, e apparirà a video il risultato del file (php). Manuale d uso xampp in inglese basic manual First of all install the XAMPP web server by following these instructions: Download XAMPP and double click on it to start the installation, select the language and click OK, click Next to open the Welcome window, choose where to install XAMPP and press Next, then a screen will appear that will ask us what we want to install and press Next, select what we need and click Install. At this point the installation will start extracting the files needed to use XAMPP, once the installation screen appears press Finish. For 55

completed the installation of services, press OK, then press Yes the request of the goodwill of the XAMPP control panel. In the first form page you will find the form that will allow you to register on the site, registration will require a password used to access the shopping cart then in javascript or php. You can then access your cart in javascripwhere you can click on any product you desire and make an online spending. With the same procedure you can log on to our shopping cart in php, simplified version of empty city, where you can do your shopping online. Manuale di istallazione del database su Altervista Per pubblicare il sito web su alter vista bisogna semplicemente registrarsi su alter vista.org e poi inviare tutte le pagine o file di vario tipo all interno dell area di gestione dei file. Una volta inserite tutte le pagine all interno di questo spazio bisognerà configurare il database: -cliccare su database e cambiare per ogni pagina php di gestione del database l username e il nome del databse che alter vista ti evidenzia chiaramente in giallo. Dopo aver fatto ciò per tutte le pagine php, bisognerà importare il file di creazione del database (in formato txt) su alter vista. Quindi accedere su phpmyadmin (sempre su database) e seguire le procedure di importazione del database. Dopo di che il il sito web sarà perfettamente funzionante e reso pubblico a tutti. Parte didattica tecnica Che cos è un database? In informatica, il termine database o base di dati, indica un archivio dati, o un insieme di archivi, in cui le informazioni in esso contenute sono strutturate e collegate tra loro secondo un particolare modello logico (relazionale, gerarchico, reticolare o a oggetti) e in modo tale da consentire la gestione/organizzazione efficiente dei dati stessi grazie a particolari applicazioni software dedicate (DBMS), basate su un'architettura di tipo client-server, e ai cosiddetti query language per l'interfacciamento con le richieste dell'utente. Differenza tra MyIsam e InnoDb MyIsam: Sono le tabelle "storiche" di MySQL. Hanno fatto il loro successo grazie alle ottime performace e al ridotto carico sul server che necessitano. Purtroppò però mancano di alcune caratteristiche molto importanti nelle basi di dati; primo fra tutte il mancato supporto alle foreign key (chiavi 56

esterne), grazie alle quali è possibile creare relazioni tra tabelle e applicare il concetto di integrità referenziale. Mancano inoltre del supporto alle transazioni. Mancando il supporto alle transazioni e alle foreign keys solitamente non sono adatte per realizzare sistemi di commercio elettronico o altre applicazioni enterprise. InnoDb: Sono tabelle molto più complete rispetto alle MyISAM ma si sono fatte la nomina di essere più lente a causa delle funzionalità aggiuntive di cui dispongono. Vorrei fermarmi un attimo proprio su questa questione delle performance: ritengo che al giorno d'oggi la differenza reale di prestazioni tra MyISAM e InnoDB sia divenuta veramente minima. Tra le caratteristiche a loro vantaggio, invece, vi sono le foreign key e la transazionalità, con le quali è possibile creare una base di dati relazionale e transazionale. Per trasferire questo tipo di tabelle da un server ad un altro non è sufficiente spostarne i file e questo rende più complicate le procedure di backup. Questo tipo di tabelle, inoltre, non sono sempre disponibili negli hosting economici. Che cos è un server web? Un server web è un servizio o tipologia di server, e per estensione il computer su cui è in esecuzione, che si occupa di fornire, tramite software dedicato e su richiesta dell'utente (client), file di qualsiasi tipo, tra cui pagine web (successivamente visualizzabili dal web browser sul PC dell'utente). Le informazioni inviate dal server web all'utente viaggiano in rete trasportate dal protocollo HTTP. Differenza tra pagine statiche e dinamiche. Le pagine statiche sono dei file in codice HTML che descrivono testi da impaginare, grafica e immagini. Quando l utente di un sito visita una pagina, ciò che avviene è che il server su cui risiede il sito invia al browser (il programma che utilizzato per navigare, ad esempio Microsoft Explorer) il file HTML; il browser sa decodificare il file, e quindi mostra i contenuti della pagina sullo schermo dell utente. Le pagine dinamiche, invece che contenere il codice HTML (o meglio invece di contenere solo quello) contengono programmi per il server; questo li esegue e quindi scrive il codice HTML da inviare al browser (che quindi non è preesistente come nella pagina statica). In altre parole, il contenuto della pagina non è deciso a priori ma può variare in base a condizioni di vario genere. Vantaggi: 57

Le pagine realizzate dinamicamente possono aumentare le funzionalità dei siti. L'utilizzo risulta particolarmente indicato quando si richiede un aggiornamento costante e rapido. Pensate ad esempio a rassegne stampa o cataloghi di prodotti; realizzarli staticamente significherebbe creare singole pagine per ogni elemento con costi elevatissimi e tempi prolungati. Che cos è MySQL? È un tipo di DBMS client server, cioè che consente l utilizzo della rete nella gestione dei dati, permettendo quindi di condividerli. È composto da un client, che inoltra le richieste al server; il server risponde alle richieste del client effettuando, per esempio, ricerche e fornendo i risultati. Che cos è il php? PHPè un linguaggio di programmazione interpretato, originariamente concepito per la programmazione Web ovvero la realizzazione di pagine web dinamiche. L'interprete ha una licenza open source e libera. Attualmente è utilizzato principalmente per sviluppare applicazioni web lato server ma può essere usato anche per scrivere script a riga di comando o applicazioni stand-alone con interfaccia grafica. 58