Relazione scritta relativa alla gestione del sito E-Commerce MediaWorld



Documenti analoghi
RELAZIONE SCRITTA RELATIVA AL PROGRAMMA GESTIONE MEDIAWORLD

RELAZIONE SCRITTA RELATIVA AL PROGRAMMA DI GESTIONE SITO E-COMMERCE

RELAZIONE E-COMMERCE

Baroni Nicoletta RELAZIONE SCRITTA. Carini Giulia RELATIVA AL PROGRAMMA GESTIONE MEDIAWORLD

Relazione e-commerce

RELAZIONE SCRITTA RELATIVA AL PROGRAMMA DI GESTIONE TABELLA ATTORI

RELAZIONE RELATIVA ALLA GESTIONE DEL SITO DI E-COMMERCE

RELAZIONE SCRITTA RELATIVA AL PROGRAMMA DI GESTIONE CISALFA

RELAZIONE E-COMMERCE ommerce/index.html

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

Volumi di riferimento

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

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

Direzione Centrale per le Politiche dell Immigrazione e dell Asilo

MySQL Database Management System

19. LA PROGRAMMAZIONE LATO SERVER

Guida alla registrazione on-line di un NovaSun Log

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

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

Guida alla registrazione on-line di un DataLogger

CONTENUTI 1. INTRODUZIONE CONCETTI BASICI SU EQUINOX CMS XPRESS ACCESSO A EQUINOX CMS XPRESS PAGINA D INIZIO...

LA GESTIONE DELLE VISITE CLIENTI VIA WEB

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

DBMS (Data Base Management System)

MySQL Database Management System

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

Manuale Utente Albo Pretorio GA

FtpZone Guida all uso

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

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

GERARCHIE RICORSIVE - SQL SERVER 2008

FPf per Windows 3.1. Guida all uso

RELAZIONE PROGETTO DATABASE GESTIONE BIBLIOTECA PERSONALE


MANUALE PARCELLA FACILE PLUS INDICE

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

MANUALE PER CONSULTARE LA RASSEGNA STAMPA VIA WEB

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

Sito web parrocchiale: STRUMENTI E PROGRAMMI

Manuale Utente Amministrazione Trasparente GA

Dipartimento per le Libertà Civili e l Immigrazione

Vademecum al download, all installazione e all uso del software Easynota Acquisizione della NIR tramite codici a barre bidimensionali

ATOLLO BACKUP GUIDA INSTALLAZIONE E CONFIGURAZIONE

04/05/2011. Lezione 6: Form

MICHELANGELO Piattaforma autorizzativa per la gestione di interventi riservata ai fornitori

INFORMATICA PER LE APPLICAZIONI ECONOMICHE PROF.SSA BICE CAVALLO

Corso Creare Siti WEB

Per accedere all area di gestione collegarsi al sito e digitare nell apposito box i dati di accesso (username: xxx password: xxx).

PORTALE CLIENTI Manuale utente

MANUALE PORTALE UTENTE IMPRENDITORE

GCEWEB Denunce mensili in WEB

