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

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

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

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

LA GESTIONE DELLE VISITE CLIENTI VIA WEB

Volumi di riferimento

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

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

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

MagiCum S.r.l. Progetto Inno-School

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

Guida alla registrazione on-line di un DataLogger

MANUALE PARCELLA FACILE PLUS INDICE

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

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

Abilità Informatiche A.A. 2010/2011 Lezione 9: Query Maschere Report. Facoltà di Lingue e Letterature Straniere

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

SOSEBI PAPERMAP2 MODULO WEB MANUALE DELL UTENTE

La VPN con il FRITZ!Box Parte I. La VPN con il FRITZ!Box Parte I

Guida all installazione di Easy

2.1 Installazione e configurazione LMS [4]

Che cos'è un modulo? pulsanti di opzione caselle di controllo caselle di riepilogo

Direzione Centrale per le Politiche dell Immigrazione e dell Asilo

BMSO1001. Virtual Configurator. Istruzioni d uso 02/10-01 PC

e/fiscali - Rel e/fiscali Installazione

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

Presentazione Data Base

Sistema Informativo Gestione Fidelizzazione Clienti MANUALE D USO

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

FIRESHOP.NET. Utilizzare il FireSoft. Rev

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

Installazione di GFI Network Server Monitor

Manuale d uso software Gestione Documenti

Manuale di utilizzo del sito ASUWEB

Guida all installazione e configurazione di Joomla 1.5

MySQL Database Management System

Il web server Apache Lezione n. 3. Introduzione

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

LINEA UP Installazione aggiornamento da Dynet Web

ITI M. FARADAY Programmazione modulare a.s

Manuale per la configurazione di AziendaSoft in rete

RELAZIONE PROGETTO DATABASE GESTIONE BIBLIOTECA PERSONALE

Manuale Utente Amministrazione Trasparente GA

PORTALE CLIENTI Manuale utente

Manuale Utente Albo Pretorio GA

SOGI s.n.c. di Matteo Bruschetta & Nicola Pippa

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

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

Uso delle basi di dati DBMS. Cos è un database. DataBase. Esempi di database

Introduzione a phpmyadmin

developed by Emanuele De Carlo

Manuale Gestore. Utilizzo Programma. Magazzino

APPENDICE LINEE GUIDA PER SPERIMENTAZIONE WEB

CIRCOLARE 730/2015 N. 1 MAGGIO 2015 SOFTWARE FISCALI CAF 2015

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

Database e reti. Piero Gallo Pasquale Sirsi

CAPITOLO 1 PREREQUISITI DI INSTALLAZIONE SOFTWARE RICAMBI CAPITOLO 2 PROCEDURA

ImporterONE Export Plugin Magento

PIATTAFORMA DOCUMENTALE CRG

Una metodologia di progettazione di applicazioni web centrate sui dati

Raggruppamenti Conti Movimenti

Progettazione Web Applicazioni client-server

Obiettivo dell esercitazione

INDICI. Prevediamo di effettuare spesso interrogazioni simili alle seguenti:

Configurazione avanzata di XAMPP

Corso di Informatica. Prerequisiti. Modulo T3 B3 Programmazione lato server. Architettura client/server Conoscenze generali sui database

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

Internet Wireless in Biblioteca

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

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

Amministrare MySQL con PhpMyAdmin

Dispensa di database Access

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

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

Versione 1.1. ultima revisione febbraio Ital Soft Software Production s.r.l. ITALSOFT.

Product Updater Scaricamento e Installazione aggiornamento

Sito web parrocchiale: STRUMENTI E PROGRAMMI

MANUALE UTENTE Fiscali Free

Manuale d uso Software di parcellazione per commercialisti Ver [05/01/2015]

01/05/2013 Istruzioni per l installazione

GCEWEB Denunce mensili in WEB

Corso Creare Siti WEB

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

DBMS (Data Base Management System)

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

Транскрипт:

RELAZIONE E-COMMERCE di Jessica Gregoire Istituto Tecnico Economico Agostino Bassi Anno scolastico 2012/2013 1

INDICE Traccia del problema : pagina 2 Analisi di massima: pagina 2 Analisi al dettaglio: pagina 2 Modello ER: pagina 3 Creazione del database: pagina 3 Tracciato record: pagina 5 Listing sito web :pagina 7 Manuale d istallazione di xampp: pagina 26 Parte tecnica di definizioni: pagina 31 2

Analisi Mercurio Market di Jessica Gregoire 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. Analisi di massima Il sito web consente di gestire la tabella dei relativa ai dati dei clienti, la tabella dei prodotti e le operazioni di aggiornamento sia sui dati dei clienti che sui prodotti. Sul carrello possono essere svolte operazioni di aggiornamento quali: modifica, cancellazione e visualizzazione. Le specifiche per la creazione del file di testo sono: I dati che riguardano la registrazione: sono i dati che il cliente inserirà negli appositi campi di tipo testo. La password e l'email serviranno successivamente per effettuare il log in e poter ordinare sul nostro carrello online. Dati che riguardano il log in: riguardano i dati relativi a password e username che il cliente ci fornisce al momento della registrazione e che utilizzerà successivamente per l accesso ai nostri servizi. Il carrello: consiste nella tabella che contiene i dati relativi ai prodotti che forniamo. La gestione del database, quindi, permette di controllare i prodotti del ipermercato e le registrazioni degli utenti. Oltre a ciò il sito è fornito di un impianto web che permette ai clienti, oltre che agli amministratori, dell'ipermercato di gestire le operazione di vendita e acquisto attraverso il carrello online. Analisi al dettaglio Il sito web permette al cliente di accedere all area clienti mediante la registrazione che si deve effettuare per poter accedere ai nostri servizi. Ciò è possibile attraverso un form che è disponibile su ogni pagina del sito per permettere in qualunque momento la registrazione. Dopo essersi registrato il cliente potrà accedere nel carrello online e comprare i prodotti disponibili in magazzino. Una volta effettuato l acquisto il cliente potrà visualizzare il prezzo totale e le modalità di pagamento con cui saldare. 3

Il sito dispone inoltre di un area riservata a cui possono accedere solo gli amministratori per le operazioni di gestione del database. Gli amministratori potranno effettuare il proprio login inserendo il proprio username e la propria password. Fatto ciò potranno cancellare, modificare o visualizzare gli utenti a seconda delle esigenze. Inoltre potranno gestire il database dei prodotti per cancellare dei bene esistenti, inserirne di nuovi o, più semplicemente, visualizzando il magazzino. Il sito risulta semplice da navigare anche se per raggiungere tutti i punti del sito è necessario far scorrere la barra di scorrimento. Il sito inoltre riporta tutte le informazioni utili al cliente oltre che alla storia dell ipermercato per permettere al cliente di valutarne l affidabilità. Il sito è pubblicato su un apposito spazio virtuale (altervista.org). Modello E/R AMMINISTRATORI PRODOTTI R UTENTI CARRELLO ACQUISTIVENDITE CREAZIONE DATABASE CREATE DATABASE bennet; USE bennet; create table prodotti ( codpro char(6), nompro varchar(20), preuni decimal(5.2), quanti int(3), 4

PRIMARY KEY (codpro) )ENGINE=innodb; create table utenti ( id int(11) auto_increment, name varchar(30), cognome char(30), indirizzo varchar(30), email varchar(30), username varchar(30), password varchar(30), PRIMARY KEY(id) )ENGINE=innodb; CREATE TABLE Acquistivendite ( codacq int(6) auto_increment, nompro varchar(30), 5

codpro char(6), pretot decimal(10.2), quaacc_new int(3), PRIMARY KEY (codacq), FOREIGN KEY (codpro) references prodotti (codpro) )ENGINE=innodb; CREATE TABLE amministratori ( id_amm INT(11) NOT NULL AUTO_INCREMENT, nome VARCHAR(32) NOT NULL, pswd VARCHAR(32) NOT NULL, PRIMARY KEY (id_amm) ) ENGINE=innodb; -- phpmyadmin SQL Dump -- version 2.11.11.3 -- http://www.phpmyadmin.net -- -- Host: localhost Database phpmyadmin 6

-- Generato il: 16 Apr, 2013 at 03:08 PM -- Versione MySQL: 5.1.58 -- Versione PHP: 5.2.17 SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO"; -- -- Database: `my_jessicagregoire` -- -- -------------------------------------------------------- -- -- Struttura della tabella `amministratori` -- CREATE TABLE IF NOT EXISTS `amministratori` ( `id_amm` int(11) NOT NULL AUTO_INCREMENT, `nome` varchar(32) NOT NULL, `pswd` varchar(32) NOT NULL, PRIMARY KEY (`id_amm`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ; 7