COSTRUZIONE SITO WEB da AlterVista (

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

Database 1 biblioteca universitaria. Testo del quesito

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

Obiettivo dell esercitazione

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

Dipartimento per le Libertà Civili e l Immigrazione

Integrazione InfiniteCRM - MailUp

CONTENT MANAGEMENT SY STEM

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

Installazione MS SQL Express e utilizzo con progetti PHMI

GUIDA UTENTE PRIMA NOTA SEMPLICE

Manuale di programmazione BerMar_Drive_Software

Esercizio data base "Biblioteca"

MANUALE PER CONSULTARE LA RASSEGNA STAMPA VIA WEB ( ULTIMO AGGIORNAMENTO 26MARZO 2009)

FtpZone Guida all uso Versione 2.1

GUIDA AL PRIMO AVVIO E MANUALE D USO

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

I.N.A.I.L. Certificati Medici via Internet. Manuale utente

GUIDA ALL USO DEL PANNELLO DI GESTIONE SITO WEB

Corso Sistemi Informativi Avanzati. Programma 30 set Installazione Macchina Virtuale. Introduzione alla BI nelle Aziende.

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

DBMS. Esempi di database. DataBase. Alcuni esempi di DBMS DBMS. (DataBase Management System)

Registrazione nuovo utente. Per registrare un nuovo utente cliccare sul link Registrazione

A tal fine il presente documento si compone di tre distinte sezioni:

RICHIESTE INTERVENTO

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

Nautilus Installazione Aggiornato a versione

Wordpress. Acquistare un sito web. Colleghiamoci con il sito

Lezione V. Aula Multimediale - sabato 29/03/2008

ISTRUZIONI AGGIORNAMENTO TARIFFARIO 2006

Manuale utente Piattaforma e-learning UNICUSANO

Dott.ssa Adriana Pietramala

Dispensa di database Access

MANUALE D'USO DEL PROGRAMMA IMMOBIPHONE

Manuale di utilizzo del sito ASUWEB

Guida all installazione e configurazione di Joomla 1.5

Cerca Compra Vendi. Guida passo per passo all utilizzo del sito

MANUALE D USO DELLA PIATTAFORMA ITCMS

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

DATA BASE ON LINE (BANCA DATI MODULI SPERIMENTALI)

Il software ideale per la gestione delle prenotazioni GUIDA UTENTE

MANUALE D USO. Software Progettato e Sviluppato da: Giuseppe Mannino Nadia D Amore Piera Dominici Cynthia Wanderlingh

INFORMATICA. Applicazioni WEB a tre livelli con approfondimento della loro manutenzione e memorizzazione dati e del DATABASE.

Guida all'uso del CMS (Content Management System, Sistema di Gestione dei Contenuti)

Guida utente alla compilazione delle richieste di contributo on-line per le Associazioni dei Consumatori

Transcript:

PALA CHRISTIAN Classe 5^I Mercurio A.S. 2012/2013 I.T.E. A. BASSI Relazione scritta relativa alla gestione del sito E-Commerce MediaWorld Traccia del problema Realizzare un sito web di e-commerce che consenta di gestire l intera procedura informatica e che permetta al visitatore di visualizzare i prodotti presenti in magazzino, al responsabile MediaWorld di visualizzare tutti i clienti che eseguono la registrazione al sito web. Realizzare in PHP con MySQL: un'area contenente l'archivio prodotti. La visualizzazione di tali prodotti deve poter avvenire senza necessariamente registrarsi al sito, e quindi senza effettuare il login successivamente, ma direttamente consultando la home page del sito web; un'area protetta da username e password, dedicata ai responsabili del negozio, dove vengono gestiti i dati del cliente, gli acquisti effettuati sul sito e il magazzino dei prodotti; un area protetta da username e password dedicata ai clienti. Una volta effettuata la registrazione, quest ultimi potranno accedere, utilizzando le loro credenziali, all area che consentirà loro di effettuare l acquisto dei prodotti presenti in magazzino. Analisi di massima La traccia del problema chiede di creare un sito web di e-commerce dove i clienti potranno, senza registrarsi, visualizzare tutti i prodotti messi a disposizione del negozio e successivamente, solo dopo aver effettuato la registrazione, potranno loggarsi (utilizzando username e password da loro scelti) e acquistare direttamente on-line. Agli amministratori è dedicata un area protetta da username e password, dalla quale potranno gestire le registrazione dei clienti, visualizzare gli acquisti e i prodotti presenti nel magazzino. Analisi completa Variabili utilizzate Le variabili utilizzate vengono riportate nella tabella sottostante. Nome Variabili Pagina in cui è inserita Funzione della variabile $ID clienti_a1.php, clienti_q1.php, Identifica il codice cliente $nome $cognome $email $indirizzo $usarname $password $nom clienti_m1.php clienti_2.php, clienti_a1.php, clienti_m1.php, clienti_q1.php clienti_2.php, clienti_a1.php, clienti_m1.php, clienti_q1.php clienti_2.php, clienti_a1.php, clienti_m1.php, clienti_q1.php clienti_2.php, clienti_a1.php, clienti_m1.php, clienti_q1.php clienti_2.php, clienti_a1.php, clienti_m1.php, clienti_q1.php clienti_2.php, clienti_a1.php, clienti_m1.php, clienti_q1.php acquisti_2.php, acquisti_a1.php, acquisti_m1.php, acquisti_q1.php Identifica il nome del cliente Identifica il cognome del cliente Identifica l e-mail del cliente Identifica l indirizzo del cliente Identifica l username del cliente Identifica la password del cliente Identifica il nome del prodotto acquistato 1

$codpro $pre $quaacc_new $codacc $codpro $nompro $preuni $quanti $selezi acquisti_2.php, acquisti_a1.php, acquisti_m1.php, acquisti_q1.php acquisti_2.php, acquisti_a1.php, acquisti_m1.php, acquisti_q1.php acquisti_2.php, acquisti_a1.php, acquisti_m1.php, acquisti_q1.php acquisti_a1.php, acquisti_q1.php, acquisti_m1.php prodotti2_2.php, prodotti2_a1.php, prodotti2_m1.php, prodotti2_q1.php prodotti2_2.php, prodotti2_a1.php, prodotti2_m1.php, prodotti2_q1.php prodotti2_2.php, prodotti2_a1.php, prodotti2_m1.php, prodotti2_q1.php prodotti2_2.php, prodotti2_a1.php, prodotti2_m1.php, prodotti2_q1.php clienti_a2.php, clienti_m2.php acquisti_a2.php, acquisti_m2.php prodotti2_a2.php, prodotti2_m2.php Identifica il codice del prodotto acquistato Identifica il prezzo del prodotto acquistato Identifica la quantità acquistata Identifica il codice acquisto Identifica il codice del prodotto Identifica il nome del prodotto Identifica il prezzo unitario del prodotto Identifica la quantità disponibile Verifica se l utente ha effettuato la selezione del record $db in tutte le pagine PHP Connessione al Database MySQL $num in tutte le pagine PHP Verifica che i dati siano inseriti correttamente $sqlinter in tutte le pagine PHP Variabile per l inserimento di dati $user loghi_1.php Identifica l username dell amministratore $pass loghi_1.php Identifica la password dell amministratore $host checklogin.php Identifica il server a cui si collega $username checklogin.php Identifica l username dell utente $password checklogin.php Identifica la password del server $db_name checklogin.php Identifica il nome del database $tbl_name checklogin.php Identifica il nome della tabella dei clienti $num elabora_form.php Identifica i record estratti $db_selected paginacliente.php Selezione del database $res paginacliente.php Esecuzione dei comandi SQL di interr. $num paginacliente.php N. record estratti dal comando SQL $i paginacliente.php Visualizzazione dei record estratti Modello E/R CLIENTI 1:N N:1 acquistano PRODOTTI I campi sottolineati identificano le chiavi primarie e i campi in corsivo quelle secondarie. CLIENTI (ID, nome, cognome, username, password, indirizzo, email) ACQUISTI (codacc, nom, codpro, pre, quaacc_new) PRODOTTI2 (codpro, nompro, preuni, quanti) 2

Modello concettuale CLIENTI ID nome cognome username password indirizzo email 1 N ACQUISTI codacc nom codpro pre quaacc_new N 1 PRODOTTI2 codpro nompro preuni quanti Regole di vincolo 1. Tra la tabella CLIENTI e ACQUISTI esiste una relazione 1:N perche ogni cliente può effettuare più acquisti. 2. Tra la tabella PRODOTTI2 e ACQUISTI esiste una relazione 1:N perché un prodotto può essere acquistato più volte. Tracciati record Tabella CLIENTI Nome tabella: CLIENTI Numero campi: 7 Descrizione: anagrafica clienti Organizzazione logica: sequenziale ad indici Chiave primaria: ID Campi Tipo Lungh. Dec. Descrizione Formato Controlli Note ID int 11 0 Codice Cliente 9(11) auto_increment K+ nome varchar 30 0 Nome Cliente X(30) cognome varchar 30 0 Cognome Cliente X(30) username varchar 12 0 Username Cliente X(12) password varchar 12 0 Password Cliente X(12) indirizzo varchar 200 0 Indirizzo Cliente X(200) email varchar 100 0 E-mail Cliente X(100) 3

Tabella ACQUISTI Nome tabella: ACQUISTI Numero campi: 5 Descrizione: registrazione acquisti Organizzazione logica: sequenziale ad indici Chiave primaria: codacc Chiave secondaria: codpro Campi Tipo Lungh. Dec. Descrizione Formato Controlli Note codacc int 11 0 Codice Acquisto 9(11) auto_increment K+ nom varchar 50 0 Nome Prodotto X(50) codpro char 6 0 Codice Prodotto 9(6) pre decimal 10 2 Prezzo Totale 9(10,2) quaacc_new int 3 0 Quantità acquistata 9(3) Tabella PRODOTTI2 Nome tabella: PRODOTTI2 Numero campi: 4 Descrizione: registrazione prodotti Organizzazione logica: sequenziale ad indici Chiave primaria: codpro Campi Tipo Lungh. Dec. Descrizione Formato Controlli Note codpro char 6 0 Codice Prodotto 9(6) K+ nompro varchar 20 0 Nome Prodotto X(20) preuni decimal 10 2 Prezzo Unitario 9(10,2) quanti int 3 0 Quantità disponibile 9(3) Concetto di INTEGRITA REFERENZIALE L integrità referenziale impone che i dati raccolti e memorizzati in un database siano coerenti con il loro schema logico. Un vincolo di integrità è una regola definita sullo schema logico di un database. Un vincolo è rappresentato mediante un espressione booleana (o logica) che è vera (TRUE) se una combinazione di dati soddisfa il vincolo; se invece i dati violano il vincolo, l espressione logica non è vera (FALSE). 4

Queries CREAZIONE Tabella CLIENTI CREATE table clienti (ID int(11) primary key auto_increment, nome varchar(30) NOT NULL, cognome varchar(30) NOT NULL, username varchar(12) NOT NULL, password varchar(12) NOT NULL, indirizzo varchar(200) NOT NULL, email varchar(100) NOT NULL) ENGINE=InnoDB; Tabella PRODOTTI2 CREATE table prodotti2 (codpro char(6) primary key, nompro varchar(20) NOT NULL, preuni decimal(10,2) NOT NULL, quanti int(3) NOT NULL) ENGINE=InnoDB; Tabella ACQUISTI CREATE table acquisti (codacc int(11) primary key auto_increment, nom varchar(50) NOT NULL, codpro char(6) NOT NULL, pre decimal(10,2) NOT NULL, quaacc_new int(3) NOT NULL, FOREIGN KEY (codpro) REFERENCES prodotti2 (codpro)) ENGINE=InnoDB; INSERIMENTO Tabella CLIENTI INSERT clienti (nome, cognome, username, password, indirizzo, email) values ( Luigi, Rossi, luigirossi, luigi1994, Via Lodi, luigi.rossi@gmail.com ); Tabella PRODOTTI2 INSERT prodotti2 (codpro, nompro, preuni, quanti) values ( 000256, Apple i-phone 5, 729,00, 15 ); Tabella ACQUISTI INSERT acquisti (nom, codpro, pre, quaacc_new) values ( Apple i- Phone 5, 000256, 729,00, 1 ); 5

MODIFICA Tabella CLIENTI UPDATE clienti SET indirizzo= Via Roma WHERE ID= 1 ; Tabella PRODOTTI2 UPDATE prodotti2 SET preuni= 650,00, quanti= 13 WHERE codpro= 000256 ; Tabella ACQUISTI UPDATE acquisti SET quaacc_new= 2 WHERE codacc= 1 ; VISUALIZZAZIONE Tabella CLIENTI SELECT * FROM clienti; Tabella PRODOTTI2 SELECT * FROM prodotti2; Tabella ACQUISTI SELECT * FROM acquisti; CANCELLAZIONE Tabella CLIENTI DELETE from clienti where ID= 1 ; Tabella PRODOTTI2 DELETE from prodotti2 where codpro= 000256 ; Tabella ACQUISTI DELETE from acquisti where codacc= 1 ; 6

Area applicativa Pagine HTML e PHP Per la creazione del sito web sono stati utilizzati il linguaggio PHP e il linguaggio SQL. Il PHP è un linguaggio di programmazione che può essere ospitato dentro una pagina HTML; il PHP è un linguaggio che viene eseguito sul server e non direttamente sul computer dell utente. Il linguaggio SQL è un linguaggio che consente di leggere, modificare o gestire dei dati inseriti in un database. INSERIMENTO CLIENTI clienti_1.php <html> <head> <title>inserimento Clienti</title> </head> <body> echo "Inserire i dati del cliente e inviare il form"; echo "<form action='clienti_2.php' method='post'>"; echo "Nome cliente<input name='nome' size='30' maxlength='30'><br>"; echo "Cognome cliente<input name='cognome' size='30' maxlength='30'><br>"; echo "Via cliente<input name='indirizzo' size='30' maxlength='200'><br>"; echo "E-mail cliente<input name='email' size='30' maxlength='100'><p>"; echo "Username<input name='username' size='30' maxlength='12'> <p>"; echo "Password<input name='password' size='30' maxlength='12'><p>"; echo "<input type='submit' value='invia'>"; echo "<input type='reset' value='cancella'>"; echo "</form>";?> </body> </html> 7

clienti_2.php <html> <head> <title>inserimento Clienti</title> </head> <body> // Inizializzazione delle variabili $nome=$_post['nome']; $cognome=$_post['cognome']; $email=$_post['email']; $indirizzo=$_post['indirizzo']; $username=$_post['username']; $password=$_post['password']; // Connessione al db MySQL $db=mysql_connect("localhost","root"); // Creazione del comando SQL per l'inserimento dei dati $sqlinter = "insert clienti"; $sqlinter.= "(username, password, nome, cognome, indirizzo, email)"; $sqlinter.= " values "; $sqlinter.= "('$username', '$password', '$nome', '$cognome', '$email','$indirizzo')"; // Invio dei dati mysql_db_query("my_cpala", $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);?> </body> </html> CANCELLAZIONE CLIENTI clientii_a1.php <html> <head> <title>annullamento Clienti</title> </head> <body> Selezionare il record da cancellare:<p> <form action="clienti_a2.php" method="post"> // Connessione al database MySQL $db=mysql_connect("localhost","root"); 8

?> <p> // Creazione della variabile per l'interrogazione $sqlinterr ="select * from clienti "; // Esecuzione dell'interrogazione $res=mysql_db_query("my_cpala",$sqlinterr); // Numero di record estratti dall'interrogazione $num=mysql_num_rows($res); // Intestazione della tabella echo "<table border='1' align='center'> <tr> <td>id</td> <td>username</td> <td>password</td> <td>nome cliente</td> <td>cognome cliente</td> <td>indirizzo cliente</td> <td>email cliente</td> </tr>"; // Visualizzazione dei record estratti for ($i=0; $i<$num; $i++) { $ID=mysql_result($res,$i,"ID"); $username=mysql_result($res,$i,"username"); $password=mysql_result($res,$i,"password" ); $nome=mysql_result($res,$i,"nome"); $cognome=mysql_result($res,$i,"cognome"); $email=mysql_result($res,$i,"email"); $indirizzo=mysql_result($res,$i,"indirizzo"); // Visualizzazione della riga con radio echo "<tr> <td><input type='radio' name='selezi' value='$id'></td>"; echo " <td>$id</td> <td>$username</td> <td>$password</td> <td>$nome</td> <td>$cognome</td> <td>$email</td> <td>$indirizzo</td> </tr>"; } // Chiusura della tabella echo "</table>"; // Chiusura del database mysql_close($db); <input type="submit" value="cancellare il record"> </form> </body> </html> 9

clienti_a2.php <html> <head> <title>cancellazione Clienti</title> </head> <body> // 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 clienti where"; $sqlinterr.=" ID='$selezi'"; // Invio del comando SQL $res=mysql_db_query("my_cpala", $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>";?> </body> </html> 10

MODIFICA CLIENTI clienti_m1.php <html> <head> <title>modifica Clienti</title> </head> <body> echo "<h2><center>selezionare il record da modificare</center></h2>"; echo "<form action='clienti_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 clienti"; // Esecuzione del comando di interrogazione $sqlinterr $res=mysql_db_query("my_cpala",$sqlinterr); $num=mysql_num_rows($res); // Intestazione della tabella echo "<table border='1' align='center'>"; echo "<tr> <td>id</td> <td>username</td> <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" ); $nome=mysql_result($res,$i,"nome"); $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>$nome</td> <td>$cognome</td> <td>$email</td> <td>$indirizzo</td> </tr>"; } 11

echo "</table>"; // Chiusura del db MySQL mysql_close($db); // Bottone per l'invio dei dati a clienti_m2.php echo "<p><center><input type='submit' value='record da modificare'></center>"; echo "</form>";?> </body> </html> clienti_m2.php <html> <head> <title>modifica Clienti</title> </head> <body> // Definizione delle variabili $selezi=$_post['selezi']; if ($selezi) { // Connessione al DB MySQL $db=mysql_connect("localhost","root"); 12

/* Costruzione della variabile $sqlinterr per la visualizzazione dei record */ $sqlinterr = "select * from clienti "; $sqlinterr.= "where clienti.id='$selezi'"; // Esecuzione del comando select $res=mysql_db_query("my_cpala",$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"); $nome_old=mysql_result($res,0,"nome"); $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 clienti: modifica</center></h3><p>"; 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='nome_new' value='$nome_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> 13

clienti_m3.php <html> <head> <title>modifica Clienti</title> </head> <body> // Inizializzazione delle variabili $ID_new=$_POST['ID_new']; $username_new=$_post['username_new']; $password_new=$_post['password_new']; $nome_new=$_post['nome_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 clienti set "; $sqlinterr.=" ID='$ID_new',"; $sqlinterr.=" username='$username_new',"; $sqlinterr.=" password='$password_new',"; 14

?> </body> </html> $sqlinterr.=" nome='$nome_new' "; $sqlinterr.=" cognome='$cognome_new' "; $sqlinterr.=" email='$email_new' "; $sqlinterr.=" indirizzo='$indirizzo_new' "; $sqlinterr.= "where ID='$ID'"; // Esecuzione del comando $sqlinterr mysql_db_query("my_cpala",$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); VISUALIZZAZIONE CLIENTI clienti_q1.php <html> <head> <title>consultazione Clienti</title> </head> <body> // Apertura del Database MySQL) $db=mysql_connect("localhost","root"); // Costruzione della variabile da eseguire in SQL $sqlinterr = "select * from clienti "; /* Apertura del DB sito inserito nel Data Base MySQL */ // $db_selected = mysql_select_db('my_cpala', $db); // Esecuzione del comando di interrogazione SQL $res=mysql_db_query("my_cpala",$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 Clienti</center></h2>"; echo "<table border='3' align='center'> <tr> <td>id</td> <td>username</td> <td>password</td> <td>nome</td> <td>cognome</td> <td>email</td> <td>indirizzo</td> 15

?> </body> </html> </tr>"; // Visualizzazione del contenuto dei record trovati for ($i=0;$i<$num;$i++) { $ID=mysql_result($res,$i,"ID"); $username=mysql_result($res,$i,"username"); $password=mysql_result($res,$i,"password" ); $nome=mysql_result($res,$i,"nome"); $cognome=mysql_result($res,$i,"cognome"); $email=mysql_result($res,$i,"email"); $indirizzo=mysql_result($res,$i,"indirizzo"); // Visualizzazione dei dati letti echo "<tr> <td>$id</td> <td>$username</td> <td>$password</td> <td>$nome</td> <td>$cognome</td> <td>$email</td> <td>$indirizzo</td> </tr>"; } // Chiusura della tabella echo "</table>"; // Chiusura del Data Base MySQL mysql_close($db); 16

INSERIMENTO ACQUISTI acquisti_1.php <html> <head> <title>inserimento Acquisti</title> </head> <body> echo "<center>"; echo "<font face='comic sans MS' color=red><h2>inserire i dati relativi agli acquisti e alle vendite</h2>"; echo "<form action='acquisti_2.php' method='post'>"; echo "Nome prodotto<br><input name='nom' size='50' maxlength='50'><p>"; echo "Codice prodotto <br><input name='codpro' size='6' maxlength='6'><p>"; echo "Costo complessivo<br> <input name='pre' size='12' maxlength='12'><p>"; echo " Quantità acquistata<br> <input name='quaacc_new' size='4' maxlength='4'><p>"; echo "<input type='submit' value='invia'>"; echo "<input type='reset' value='cancella'>"; echo "</center>"; echo "</form>"; echo "</font>";?> </body> </html> 17

acquisti_2.php <html> <head> <title>inserimento Acquisti</title> </head> <body> //Inizializzazione delle variabili $nom=$_post['nom']; $codpro=$_post['codpro']; $pre=$_post['pre']; $quaacc_new=$_post['quaacc_new']; //Connessione al db mysql $db=mysql_connect("localhost","root") //Creazione del comando sql per l'inserimento dei dati $sqlinterr="insert acquisti "; $sqlinterr.="(nom, codpro, pre, quaacc_new)"; $sqlinterr.=" values "; $sqlinterr.="('$nom','$codpro','$pre','$quaacc_new')"; //Invio dei dati alla tabella attori del db proiezioni05; mysql_db_query("my_cpala",$sqlinterr); //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);?> </body> </html> CANCELLAZIONE ACQUISTI acquisti_a1.php <html> <head> <title>cancellazione acquisti</title> </head> <body> <h2><b>selezionare il record da cancellare:</b></h2><p> <form action="acquisti_a2.php" method="post"> // Connessione al database MySQL $db=mysql_connect("localhost","root"); // Creazione della variabile per l'interrogazione $sqlinterr ="select * from acquisti"; 18

// Esecuzione dell'interrogazione $res=mysql_db_query("my_cpala",$sqlinterr); // Numero di record estratti dall'interrogazione $num=mysql_num_rows($res); // Intestazione della tabella echo "<table border='1' align='center'> <tr> <td>selezione</td> <td>codice acquisto</td> <td>codice prodotto</td> <td>nome prodotto</td> <td>costo complessivo</td> <td>quantità acquistata</td> </tr>"; // Visualizzazione dei record estratti for ($i=0; $i<$num; $i++) { $codacc=mysql_result($res,$i,"codacc"); $codpro=mysql_result($res,$i,"codpro"); $nom=mysql_result($res,$i,"nom"); $pre=mysql_result($res,$i,"pre"); $quaacc_new=mysql_result($res,$i,"quaacc_new"); // Visualizzazione della riga con radio echo "<tr> <td><input type='radio' name='selezi' value='$codacc'></td>"; echo " <td>$codacc</td> <td>$codpro</td> <td>$nom</td> <td>$pre</td> <td>$quaacc_new</td> </tr>"; } // Chiusura della tabella echo "</table>"; // Chiusura del database mysql_close($db);?> <input type="submit" value="cancellare il record"> </form> </center> </body> </html> 19

acquisti_a2.php <html> <head> <title>cancellazione Clienti</title> </head> <body> // 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 acquisti where"; $sqlinterr.=" codacc='$selezi'"; // Invio del comando SQL $res=mysql_db_query("my_cpala", $sqlinterr); // Risultato della cancellazione $num=mysql_affected_rows(); if ($num>0)echo "Record cancellato<p>"; else echo "Record non cancellato<p>"; 20

?> </body> </html> // Chiusura database mysql_close($db); } else echo "Non è stato selezionato nessun record<p>"; MODIFICA ACQUISTI acquisti_m1.php <html> <head> <title>modifica Acquisti</title> </head> <body> echo "<h2><b><center>selezionare il record da modificare</center></b></h2>"; echo "<form action='acquisti_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 acquisti"; // Esecuzione del comando di interrogazione $sqlinterr $res=mysql_db_query("my_cpala",$sqlinterr); $num=mysql_num_rows($res); // Inizio della tabella echo "<table border='1' align='center'>"; // Titolo echo "<tr> <td>selezione</td> <td>codice acquisto</td> <td>codice prodotto</td> <td>nome prodotto</td> <td>costo complessivo</td> <td>quantità acquistata</td> </tr>"; // Estrapolazione dei valori degli attributi for ($i=0;$i<$num;$i++) { $codacc=mysql_result($res,$i,"codacc"); $codpro=mysql_result($res,$i,"codpro"); $nom=mysql_result($res,$i,"nom"); $pre=mysql_result($res,$i,"pre"); $quaacc_new=mysql_result($res,$i,"quaacc_new"); 21

// Visualizzazione degli attributi in tabella echo "<tr> <td><input type='radio' name='selezi' value='$codacc'></td> <td>$codacc</td> <td>$codpro</td> <td>$nom</td> <td>$pre</td> <td>$quaacc_new</td> </tr>"; } echo "</table>"; // Chiusura del DB MySQL mysql_close($db); // Bottone per l'invio dei dati a acquisti_m2.php echo "<p><center><input type='submit' value='record da modificare'></center>"; echo "</form>";?> </body> </html> 22

acquisti_m2.php <html> <head> <title>modifica Acquisti</title> </head> <body> // 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 acquisti "; $sqlinterr.= "where acquisti.codacc='$selezi'"; // Esecuzione del comando select $res=mysql_db_query("my_cpala",$sqlinterr); //$num=mysql_num_rows($res); // Lettura del contenuto del record trovato $codacc_old=mysql_result($res,0,"codacc"); $codpro_old=mysql_result($res,0,"codpro"); $nom_old=mysql_result($res,0,"nom"); $pre_old=mysql_result($res,0,"pre"); $quaacc_new_old=mysql_result($res,0,"quaacc_new"); // Creazione della mappa a video per la modifica echo "<h3><center>gestione acquisti e vendite: modifica</center></h3><p>"; echo "<form action='acquisti_m3.php' method='post'>"; echo " Codice acquisto<br><input name='codacc_new' value='$codacc_old'><p>"; echo " Codice prodotto<br><input name='codpro_new' value='$codpro_old'><p>"; echo " Nome prodotto<br><input name='nom_new' value='$nom_old'><p>"; echo " Costo complessivo<br><input name='pre_new' value='$pre_old'><p>"; echo " Quantità acquistata<br><input name='quaacc_new' value='$quaacc_new_old'><p>"; echo "<input type='hidden' name='codacc' 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 acquisto...<p>";?> </body> </html> 23

acquisti_m3.php <html> <head> <title>modifica Acquisti</title> </head> <body> // Inizializzazione delle variabili $codacc_new=$_post['codacc_new']; $codpro_new=$_post['codpro_new']; $nom_new=$_post['nom_new']; $pre_new=$_post['pre_new']; $quaacc_new=$_post['quaacc_new']; $codacc=$_post['codacc']; // Connessione al DB MySQL $db=mysql_connect("localhost","root"); /* Costruzione della variabile $sqlinterr per la modifica del record selezionato */ $sqlinterr = "update acquisti set "; $sqlinterr.=" codacc='$codacc_new',"; $sqlinterr.=" codpro='$codpro_new',"; $sqlinterr.=" nom='$nom_new',"; $sqlinterr.=" pre='$pre_new',"; $sqlinterr.=" quaacc_new='$quaacc_new'"; $sqlinterr.= "where codacc='$codacc'"; 24

?> </body> </html> // Esecuzione del comando $sqlinterr mysql_db_query("my_cpala",$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); VISUALIZZAZIONE ACQUISTI acquisti_q1.php <html> <head> <title>visualizzazione Acquisti</title> </head> <body> // Apertura del Database MySQL $db=mysql_connect("localhost","root"); // Costruzione della variabile da eseguire in SQL $sqlinterr = "select * from acquisti "; /* Apertura del DB sito inserito nel DataBase MySQL */ // $db_selected = mysql_select_db('my_cpala', $db); // Esecuzione del comando di interrogazione SQL $res=mysql_db_query("my_cpala",$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 acquisti e vendite</center></h2>"; echo "<table border='1' align='center'> <tr> <td>codice acquisto</td> <td>codice prodotto</td> <td>nome prodotto</td> <td>costo complessivo</td> <td>quantità acquistata</td> </tr>"; // Visualizzazione del contenuto dei record trovati for ($i=0;$i<$num;$i++) { $codacc=mysql_result($res,$i,"codacc"); $codpro=mysql_result($res,$i,"codpro"); $nom=mysql_result($res,$i,"nom"); 25

?> </body> </html> $pre=mysql_result($res,$i,"pre"); $quaacc_new=mysql_result($res,$i,"quaacc_new"); // Visualizzazione dei dati letti echo "<tr> <td>$codacc</td> <td>$codpro</td> <td>$nom</td> <td>$pre</td> <td>$quaacc_new</td> </tr>"; } // Chiusura della tabella echo "</table>"; // Chiusura del DataBase MySQL mysql_close($db); 26

INSERIMENTO PRODOTTI prodotti2_1.php <html> <head> <title>inserimento Prodotti</title> </head> <body> echo "<h2>inserire i dati dei prodotti e inviare il form</h2>"; echo "<form action='prodotti2_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'>"; echo "</form>";?> </body> </html> 27

prodotti2_2.php <html> <head> <title>inserimento Prodotti</title> </head> <body> // 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 prodotti2"; $sqlinter.= "(codpro, nompro, preuni, quanti)"; $sqlinter.= " values "; $sqlinter.= "('$codpro', '$nompro', '$preuni', '$quanti')"; // Invio dei dati alla tabella mysql_db_query("my_cpala", $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);?> </body> </html> CANCELLAZIONE PRODOTTI prodotti2_a1.php <html> <head> <title>cancellazione Prodotti</title> </head> <body> <h2>selezionare il record da cancellare</h2><p> <form action="prodotti2_a2.php" method="post"> // Connessione al database MySQL $db=mysql_connect("localhost","root"); // Creazione della variabile per l'interrogazione $sqlinterr ="select * from prodotti2 "; // Esecuzione dell'interrogazione $res=mysql_db_query("my_cpala",$sqlinterr); 28

// Numero di record estratti dall'interrogazione $num=mysql_num_rows($res); // Intestazione della tabella echo "<table border='1' align='center'> <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> <td>$quanti</td> </tr>"; } // Chiusura della tabella echo "</table>"; // Chiusura del database mysql_close($db);?> <p><input type="submit" value="cancellare il record"><p> </body> </html> 29

prodotti2_a2.php <html> <head> <title>cancellazione Prodotti</title> </head> <body> // 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 prodotti2 where"; $sqlinterr.=" codpro='$selezi'"; // Invio del comando SQL $res=mysql_db_query("my_cpala", $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); } 30

?> </body> </html> else echo "Non è stato selezionato nessun record<p>"; MODIFICA PRODOTTI prodotti2_m1.php <html> <head> <title>modifica Prodotti</title> </head> <body> echo "<h2><center>selezionare il record da modificare</center></h2>"; echo "<form action='prodotti2_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 prodotti2"; // Esecuzione del comando di interrogazione $sqlinterr $res=mysql_db_query("my_cpala",$sqlinterr); $num=mysql_num_rows($res); // Inizio della tabella echo "<table border='1' align='center'>"; 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"); $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> <td><input type='radio' name='selezi' value='$codpro'></td> <td>$codpro</td> <td>$nompro</td> <td>$preuni</td> <td>$quanti</td> </tr>"; } echo "</table>"; 31

// Chiusura del DB MySQL mysql_close($db); // Bottone per l'invio dei dati a prodotti2_m2.php echo "<p><center><input type='submit' value='record da modificare'></center><p>"; echo "</form>";?> </body> </html> prodotti2_m2.php <html> <head> <title>modifica Prodotti</title> </head> <body> // 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 prodotti2 "; 32

$sqlinterr.= "where prodotti2.codpro='$selezi'"; // Esecuzione del comando select $res=mysql_db_query("my_cpala",$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>gestione prodotti: modifica</center></h3><p>"; echo "<form action='prodotti2_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='codpro' 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 prodotto...<p>";?> </body> </html> 33

prodotti2_m3.php <html> <head> <title>modifica Prodotti</title> </head> <body> // Inizializzazione delle variabili $codpro_new=$_post['codpro_new']; $nompro_new=$_post['nompro_new']; $preuni_new=$_post['preuni_new']; $quanti_new=$_post['quanti_new']; $codpro=$_post['codpro']; // Connessione al DB MySQL $db=mysql_connect("localhost","root"); /* Costruzione della variabile $sqlinterr per la modifica del record selezionato */ $sqlinterr = "update prodotti2 set "; $sqlinterr.=" codpro='$codpro_new',"; $sqlinterr.=" nompro='$nompro_new',"; $sqlinterr.=" preuni='$preuni_new',"; $sqlinterr.=" quanti='$quanti_new' "; $sqlinterr.= "where codpro='$codpro'"; // Esecuzione del comando $sqlinterr mysql_db_query("my_cpala",$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> 34

VISUALIZZAZIONE PRODOTTI prodotti2_q1.php <html> <head> <title>consultazione Prodotti</title> </head> <body> // Apertura del Database MySQL) $db=mysql_connect("localhost","root"); // Costruzione della variabile da eseguire in SQL $sqlinterr = "select * from prodotti2 ";?> </body> </html> //Apertura del DB sito inserito nel DataBase MySQL // $db_selected = mysql_select_db('my_cpala', $db); // Esecuzione del comando di interrogazione SQL $res=mysql_db_query("my_cpala",$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' align='center'> <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>"; } // Chiusura della tabella echo "</table>"; // Chiusura del DataBase MySQL mysql_close($db); 35

PROGRAMMA DI LOGIN AMMINISTRATORE loghi_1.php if(isset($_post['user'])&& isset($_post['pass'])) if($_post['user']=='admin'&& $_POST['pass']=='admin') { $_SESSION['user']=$_POST['user']; @header("location: indexamm.html"); } else @header("location: amm.html?err=true");?> 36

PROGRAMMA DI LOGIN CLIENTE checklogin.php $host="localhost"; // Host name $username="root"; // Mysql username $password=""; // Mysql password $db_name="my_cpala"; // Database name $tbl_name="clienti"; // Table name // Connect to server and select databse. mysql_connect("$host", "$username", "$password")or die("cannot connect"); mysql_select_db("$db_name")or die("cannot select DB"); // username and password sent from form $username=$_post['username']; $password=$_post['password']; // To protect MySQL injection (more detail about MySQL injection) $username = stripslashes($username); $password = stripslashes($password); $username = mysql_real_escape_string($username); $password = mysql_real_escape_string($password); $sql="select * FROM $tbl_name WHERE username='$username' and password='$password'"; $result=mysql_query($sql); // Mysql_num_row is counting table row $count=mysql_num_rows($result); // If result matched $myusername and $mypassword, table row must be 1 row if($count==1){ // Register $myusername, $mypassword and redirect to file "login_success.php" session_register("username"); session_register("password"); header("location:paginacliente.php"); } else { echo "Wrong Username or Password"; }?>?> Successivamente nella pagina protetta andrà inserito questo script session_start(); if(!session_is_registered(username)){ header("location:paginacliente.php"); } 37

PROGRAMMA DI LOGOUT if(isset($_get['logout'])) { session_start(); @session_destroy(); $_SESSION=array(); @header("location: indexamm.html"); } else { @header("location: amm.html"); }?> Spiegazione del programma lato cliente La prima cosa che un potenziale cliente deve fare è quella di registrarsi al sito web, compilando l apposito form. Form per la registrazione al sito web. Una volta registrato, il cliente deve effettuare il login, inserendo username e password che vengono scelte dal cliente stesso durante la registrazione negli appositi campi. Form per il login del cliente. 38

Una volta effettuato l accesso, al cliente viene mostrata la seguente pagina. In questa pagina il cliente può acquistare i prodotti presenti nel magazzino effettuando la selezione e successivamente cliccando su Acquista. Cliccando su Acquista, viene poi mostrata questa pagina, attraverso la quale il cliente dovrà, prima di tutto verificare se è presente il prodotto in magazzino, dopodiché potrà scegliere la quantità da acquistare e cliccare su Acquista. 39

Nella pagina seguente verrà notificato se l acquisto è stato effettuato oppure se non è andato a buon fine. Se l acquisto è avvenuto regolarmente, il cliente dovrà quindi cliccare su clicca qui per poter inviare una mail al venditore con la conferma dell acquisto appena effettuato. In questa pagina il cliente deve indicare la propria mail, il nome e il cognome, e inserire un messaggio di conferma dell ordine. Nel messaggio il cliente non deve riscrivere il proprio nome e cognome in quanto viene riconosciuto automaticamente. Al termine, il cliente dovrà cliccare su Invia. 40

Spiegazione del programma lato amministratore Al responsabile del negozio (amministratore) è riservata un area privata protetta da username e password. Per accedere a quest area è necessario inserire le credenziali decise dall amministratore nell apposito form. Form per il login dell amministratore Una volta effettuato il login, all amministratore apparirà una pagina dove potrà decidere di compiere diverse azioni, tra cui l inserimento, la modifica, la visualizzazione e la cancellazione di un cliente, l inserimento, la modifica, la visualizzazione e la cancellazione di un acquisto e l inserimento, la modifica, la visualizzazione e cancellazione di un prodotto. 41

Per uscire da quest area è necessario che l amministratore clicchi su Logout, posto in alto a destra. Manuale tecnico ITALIANO Il database di questo programma può essere installato sia su Altervista, sia su un web server tra cui EasyPHP o Xampp. Xampp è un software che contiene il server web Apache e il database MySQL. Altervista Per installarlo su Altervista, è necessario collegarsi al sito web http://www.altervista.org e registrarsi compilando gli appositi form e creare una proprio sito dove poter inserire tutti i lavori che verranno svolti. Dopodiché sarà necessario creare un database (che generalmente altervista rinomina my_inizialenomecognome) e al suo interno trasferire le tabelle relative al sito web di e-commerce. Una volta compiuta tale operazione, l utente deve posizionarsi su AlterSito e cliccare su Gestione File. Cliccare su 42

A questo l utente deve cliccare su Invia Files e individuare la cartella contenente i programmi del sito web (scaricata precedentemente) ed inviarla al sito di Altervista. In tutti i programmi l utente dovrà modificare il nome del database, inserendo il nome del suo database creato in precedenza. Xampp Per scaricare Xampp cliccate su questo link: http://www.apachefriends.org/it/xampp.html, successivamente scaricate e installate il software. Il software dovrà essere installato direttamente sul disco locale C. Alla fine dell installazione, cliccando due volte sull icona di Xampp, apparirà questa pagina: Da questa finestra l utente dovrà cliccare sul tasto Start del modulo Apache e sul tasto Start del modulo MySQL, in modo tale da attivarli (apparirà la scritta in verde con scritto Running ). In questo modo, riuscirete a creare il database. Per la creazione del database e delle tabelle, può essere utilizzata l interfaccia grafica di Xampp per creare il database. Come prima cosa, l utente deve aprire un browser web e inserire, nella barra dell indirizzo, il seguente link: http://127.0.0.1/phpmyadmin. Si aprirà questa pagina: 43

Da questa pagina, l utente, può creare il database e inserire tutte le tabelle del sito web di e-commerce. Una volta aver creato il database con le relative tabelle, all interno del browser web nella barra degli indirizzi, a fianco al link http://127.0.0.1 bisogna indicare il nome della home page del sito web (in questo caso home.html) e premere Invio. Se l utente ha eseguito tutti i passaggi i maniera corretta, potrà visualizzare la home e navigare liberamente nel sito. ENGLISH The database of this program can be installed both on Altervista, both on a web server including EasyPHP or Xampp. Xampp is a software that contains the Apache web server and MySQL database. Altervista To install it on Altervista, you must connect to the website http://www.altervista.org and register by filling out the appropriate form and create a Web site where you can enter all the work that will be carried out. Then you will need to create a database (which generally Altervista rename my_inizialenomecognome) and to transfer the tables related to e-commerce web site. Once you have done this, you must go to "AlterSito" and click on "Gestione File". Click on To this the user must click on "Invia Files" and browse to the folder that contains the web site programs (downloaded previously) and send it to the site of Altervista. In all programs, the user must modify the database name, enter the name of the database that you created earlier. 44

Xampp To download Xampp please click on this link: http://www.apachefriends.org/it/xampp.html, then download and install the software. The software must be installed on the local disk C. At the end of the installation, double clicking the icon of Xampp, you will see this page: From this window, the user should click on the "Start" button of the Apache module and click "Start" of the MySQL module, in order to activate it (you will see in green with the word "Running"). In this way, you will be able to create the database. To create the database and tables, you can use the Xampp graphical user interface to create the database. First, you must open a web browser and enter in the address bar, the following link: http://127.0.0.1/phpmyadmin. You will get this page: 45

From this page, you can create the database and insert all tables in the e-commerce web site. Once the database has been created with its tables, inside the web browser in the address bar, next to the link to http://127.0.0.1, indicate the name of the web site's home page (in this case home.html) and press ENTER. If you have performed all the steps correctly, you will see the home and navigate freely on the site. Parte didattica tecnica Definizione di Database e differenze tra MyIsam e InnoDB In informatica, il termine database, indica un archivio dati, in cui le informazioni in esso contenute sono strutturate e collegate tra loro secondo un modello logico definito e in modo tale da consentire la gestione e l organizzazione efficiente dei dati stessi grazie a particolari applicazioni software dedicate (DBMS), basate su un'architettura del tipo client-server, e ai query language per l'interagire con le richieste dell'utente (query che possono essere di interrogazione, inserimento, cancellazione e modifica). Il termine database può indicare: l'archivio a livello fisico, cioè il sistema con i supporti di memorizzazione che contengono i dati stessi; l'archivio a livello logico cioè i dati strutturati e il database management system (DBMS). Nei database basati sul modello relazionale i dati vengono suddivisi per argomenti (in apposite tabelle) e poi tali argomenti vengono suddivisi per categorie (campi) con tutte le possibili operazioni. Il Database Server MySQL dispone di vari tipi di tabelle. Le più usate sono le MyISAM e le InnoDB. MyISAM Sono le tabelle classiche di MySQL. Quest ultime mancano di alcune caratteristiche molto importanti nelle basi di dati; primo fra tutte il mancato supporto alle foreign key (cioè le 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 key, le tabelle MyISAM non sono adatte per realizzare sistemi di e-commerce o altre applicazioni simili. Le tabelle di tipo MyISAM si compongono di tre file con tre diverse estensioni:.frm,.myd e.miy. che contengono rispettivamente la struttura della tabella, i dati e gli indici. Per trasferire una tabella da un computer ad un altro è sufficiente spostare questi 3 file. Il tipo di tabella MyISAM è solitamente quello predefinito nel DBMS. InnoDB Sono tabelle molto più complete rispetto alle MyISAM ma si sono più lente a causa delle funzionalità aggiuntive di cui dispongono. Tra le caratteristiche a loro vantaggio, vi sono le foreign key e la transazionalità, con le quali è possibile creare una base di dati relazionale e transazionale. 46

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. Definizione di server web Un web server è un programma che, utilizzando il modello client/server e il protocollo HTTP, fornisce i file che costituiscono una pagina web agli utenti che ne fanno richiesta utilizzando un programma client: il browser. Ogni computer che contiene un sito web deve avere un programma web server. Uno dei programmi web server più utilizzati è Apache. Differenza tra pagine statiche e dimaniche Le pagine statiche (quelle che hanno estensione.html o.htm), sono dei file in codice HTML che descrivono minuziosamente 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 file HTML; il browser sa decodificare il file, e quindi mostra i contenuti della pagina sullo schermo dell utente. Le pagine dinamiche, invece di 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. In altre parole, il contenuto della pagina non è deciso a priori ma può variare in base a condizioni di vario genere. Un esempio: quando su un motore di ricerca viene effettuata un interrogazione, la pagina dei risultati che viene presentata non è già esistente prima della vostra richiesta. Solo dopo che il server ha eseguito la sua ricerca sulla parola chiave da voi indicata viene creato il codice per presentarvi i risultati. I linguaggi utilizzati per scrivere queste pagine sono ASP, PHP o CFM e tanti altri. Definizione di MySQL MySQL è il software per database relazionali prodotto dall'omonima società Svedese (MySQL AB). Il codice è gratuito, open source e di proprietà esclusiva della MySQL AB, i quali profitti derivano da servizi e strumenti messi a disposizione degli utenti del loro software - strumenti e servizi non prerogativa per l'utilizzo del software stesso. Definizione di PHP Il termine PHP è l acronimo di Personal Home Page tools. Questo è un linguaggio di programmazione per la realizzazione di pagine Internet dinamiche, modulo del web server Apache. Un altro linguaggio utilizzato è ASP. L unica differenza tra questi due linguaggi risiede nella piattaforma: ASP è supportato solo da Server NT, mentre PHP viene utilizzato principalmente da Server Linux/Unix, ma anche da NT. ASP è acronimo di Active Server Page. La potenza di questi linguaggi sta nel fatto di poter generare, nella stessa pagina, diversi layout in base al risultato di alcune funzioni scritte da chi l'ha programmata; per questo motivo vengono utilizzate solitamente per l'interfacciamento delle pagine web con uno o più DataBase. 47