-- -- Dump dei dati per la tabella `amministratori` -- INSERT INTO `amministratori` (`id_amm`, `nome`, `pswd`) VALUES (1, 'jessica', 'gregoire'); -- -------------------------------------------------------- -- -- Struttura della tabella `prodotti` -- CREATE TABLE IF NOT EXISTS `prodotti` ( `codpro` char(6) NOT NULL DEFAULT '', `nompro` varchar(20) DEFAULT NULL, `preuni` decimal(5,0) DEFAULT NULL, `quanti` int(3) DEFAULT NULL, PRIMARY KEY (`codpro`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; Tracciato record 8

TABELLA PRODOTTI NOME CAMPO TIPO CAMPO DESCRIZIONE OBBLIG. codpro stringa Codice del prod. SI nompro Stringa (varchar) Nome del prodotto SI preuni decimal Prezzo unitario SI quanti integer Quantità prodotto SI TABELLA ACQUISTI VENDITE NOME CAMPO TIPO CAMPO DESCRIZIONE OBBLIG codacq stringa Codice SI dell acquisto nompro Stringa (varchar) Nome del prodotto SI cordpro stringa Codice del SI prodotto Pretot decimal Prezzo totale SI Quaacc_new interger Nuova quantità da acquistare SI TABELLA UTENTI NOME CAMPO TIPO CAMPO DESCRIZIONE OBBLIG id integer Id utente SI name Stringa (varchar) Nome utente SI cognome stringa Cognome utente SI indirizzo stringa Indirizzo utente SI email varchar e-mai utente SI username Varchar (stringa) Username utente SI password Varchar (stringa) Password utente SI TABELLA DELLE VARIABILI NOME VARIABILI NOME PAGINE 9

$id utenti_2.php $name utenti_2.php $cognome utenti_2.php $email utenti_2.php $indirizzo utenti_2.php $username utenti_2.php $password utenti_2.php $codacq acqven_2.php $quaacc_new acqven_2.php $codpro acqven_2.php $pretot acqven_2.php $codpro prodotti_2.php $nompro prodotti_2.php e acqven_2.php $preuni prodotti_2.php $quanti prodotti_2.php $selezi utenti_a2.php $db in tutti i programmi $num in tutti i programmi $sqlinterr in tutti i programmi $db_selected Paginacliente.php $res Paginacliente.php $num Paginacliente.php $i Paginacliente.php Listing sito web 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'>"; 10

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'>"; echo "<input type='reset' value='cancella'>"; 11

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(); // Controllo che il record sia stato inserito 12

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 $res=mysql_db_query("bennet",$sqlinterr); // Numero di record estratti dall'interrogazione 13

$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> <td>$nompro</td> <td>$preuni</td> 14

<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 <?php echo "<h3><body bgcolor='brown'> <font color='beige'>"; 15

// 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>";?> LISTING PRODOTTI_M1.PHP <?php 16

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> <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"); 17

$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> value='$codpro'></td> <td><input type='radio' name='selezi' <td>$codpro</td> <td>$nompro</td> <td>$preuni</td> <td>$quanti</td> </tr>"; } echo "</table>"; echo"</font>"; // Chiusura del DB MySQL mysql_close($db); // Bottone per l'invio dei dati a utenti_m2.php modificare'></center><p>"; echo "<p><center><input type='submit' value='record da?> </div> echo "</form>"; </div> 18

</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 */ $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"); 19

$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'>"; value='$codpro_old'><p>"; value='$nompro_old'><p>"; value='$preuni_old'><p>"; value='$quanti_old'><p>"; echo "Codice prodotto<br><input name='codpro_new' echo "Nome prodotto<br><input name='nompro_new' echo "Prezzo unitario<br><input name='preuni_new' echo "Quantità<br><input name='quanti_new' echo "<input type='hidden' name='codprodotto' 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...<p>";?> LISTING PRODOTTI_M3.PHP 20

<?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 "; $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 21

$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"); // 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); 22

// 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"); $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>"; 23

} // Chiusura della tabella echo "</table>"; // Chiusura del DataBase MySQL mysql_close($db);?> Listing Carrello LISTING PAGINACLIENTE.PHP <?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 24

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"); $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 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 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 26

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>"; // 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; 27

$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 $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(); 28

// Controllo che il record sia stato inserito if ($num>0) echo "Registrazione dell'acquisto avvenuta correttamente."; else echo "ERRORE!!! Record non inserito<p>";?> Fase di installazione Per fare questo sito è stato utilizzato il server web Xampp su un sistema operativo Windws xp. Il programma è stato realizzato con Nvu, successivamente testato con Xampp e infine pubblicato sul sito Altervista. Per la gestione del database è stato utilizzato sql. MANUALE D USO XAMPP Scarichiamo XAMPP e clicchiamoci due volte sopra per avviare l installazione Selezioniamo la lingua e premiamo OK 29

Si presenterà questa finestra di benvenuto. Clicchiamo su Next Scegliamo dove installare XAMP e premiamo su Next 30

In questa schermata ci verrà chiesto cosa vogliamo installare Selezioniamo ciò che ci serve e premiamo su Install 31

Inizierà l installazione con l estrazione dei file necessari all utilizzo di XAMPP Una volta terminato premiamo su Finish 32

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 33

PARTE 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. 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 MYISAM E INNODB MyIsam: 34

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 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. 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: 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. 35

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. 36