implementazione di una interfaccia per l`estrapolazione

Transcript

implementazione di una interfaccia per l`estrapolazione
UNIVERSITÀ POLITECNICA DELLE MARCHE
FACOLTA’ DI INGEGNERIA
Corso di Laurea in Ingegneria Informatica e dell’Automazione
IMPLEMENTAZIONE DI UNA
INTERFACCIA PER
L’ESTRAPOLAZIONE DI
INFORMAZIONI DA SITI WEB, PER IL
COMMERCIO DI PARAFARMACI
Tesi di Laurea di:
Matteo Egidi
Relatore:
Prof. Aldo Franco Dragoni
Anno Accademico 2010/2011
A nonno Gino, nonna Maria e zio Bruno
INDICE
INDICE .................................................................................................................................................. I
INTRODUZIONE ................................................................................................................................ 1
MOTIVAZIONI ...................................................................................................................................... 1
OBIETTIVI .......................................................................................................................................... 4
STRUTTURA DELLA TESI .................................................................................................................... 6
CAPITOLO 1
– SPECIFICHE DI PROGETTO ...................................................................... 7
1.1
INTRODUZIONE .................................................................................................................... 7
1.2
ANALISI DI UN SITO WEB ..................................................................................................... 8
1.2.1
Analisi del Sito www.saninforma.it .............................................................................. 10
1.2.2
Analisi del Sito www.parafarmacia.it........................................................................... 17
SPECIFICHE DI BASE ......................................................................................................................... 23
CAPITOLO 2
2.1
2.2
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.2.6
2.3
2.4
INTRODUZIONE .................................................................................................................. 24
PACCHETTO XAMPP ......................................................................................................... 24
In Cosa consiste? ......................................................................................................... 24
Web Server Apache ...................................................................................................... 25
Database MySQL ......................................................................................................... 27
PHP .............................................................................................................................. 27
Installazione del Pacchetto XAMMP ............................................................................ 29
Esecuzione XAMPP ...................................................................................................... 30
APTANA STUDIO 3.0.2 ....................................................................................................... 32
WEB BROWSER MOZILLA FIREFOX 5.0 IT .......................................................................... 33
CAPITOLO 3
3.1
3.2
3.2.1
3.2.2
3.2.3
3.3
3.3.1
3.3.2
3.3.3
3.4
3.4.1
3.4.2
– STRUMENTI UTILIZZATI......................................................................... 24
–PROGETTAZIONE E REALIZZAZIONE ................................................. 35
INTRODUZIONE .................................................................................................................. 35
FUNZIONI PHP UTILIZZATE ................................................................................................ 37
Ottenimento del sorgente HTML .................................................................................. 37
Estrapolazione delle informazioni dal sorgente HTML ............................................... 39
Memorizzazione delle informazioni in un database ..................................................... 44
ALGORITMI IMPLEMENTATI PER LA REALIZZAZIONE DELL‟INTERFACCIA ........................... 48
Estrazione codice HTML .............................................................................................. 48
Estrapolazione delle informazioni dal sorgente HTML ............................................... 50
Memorizzazione delle informazioni in un database ..................................................... 64
MEMORIZZAZIONE DELLE INFORMAZIONI .......................................................................... 66
Database Saninforma ................................................................................................... 66
Database Parafarmacia ............................................................................................... 71
CAPITOLO 4
- CMS ZEN CART E CMS E-COMMERCE ................................................. 78
4.1
INTRODUZIONE .................................................................................................................. 78
4.2
CMS ZEN CART ................................................................................................................. 81
4.2.1
In cosa consiste il CMS Zen Cart? ............................................................................... 81
4.2.2
Da chi è distribuito? ..................................................................................................... 82
4.2.3
Requisiti Server per Zen Cart ....................................................................................... 83
4.2.4
Preparare l’installazione di Zen Cart .......................................................................... 83
4.2.5
Installazione Zen Cart in locale ................................................................................... 85
4.2.6
Testing di Zen Cart ....................................................................................................... 92
4.2.7
LINK al sito .................................................................................................................. 96
4.3
CMS OSCOMMERCE........................................................................................................... 97
4.3.1
In cosa consiste il CMS osCommerce? ......................................................................... 97
4.3.2
Da chi è distribuito? ..................................................................................................... 97
4.3.3
Requisiti Server per osCommerce ................................................................................ 98
4.3.4
Preparare l’installazione di osCommerce .................................................................... 98
i
4.3.5
4.3.6
4.3.7
Installazione osCommerce in locale ............................................................................. 99
Testing di OsCommerce ............................................................................................. 102
LINK al sito ................................................................................................................ 105
CAPITOLO 5
5.1
5.2
5.3
5.4
- CONCLUSIONI- .......................................................................................... 106
INTRODUZIONE ................................................................................................................ 106
CONSIDERAZIONI FINALI ................................................................................................. 106
POSSIBILI APPLICAZIONI................................................................................................... 110
SVILUPPI FUTURI ............................................................................................................. 111
RINGRAZIAMENTI ....................................................................................................................... 112
BIBLIOGRAFIA .............................................................................................................................. 114
LIBRI............................................................................................................................................... 114
SITOGRAFIA..................................................................................................................................... 114
ii
INTRODUZIONE
____________________________________________________________________
INTRODUZIONE
Motivazioni
Internet, la Rete delle Reti, è stato sempre descritto come un mondo a sé stante, in
perpetuo mutamento, un luogo dov‟è possibile cercare e trovare quotidianamente
elementi più o meno innovativi ed utili, ma sempre interessanti. E‟ un grande mare
dove c‟è spazio per tutti: per chi aspira ad instaurare relazioni sociali o divertirsi, per
chi svolge approfondimenti e ricerche, per chi punta a realizzare un business come
l‟acquisto e la vendita di prodotti.
La nascita di Internet risale alla fine degli anni sessanta come il risultato di uno
studio commissionato dal Ministero della Difesa degli Stati Uniti ad alcune
università. Lo scopo di questo studio era quello di realizzare una rete militare
finalizzata allo scambio di informazioni veloce e sicuro che fosse in grado di
connettere dei sistemi diversi tra loro, situati in luoghi distanti e di garantire lo
scambio di informazioni anche nel caso in cui parti della rete erano danneggiate.
Oggi, spesso, si associa erroneamente ad Internet il sinonimo di World Wide Web
detto più semplicemente Web, che letteralmente significa “ragnatela”.
Internet, in realtà, è un enorme Rete, dove nel
gergo informatico, una Rete non è altro che un
insieme di calcolatori che comunicano tra di loro
attraverso una grande quantità di cavi, elaboratori
e macchinari tecnici di vari tipi e dimensioni.
Parliamo sempre di qualcosa che potremmo
“toccare” e cioè qualcosa di fisico.
1
INTRODUZIONE
____________________________________________________________________
Per Web (detto anche World Wide Web o più semplicemente W3),invece, si intende
un insieme di oggetti virtuali, di informazioni variamente codificate (testi, immagini,
suoni ecc.) che non potremmo fisicamente toccare.
La comparsa del “WWW” risale a metà degli anni ‟90 per mezzo della geniale
intuizione di Tim Berners Lee. Oggi il Web è l‟applicazione Internet che ha ottenuto
il maggior gradimento da parte degli utenti e questo perché la sua caratteristica
principale è quella di essere interattivo e operare su richiesta, le persone sono in
grado di ricevere quello che vogliono, quando e dove vogliono, al contrario degli
altri media (radio e televisione) che, invece, costringono gli utenti ad un utilizzo in
determinati orari e in determinati luoghi.
Un altro aspetto fondamentale del Web è che garantisce l‟accesso universale
all‟informazione; infatti prima della sua nascita, per accedere a documenti diversi su
computer diversi, occorrevano disparati terminali, collegati a macchine differenti e
con software differenti.
Con l‟avvento del W3 e la realizzazione dell‟accesso universale all‟informazione, se
un documento è disponibile lo è da ogni computer, in ogni località, da parte di ogni
utente autorizzato e attraverso un unico software (Browser).
Tipicamente il Web è organizzato secondo un‟ architettura client/server nella quale
sono previste due tipologie di componenti software: il client (che coincide con il
Browser) è lo strumento a disposizione dell'utente che gli permette l'accesso nel Web
e il server che è un processo in esecuzione su un elaboratore (di norma,è sempre in
esecuzione tranne che in situazioni eccezionali).
Il server mette a disposizione l‟informazione, i client la usano e l‟infrastruttura
utilizzata per questa comunicazione è Internet.
Architettura client/server
2
INTRODUZIONE
____________________________________________________________________
In generale, quindi, possiamo dire che Internet è la Rete, mentre il Web è la Rete
nella Rete che ha permesso di rendere Internet più semplice.
La vera ricchezza di Internet è costituita dalla massa informe di informazioni in
continuo aggiornamento messa a disposizione degli utenti che a causa della sua
vastità può sembrare come “occasionale e disorganizzata”. Quindi Internet presenta il
problema tipico di qualsiasi sistema che contiene troppe informazioni, cioè il
problema di trovarle quando esse servono.
Con il passare del tempo le strategie di mercato di diverse imprese, oltre a basarsi sui
metodi tradizionali che il marketing da sempre ha previsto e proposto, ha deciso che
possono essere attuate anche online; evidentemente ciò è possibile con i mezzi e nei
modi che il Web consente.
Affinché questo possa essere effettuato, si presuppone che si abbia a disposizione i
siti internet che dispongono delle informazioni necessarie, in modo tale che la ricerca
tra le varie informazioni viene svolta in maniera efficiente ed efficace, anche se non
risulta essere certamente facile a causa della vastità di informazioni in cui si và ad
effettuare la ricerca.
La motivazione che ha spinto sempre più aziende nell‟attuare la ricerca online, sta
nel fatto che parecchie informazioni, evidentemente non tutte, sono presenti nel Web
ed inoltre esse possono essere recuperate velocemente e con minori costi.
La ricerca delle informazioni online è alla base del commercio elettronico (chiamato
più comunemente e-commerce) il quale non è altro che un modo per fare business,
realizzare affari, vendere od acquistare per via telematica; ai documenti cartacei
comunemente usati nel commercio tradizionale, si utilizza il computer per presentare
prodotti, fare offerte, vendere, formulare ordini d‟acquisto, pagare, inviare messaggi
ecc.
Al girono d‟oggi per la creazione di siti web aziendali e la realizzazione e gestione di
portali utilizzati per il commercio elettronico, vengono utilizzati degli appositi CMS
(content management system), letteralmente "sistema di gestione dei contenuti".
Un Content Management System è uno strumento software, installato su un Web
Server, realizzato al fine di semplificare la gestione dei contenuti di siti Web,
svincolando l‟amministratore da conoscenze tecniche di programmazione.
3
INTRODUZIONE
____________________________________________________________________
Obiettivi
Scopo principale di questa tesi è quello di esporre il lavoro svolto nel progettare ed
implementare un‟interfaccia, che è stata richiesta e verrà utilizzata dalla Farmacia
Blasi Dott. Giuseppe con sede a Monsampietro Morico (FM), per prelevare delle
informazioni dalle schede tecniche dei parafarmaci presenti in alcuni siti Web. Tali
informazioni potranno così essere successivamente, utilizzate per il commercio
elettronico degli stessi. La lista dei siti web da cui prelevare le informazioni è stata
fornita dagli utilizzatori finali dell‟interfaccia.
Il termine parafarmaco sta ad indicare tutto quello che generalmente può essere
venduto in farmacia e non è registrato come farmaco, ovvero tutto ciò che per
definizione non è soggetto a prescrizione medica e non è mutuabile.
Di questa categoria fanno parte:

Prodotti di cosmesi:
qualsiasi tipo di crema, fango, trucchi e prodotti che abbiano finalità estetiche
o lenitive per piccoli inestetismi.

Prodotti per l’automedicazione
Disinfettanti, cerotti, fasciature, kit pronto soccorso, ovatta sterile, ecc.

Prodotti per l’infanzia
Tutto ciò che riguarda il bambino a partire dai ciucci, omogeneizzati, biscotti,
biberon, ecc. Inoltre ne fanno parte anche i prodotti per la mamma, come ad
esempio reggi seni particolari per la fase dell‟allattamento, tiralatte, ecc.

Prodotti per l’igene
Gran parte dei prodotti di questa categoria riguardano l‟igene personale e
quella dentaria.

Veterinaria
I prodotti per l‟automedicazione degli animali.
Già prima della richiesta specifica di realizzazione dell‟interfaccia, la Farmacia
Blasi, disponeva di un portale web attivo utilizzato per il commercio elettronico di
4
INTRODUZIONE
____________________________________________________________________
parafarmaci. Questo portale era stato realizzato utilizzando il CMS osCommerce, ma,
successivamente, hanno deciso di impiegare il CMS, Zen Cart che ultimamente sta
avendo un notevole successo da parte degli utilizzatori e dagli sviluppatori che fanno
parte del mondo dell‟e-commerce.
La necessità di un interfaccia di questo tipo deriva dall‟esigenza oltre che di
migliorare la vendita online di parafarmaci, ovvero di velocizzare e ottimizzare la
ricerca di informazioni presenti nel web legate alle caratteristiche dei parafarmaci, di
fornire delle valide indicazioni che potranno essere utilizzate per la determinazione
del prezzo di vendita di un prodotto.
La scelta del prezzo con cui vendere un prodotto è sempre un aspetto delicato per
qualsiasi impresa, sia per quelle che operano nel mercato tradizionale e sia per quelle
che operano nel mercato elettronico.
Il prezzo di un prodotto che può essere venduto online richiede molta trasparenza
poiché chi deve acquistare, prima di decidere, ha la possibilità di vistare attraverso
l‟aiuto di agenti intelligenti, motori di ricerca, cataloghi ed indici elettronici, parecchi
siti in grado di fare offerte di prodotti similari oppure degli stessi prodotti aventi però
prezzi di vendita diversi. Il prezzo è tenuto sotto particolare controllo dal cliente,
quindi eventuali differenze se non giustificate da più alto livello qualitativo, migliore
servizio, marchio e immagine aziendale, non potrebbero da lui accettati e quindi si
rivolgerà a quella offerta ritenuta conforme ed in linea con l‟esame fatto.
5
INTRODUZIONE
____________________________________________________________________
Struttura della Tesi
Il primo capitolo della tesi offre la descrizione delle specifiche che l‟interfaccia da
progettare deve soddisfare. In particolare, dato che le specifiche del progetto da
realizzare sono ottenute come il risultato dell‟analisi di due siti Web che sono stati
forniti dall‟utilizzatore dell‟interfaccia, in questo capitolo si parlerà anche degli
aspetti fondamentali che caratterizzano l‟analisi di un sito Web. Successivamente,
invece, verranno descritti i risultati ottenuti attraverso l‟applicazione dei metodi di
analisi, precedentemente esposti, ai due siti web che sono stati forniti.
Nel successivo capitolo vengono elencati gli strumenti necessari per la realizzazione
del progetto. Per ogni strumento si descriverà i requisiti di sistema e le
configurazioni software necessarie affinché esso possa funzionare in maniera
corretta.
Il terzo capitolo tratta la progettazione e la realizzazione dell‟ interfaccia,
descrivendo in maniera accurata tutte le fasi essenziali per il raggiungimento
dell‟obiettivo.
Il quarto capitolo della tesi offre una panoramica sul significato del termine
e-commerce e di come le imprese si sono organizzate in seguito al suo sviluppo.
Inoltre, viene introdotto il concetto di CMS con lo scopo di fornire delle utili
informazioni che potranno essere utilizzate per effettuare un confronto tra i due CMS,
ad oggi, più utilizzati per la realizzazione di portali e-commerce: Zen Cart ed
osCommerce. I due CMS vengono descritti in maniera dettagliata, riportando anche
delle operazioni di test in modo da poter effettuare una comparazione più accurata.
Infine nelle conclusioni, sono esposti i risultati del confronto tra i due CMS: Zen
Cart e osCommerce, le possibili applicazioni e gli sviluppi futuri relativi al progetto
realizzato.
6
CAPITOLO 1– SPECIFICHE DI PROGETTO
____________________________________________________________________
CAPITOLO 1 – SPECIFICHE DI PROGETTO
1.1 Introduzione
Si descrivono ora in dettaglio le specifiche seguite nella realizzazione del progetto,
ricordando che l‟obiettivo finale è quello di realizzare un interfaccia che verrà
utilizzata dalla Farmacia Blasi Dott. Giuseppe con sede a Monsampietro Morico
(FM), per prelevare delle informazioni dalle schede tecniche dei prodotti
parafarmaceutici presenti in alcuni siti web in modo che esse, successivamente,
possono essere utilizzate per il commercio elettronico degli stessi.
Per determinare le specifiche di base che devono essere rispettate nella fase di
progettazione, è stato necessario effettuare un incontro con i richiedenti ,ed allo
stesso tempo utilizzatori dell‟interfaccia, e cioè con i responsabili della Farmacia
Blasi Dott. Giuseppe.
L‟incontro è avvenuto del mese di ottobre 2010. La richiesta forniteci è stata quella
che al fine di potenziare il loro portale e-Commerce di parafarmaci, è necessario
avere a disposizione delle opportune informazioni, che permetteranno sia di
commercializzare un nuovo prodotto e sia di stabilire il prezzo di vendita dello stesso
in modo che non sia venduto con un prezzo maggiore rispetto a quello proposto dalla
concorrenza.
L‟incontro è avvenuto del mese di ottobre 2010 e la richiesta della Farmacia Blasi
Dott. Giuseppe è stata quella che al fine di potenziare il loro portale e-Commerce di
parafarmaci, è necessario avere a disposizione delle opportune informazioni, che
permetteranno sia di commercializzare un nuovo prodotto e sia di stabilire il prezzo
di vendita dello stesso in modo che non sia venduto con un prezzo maggiore rispetto
a quello proposto dalla concorrenza.
I siti web dai quali estrapolare le informazioni richieste sono:

http://www.saninforma.it/

http://www.parafarmacia.it
7
CAPITOLO 1– SPECIFICHE DI PROGETTO
____________________________________________________________________
In questo capitolo verrà spiegato in cosa consiste l‟analisi di un sito web da un punto
di vista generale, per poi passare all‟analisi dettagliata dei due siti web nei quali si
andrà a prelevare le informazioni. Quest‟ ultima risulterà essere fondamentale per
delineare le specifiche su cui si baserà il progetto.
1.2 Analisi di un sito Web
In generale un sito web, può essere definito come un medium strumentale attraverso
il quale si esplica un processo informativo. Il supporto dei messaggi che esso fornirà
al visitatore del sito, si basa su una rappresentazione digitale dei vari media
semiotici, le cui espressioni si intrecciano in maniera variegata. A differenza di altri
media (come ad esempio la carta stampata), alcune caratteristiche espressive di un
sito e persino del suo contenuto sono determinate dal fruitore nel momento in cui
avviene la fruizione.
Da un punto di vista informatico,invece, un sito può essere definito come un insieme
di pagine web collegate tra di loro da riferimenti ipertestuali (detti hyperlink).
Nel Web il passaggio da un hyperlink all‟altro si compie attraverso un processo
paragonabile ai modi del pensiero umano, che procede da un concetto all‟altro, per
progressiva associazione. Ne consegue che i percorsi associativi possibili sono
molteplici, spesso soggettivi, o almeno di una soggettività condivisa tra un gruppo di
utenti con medesimi presupposti culturali o sociali.
Un sito può essere organizzato secondo diversi tipi di strutture, cioè le pagine web
che costituiscono un sito possono essere collegate tra loro in modi differenti. Le
strutture possibili sono le seguenti:

Strutture lineari in cui le pagine sono disposte sequenzialmente l‟una dopo
l‟altra come in un libro. Le strutture lineari possono essere semplici o
complesse, dove queste ultime presentano una o più ramificazioni.

Strutture gerarchiche, il tipo più utilizzato sul web,in cui le informazioni
sono suddivise gerarchicamente, in ordine di importanza,e, man mano che si
naviga nel sito, si entra in pagine il cui argomento e via via più circoscritto.
8
CAPITOLO 1– SPECIFICHE DI PROGETTO
____________________________________________________________________
Di solito si parte da un home page e, attraverso link, si arriva ad altre pagine,
in cui sono trattati gli argomenti principali del sito e si possono trovare nuovi
link a pagine che contengono sottoargomenti.

Reti, in cui non c‟è un ordine preciso: il visitatore del sito organizzato
secondo questa struttura ha estrema libertà di muoversi come meglio crede
all‟interno del sito senza seguire un percorso predefinito.

Strutture complesse, costituite dall‟unione di più strutture viste in precedenza.
Prima della progettazione dell‟interfaccia, si è cercato di analizzare in maniera
dettagliata la struttura dei due siti dai quali si andrà ad estrapolare le informazioni
Nella fase di analisi di un sito è necessario dare delle risposte alle seguenti domande:
o Qual è il contenuto del sito?
o Com’è strutturato il sito?
o
Come avviene la navigazione all’interno del sito?.
Le risposte alle prime due domande sono tra loro correlate; infatti i contenuti e la
struttura di un sito si definiscono reciprocamente. La suddivisione e la
categorizzazione delle pagine (la struttura) è necessariamente determinata dal
contenuto, ed il modo in cui viene organizzato il contenuto di un sito, determina
l‟ossatura del processo di strutturazione.
Per quanto invece riguarda la navigazione all’interno del sito, questa permette di
determinare il modo in cui avviene l‟interazione tra il visitatore ed i contenuti del
sito. In particolare, per descrivere questa iterazione, è importante tenere a mente il
concetto di “flusso”: esso indica essenzialmente con quanta facilità l‟utente può
trovare le informazioni di cui ha bisogno spostandosi da una parte del sito a quella
successiva .
Per ognuno dei due siti che sono stati forniti, verrà fatta un‟analisi accurata che
permetterà di ottenere delle valide risposte alle tre domande precedenti in modo da
delineare quelle che sono le specifiche che il progetto da realizzare deve rispettare.
9
CAPITOLO 1– SPECIFICHE DI PROGETTO
____________________________________________________________________
1.2.1 Analisi del Sito www.saninforma.it
1.2.1.1 Contenuto del sito
Fig. 1-1- Logo di Saninforma
Saninforma.it è un sito e-commerce dinamico che si occupa della vendita di
parafarmaci esclusivamente al consumatore finale.
Sono presenti i prodotti di più di 260 case farmaceutiche per un totale di circa 3250
prodotti .
Essi sono classificati in:

Prodotti per la bellezza

Prodotti per il benessere e sport

Prodotti per il bambino

Prodotti per l’igene
Sia le marche che i prodotti vengono aggiornati con regolarità.
Per aggiornamento delle marche si intende la modifica del nome oppure della
disponibilità, cioè se tutti i prodotti di una casa farmaceutica non vengono più
“commercializzati” nel portale.
Per aggiornamento dei prodotti,invece, si intende:
la modifica del nome
o la modifica del prezzo di vendita
o la modifica della descrizione
o la modifica della disponibilità del prodotto (ovvero se un prodotto non è più
disponibile per la vendita online)
Come la maggior parte dei portali e-commerce, è possibile effettuare uno o più ordini
aggiungendo dei prodotti all‟interno di un carrello elettronico.
10
CAPITOLO 1– SPECIFICHE DI PROGETTO
____________________________________________________________________
Le modalità per il pagamento degli ordini effettuati dal cliente, sono tra quelle più
comuni nel Web e consistono in:

Pagamento con Carta di credito e PayPal: pagamento direttamente dal sito,
al momento dell'ordine.

Pagamento con Contrassegno: pagamento in contanti, al momento della
consegna (costo aggiuntivo del servizio Euro 3,60).

Pagamento con Bollettino postale e Bonifico bancario: pagamento da
effettuare dopo aver ricevuto i prodotti (entro 10 giorni). All'interno del
pacco, troverai la fattura e il bollettino postale già compilato.
Inoltre, Saninforma offre:

Tutela completa della privacy del cliente (i dati sono trattati in base all‟Art.13
D.Lgs. 30 Giugno 2003, n.196)per laTutela della riservatezza dei dati
personali )

Sicurezza dei pagamenti con carta di credito, in quanto le transizioni
attraverso la carta di credito è gestita da una banca e non dal sito stesso.

Fatturazione degli ordini effettuati
11
CAPITOLO 1– SPECIFICHE DI PROGETTO
____________________________________________________________________
1.2.1.2 Struttura del sito
Il sito Saninforma ha una struttura gerarchica basata su 3 livelli, infatti partendo
dalla Home Page (Fig. 1-2) si possono raggiungere le pagine di primo livello, da
queste le pagine di secondo livello e da queste ultime è possibile arrivare alle pagine
di terzo livello.
Fig. 1-2- Home page sito www.saninforma.it
All‟interno di ogni pagina di primo livello (Fig. 1-3) è presente un insieme di nomi
che stanno ad indicare delle sottocategorie di prodotti e ad ogni sottocategoria di
prodotti corrisponde una pagina di secondo livello.
12
CAPITOLO 1– SPECIFICHE DI PROGETTO
____________________________________________________________________
Fig. 1-3- Visualizzazione di una pagina di primo livello nel sito www.saninforma.it
Tutte le pagine di secondo livello (Fig. 1-4) sono strutturate in maniera simile, infatti
esse contengono la lista di uno o più prodotti, dove ogni prodotto è individuato da:
una foto, un nome, una breve descrizione, il prezzo di vendita e 2 pulsanti che
permettono di aggiungere il prodotto al carrello elettronico o ai preferiti.
Fig. 1-4 -Visualizzazione di una pagina di secondo livello nel sito www.saninforma.it
13
CAPITOLO 1– SPECIFICHE DI PROGETTO
____________________________________________________________________
Ciccando il nome di un prodotto presente all‟interno di una pagina di secondo livello
è possibile accedere alle pagine di terzo livello (Fig. 1-5), che sono delle pagine
statiche le quali, per ogni prodotto oltre a fornire le informazioni presenti nella
pagina di secondo livello, fornisce delle informazioni aggiuntive come la modalità
d‟uso, gli ingredienti che lo compongono, le avvertenze ecc.
Fig. 1-5- Visualizzazione di una pagina di terzo livello nel sito www.saninforma.it
14
CAPITOLO 1– SPECIFICHE DI PROGETTO
____________________________________________________________________
La struttura del sito di Saninforma può essere graficamente rappresentata con un
diagramma ad albero come in figura:
Fig. 1-6-Mappa sito www.saninforma.it
1.2.1.3 Navigazione all’interno del sito
Le varie pagine del sito www.saninforma.it possono essere visitate attraverso un
sistema di navigazione globale, infatti,nella parte superiore della Home Page è
presente un menù orizzontale costituito da
link, attraverso i quali è possibile
accedere alle pagine di primo livello.
Questa barra rimane sempre presente anche se si accede alle pagine di secondo e
terzo livello quindi tutte le pagine del sito hanno lo stesso layout della Home Page.
Nelle pagine di secondo livello sono presenti dei link (corrispondenti ai nomi dei
prodotti) che permettono di accedere alle pagine di terzo livello.
Quindi oltre ad essere presente una navigazione globale, in queste pagine è presente
una struttura di navigazione locale basata su dei link.
15
CAPITOLO 1– SPECIFICHE DI PROGETTO
____________________________________________________________________
Inoltre, in qualsiasi pagina del sito, nella parte in alto a sinistra dell‟area del contesto
(ovvero nella zona della pagina in cui sono contenute tutte quelle informazioni che
variano a seconda della pagina che si sta visitando) è presente un percorso costituito
da link (Fig. 1-7) che permette in qualsiasi istante, di sapere la pagina che stai
visitando, di tornare alla pagina che hai visitato precedentemente e tornare alla Home
Page:
Fig. 1-7- Percorso costituito da link all’interno della pagina web
16
CAPITOLO 1– SPECIFICHE DI PROGETTO
____________________________________________________________________
1.2.2 Analisi del Sito www.parafarmacia.it
1.2.2.1 Contenuto del sito
Logo di Parafarmacia.it
Parafarmacia.it è un negozio online per la vendita di prodotti parafarmaceutici.
Nel portale è possibile trovare più di 3000 prodotti appartenenti a più di 300 case
farmaceutiche.
I prodotti sono classificati nelle seguenti categorie:

Animali

Bambini

Bellezza

Igene

Integratori e Alimentari

Salute e Benessere
Anche in questo portale
l‟aggiornamento della marche e dei prodotti vengono
effettuati periodicamente.
L‟aggiornamento delle marche e dei prodotti è lo stesso a quanto riportato in 1.2.1.2
con la differenza che per i prodotti di questo portale, non è possibile modificare la
descrizione in quanto essi non la possiedono.
Anche in questo portale e-commerce è possibile effettuare uno o più ordini
aggiungendo dei prodotti all‟interno di un carrello elettronico.
17
CAPITOLO 1– SPECIFICHE DI PROGETTO
____________________________________________________________________
Le varie modalità di pagamento degli ordini effettuati dal cliente sono le seguenti:

Carte di credito

PayPal

PostePay

Bonifico bancario

In contanti presso tutti gli uffici postali abilitati PostePay o in contanti se si
và a ritirare gli acquisti personalmente
Non è prevista la modalità di pagamento in contrassegno.
Inoltre, Parafarmacia offre:

Trattamento dei dati con correttezza e buon senso

Se il costo dell‟ordine effettuato è uguale o supera i 70 euro, il costo di
spedizione in Italia è gratuito

Gli ordini effettuati sono pronti per la spedizione nel giro di poco tempo, di
norma dentro un giorno lavorativo.
1.2.2.2 Struttura del sito
Il portale Parafarmacia.it presenta una struttura gerarchica basata su 3 livelli.
Dalla Home Page (Fig. 1-8) è possibile scegliere una categoria di prodotti, dove per
ogni categoria corrisponde una pagina di primo livello (Fig. 1-9).
All‟interno di ogni pagina di primo livello, sono presenti dei link cliccabili che
stanno ad indicare le sottocategorie della categoria selezionata.
18
CAPITOLO 1– SPECIFICHE DI PROGETTO
____________________________________________________________________
Fig. 1-8 -Home Page sito www.parafarmacia.it
Fig. 1-9- Pagina di primo livello all’interno del sito www.parafarmacia.it
Ad ogni link cliccabile corrisponde una pagina di secondo livello (Fig. 1-10) nelle
quali sono contenute le informazioni relative ai prodotti che appartengono ad una
sottocategoria.
19
CAPITOLO 1– SPECIFICHE DI PROGETTO
____________________________________________________________________
Tutte le pagine di secondo livello sono strutturate allo stesso modo, infatti
contengono la lista di uno o più prodotti dove ogni prodotto è individuato da: una
foto, un nome, e il prezzo di vendita .
Fig. 1-10- Screenshot pagina di secondo livello nel sito www.parafarmacia.it
Cliccando il nome di un prodotto presente all‟interno di una pagina di secondo livello
è possibile accedere alle pagine di terzo livello (Fig. 1-11), dove per ogni prodotto
oltre a fornire le informazioni presenti nella pagina di secondo livello, è presente un
pulsante che permette di aggiungerlo (dopo averne scelto la quantità) al carrello
elettronico ed una lista in cui sono presenti i nomi dei prodotti aventi gli stessi
principi attivi del prodotto in questione (prodotti simili).
20
CAPITOLO 1– SPECIFICHE DI PROGETTO
____________________________________________________________________
Fig. 1-11- Esempio di pagina di terzo livello nel sito www.parafarmacia.it
Il diagramma ad albero che rappresenta la struttura del portale di Parafarmacia è il
seguente:
Fig. 1-12-Mappa del sito www.parafarmacia.it
21
CAPITOLO 1– SPECIFICHE DI PROGETTO
____________________________________________________________________
1.2.2.3 Navigazione all’interno del sito
La navigazione tra le pagine che costituiscono il portale di Parafarmacia.it viene
effettuata attraverso un sistema di navigazione globale, infatti nella parte superiore
della Home Page è presente un menù orizzontale costituito da
link cliccabili,
attraverso i quali è possibile accedere alle pagine di primo livello.
Il menù orizzontale in alto alla Home Page rimane sempre presente, anche se si
accede alle pagine di livelli inferiori,quindi è possibile dire che tutte le pagine che
costituiscono il portale di Parafarmacia hanno lo stesso layout della Home Page.
Nelle pagine di secondo livello, le immagini ed i nomi dei prodotti sono dei link
cliccabili che permettono di accedere alle pagine di terzo livello, quindi oltre ad
essere presente una navigazione globale nelle pagine di secondo livello è presente
una struttura di navigazione locale basata su dei link.
Anche in questo sito tutte le pagine web che lo costituiscono mostrano nella parte in
alto a sinistra un percorso costituito da link (Fig. 1-13) che permette in qualsiasi
istante, di sapere la pagina che stai visitando, di tornare alla la pagina che hai visitato
precedentemente e tornare alla Home Page:
Fig. 1-13- Pagina Web con in evidenzia il percorso cliccabile (evidenziato in rosso)
22
CAPITOLO 1– SPECIFICHE DI PROGETTO
____________________________________________________________________
Specifiche di base
I due siti, come già detto, sono entrambi portali per la vendita online di prodotti
parafarmaceutici. Le informazioni che si andranno a prelevare dal loro contenuto, per
la realizzazione dell‟interfaccia richiesta, non sono altro che delle caratteristiche dei
parafarmaci.
Per raggiungere l‟obiettivo richiesto è necessario memorizzare in un opportuno
database (un insieme di archivi collegati secondo un particolare modello logico),
tutti i prodotti presenti all‟interno di ogni sito, dove per ogni parafarmaco è
necessario tener traccia dei seguenti elementi:

Il Nome

Una descrizione, se disponibile (nel sito di Saninforma è presente una
descrizione per ogni prodotto, mentre nel sito di Parafarmacia le descrizioni
dei prodotti non sono presenti)

Un link che, cliccandolo, permette di accedere alle informazioni aggiuntive
del prodotto (come per esempio la modalità d‟uso, la composizione, ecc.)

Casa Farmaceutica che lo ha prodotto

Il Prezzo di vendita al cliente
La conoscenza del nome delle case farmaceutiche produttrici di parafarmaci è molto
importante in quanto consente di distinguere i parafarmaci in base ai loro produttori.
In particolare, in entrambi i siti è presente un “motore di ricerca interno” che
consente di visualizzare tutti i prodotti di una casa farmaceutica dopo averla
selezionata da un menù a tendina.
Dato che il prezzo di vendita di un prodotto può variare in maniera più o meno
frequente, è stato inoltre richiesto di creare uno “Storico Prezzo”, ovvero di
memorizzare per ogni specifico prodotto il prezzo di vendita e la data in cui quel
prodotto è venduto a quel prezzo. In questo modo è possibile determinare l‟
andamento nel tempo del prezzo di vendita di ogni singolo prodotto.
23
CAPITOLO 2– STRUMENTI UTILIZZATI
____________________________________________________________________
CAPITOLO 2 – STRUMENTI UTILIZZATI
2.1 Introduzione
Al fine di realizzare il nostro progetto, vengono utilizzati i seguenti strumenti:

Server con sistema operativo Windows 7 (http://windows.microsoft.com)

Pacchetto XAMPP 1.7.4 per piattaforma Windows
(http://apachefriends.org/en/xampp-windows.html)

Zen Cart 1.3.9 in Italiano (http://www.zencart.it/download/viewcategory/14-zen-cart-italiano)

Aptana Studio 3.0.2 (http://www.aptana.com/products/studio3/download)

Web Browser Mozilla Firefox 5.0 it (http://www.mozilla.com/it/firefox/)
Le versioni dei software sopraelencati e, tutte quelle che verranno utilizzate per la
realizzazione di questo progetto, rappresentano le versioni recenti disponibili al
momento della stesura della tesi.
2.2 Pacchetto XAMPP
2.2.1 In Cosa consiste?
Nello sviluppare siti web o applicazioni basati su siti web è conveniente lavorare in
in locale (ovvero lo stesso computer svolgerà contemporaneamente sia il ruolo di
Server e sia di Client): e trasferire il tutto sul server remoto solo una volta che si è
ottimizzata la configurazione per lo scopo che ci si è prefissati. Ciò permette di avere
una maggiore velocità, poiché non sarà necessario operare sul server trasferendo i
file ogni volta che è necessario apportare qualche modifica e perché non si hanno
restrizioni imposte dai limiti di banda.
24
CAPITOLO 2– STRUMENTI UTILIZZATI
____________________________________________________________________
Una volta terminato il progetto, si potrà effettuare l‟upload di tutto il lavoro svolto su
di un server, su cui saranno stati precedentemente installati gli strumenti citati in
precedenza: in questo modo, l‟interfaccia implementata potrà lavorare online.
Per poter sviluppare in locale è necessario avere a disposizione i seguenti software

Web Server Apache 2.2.17 (www.apache.org)

PHP 5.3.5 (www.php.net)

Database MySQL 5.5.8 Community Server (www.mysql.com)
Per semplificare il processo di installazione e configurazione è possibile procurarsi il
pacchetto XAMPP che contiene tutti i software precedenti (ed alcuni altri:) già
configurati per le esigenze più comuni.
2.2.2 Web Server Apache
Un web server è un programma molto semplice. Accetta una connessione su una
porta specifica, gestisce le richieste da parte dei client ed invia una risposta. A livello
più elementare un web server crea semplicemente un file collocato in una posizione
specifica all‟interno del file system.
Fig. 2-1-Rappresentazione di come si interagisce nel WEB
I web server sono stati sviluppati per incorporare molte altre funzioni come la
possibilità di attivare script in diversi linguaggi, l‟interazione con i database, la
fornitura di autenticazioni, le connessioni criptate e l‟esecuzione di procedure di ogni
tipo.
25
CAPITOLO 2– STRUMENTI UTILIZZATI
____________________________________________________________________
Apache è il web server leader su Internet, ma non solo: è uno dei principali progetti
Open Source (Open Source indica un software i cui autori,più precisamente i
detentori dei diritti, ne permettono, anzi ne favoriscono il libero studio e l'apporto di
modifiche da parte di altri programmatori indipendenti. Questo è realizzato mediante
l'applicazione di apposite licenze d‟uso).
Circa il 70% di siti Web utilizza qualche versione di Apache; questo perché Apache
è gratuito, supporta i linguaggi: PERL, PHP, ASP, ISAPI e d offre dei validi supporti
per molte tecnologie web. Inoltre si può configurare su molti sistemi operativi,
compresi Windows e Max OS X. Apache ha una vasta gamma di strumenti per la
configurazione e può contare sul supporto di molte persone esperte.
Il Web Server Apache presenta un'architettura modulare, quindi ad ogni richiesta del
Client vengono svolte funzioni specifiche da ogni modulo di cui è composto, come
unità indipendenti. Ciascun modulo si occupa di una funzionalità, ed il controllo è
gestito dal core.
Fig. 2-2-Architettura del Web Server Apache
I moduli sono:

Core: programma principale composto da un ciclo sequenziale di chiamate ai
moduli.

Translation: traduce la richiesta del client

Acces Control: controlla eventuali richieste dannose

MIME Type: verifica il tipo di contenuto

Response: invia la risposta al client e attiva eventuali procedure

Logging: tiene traccia di tutto ciò che è stato fatto
26
CAPITOLO 2– STRUMENTI UTILIZZATI
____________________________________________________________________
Il core suddivide la richiesta ai vari moduli in modo sequenziale, usando i parametri
di uscita di un modulo come parametri di accesso per l'altro, creando così l'illusione
di una comunicazione orizzontale fra i moduli Sopra il ciclo del core c'è un ulteriore
ciclo di polling svolto da un processo demone (è un processo che non è associato a
un terminale di controllo e fornisce un servizio)che interroga continuamente le linee
logiche da cui possono pervenire messaggi di richiesta.
L‟ultima versione di Apache Web Server è la 2.2.19 distribuita dal 22 maggio 2011.
2.2.3 Database MySQL
La maggior parte dei servizi disponibili sul Web è fornita da applicativi basati su
database. Posta elettronica via web, shopping online, forum, siti aziendali ecc. sono
tutti servizi gestiti da Database; quindi per costruire un sito web all‟avanguardia è
necessario sviluppare un applicativo con database.
Il DBMS (Database Management System) più comune in queste soluzioni è MySQL
(chiamato più correttamente Relational Database Management System o RDBMS in
quanto è un DBMS basato sul modello relazionale); esso è. un sistema estremamente
rapido e facile da utilizzare, distribuito sotto la licenza Open Source dalla società che
lo ha sviluppato MySQLAB.
2.2.4 PHP
Un Web Server come Apache e MySQL sono tutto ciò che è necessario per
sviluppare un applicativo Web con database. Quello che manca è un collante per far
“parlare” il Web Server con il database o, in altre parole, un modo per incorporare
le operazioni del database nelle pagine web .
Il collante più famoso per portare a termine questo compito è PHP.
27
CAPITOLO 2– STRUMENTI UTILIZZATI
____________________________________________________________________
PHP è un linguaggio di programmazione completo (full function) lato server che
genera un contenuto dinamico, ossia che cambia in funzione alla richiesta del client.
Essendo un linguaggio interamente lato server, una volta che il client richiede una
pagina, le istruzioni PHP vengono elaborate, sostituite con del codice HTML
(l‟output di tale operazione), ed inviate al client (che dunque non si vedrà mai
recapitare neanche una riga di codice PHP).
28
CAPITOLO 2– STRUMENTI UTILIZZATI
____________________________________________________________________
2.2.5
Installazione
del Pacchetto XAMMP
Prima di installare XAMMP bisogna abilitare le seguenti porte nel firewall del
computer in modo da non consentire l‟accesso ad altre macchine in rete:
PORTA PROTOCOLLO SOFTWARE
80
HTTP
Apache Web Server
3306
MySQL
MySQL Database Server
25
SMTP
Mercury Mail Server
110
POP
Mercury Mail Server
Tabella 2-1-Porte da abilitare nel firewall prima di procedere all’installazione di XAMPP
Una volta abilitate le porte nel firewall è possibile iniziare l‟installazione di XAMPP.
Per fare questo:

Si lancia il file con estensione .exe scaricato dall‟link indicato in precedenza.

Si deve scegliere una cartella per installare XAMPP nel campo Cartella di
destinazione e cliccare installa.

Una volta completata l‟installazione, nella cartella in cui è installato XAMPP,
si avrà una struttura di cartelle simile a quella in figura.
Fig. 2-3-Struttura della cartella di XAMPP
29
CAPITOLO 2– STRUMENTI UTILIZZATI
____________________________________________________________________
2.2.6 Esecuzione XAMPP
Per mandare in esecuzione XAMPP bisogna eseguire i seguenti passi:
1. Dal menù Windows cliccare: apachefriends>xampp>CONTROL XAMPP
SERVER PANEL, in modo che si apra un pannello di controllo come quello
in figura.
Fig. 2-4-Pannello di controllo di XAMPP
2. Per mandare in esecuzione i programmi Apache e MySql, cliccare sui
rispettivi bottone Start, in modo da ottenere la seguente configurazione:
Fig. 2-5-Abilitazione dei servizi Apache e MySQL nel pannello di controllo di XAMPP
3. Aprendo il browser all'indirizzo http://localhost/xampp, dove in informatica
localhost è il nome associato all‟indirizzo 127.0.0.1 che può essere usato
dalle applicazioni per comunicare con lo stesso sistema su cui sono in
30
CAPITOLO 2– STRUMENTI UTILIZZATI
____________________________________________________________________
esecuzione, comparirà la pagina di controllo di XAMPP da cui sarà possibile
accedere ad alcuni servizi come phpMyAdmin.
Fig. 2-6-Pagina iniziale di XAMPP
A questo punto si ha a disposizione tutto ciò che è necessario per sviluppare un
applicativo Web con database
31
CAPITOLO 2– STRUMENTI UTILIZZATI
____________________________________________________________________
2.3 Aptana Studio 3.0.2
Aptana Studio è un IDE (ambiente di sviluppo integrato) professionale per lo
sviluppo di applicazioni web e siti.
Aptana è un software rilasciato con licenza open source (GNU General Public
License): può essere scaricato gratuitamente e utilizzato liberamente anche per scopi
commerciali. ed è disponibile per Linux, Mac e Windows. Si tratta di una soluzione
molto completa che affianca strumenti per lo sviluppo di applicazioni Web a servizi
nline di collaborazione ed hosting.
Gli strumenti disponibili attraverso Aptana sono numerosi e possono essere riassunti
in questo elenco

digitare codice HTML, CSS e JavaScript in modo assistito, per la
creazione di fogli di stile CSS vengono anche forniti dei suggerimenti dal
programma stesso e per il markup HTML sono disponibili tutte le proprietà e
gli elementi;

supporto per l'evidenziazione della sintassi dei codici tramite colorazione;

auto-completamento del codice in sede di sviluppo per velocizzare la
digitazione del listato;

strumenti per la creazione e la gestione di progetti all'interno dei quali
sviluppare pagine e applicazioni, include un sistema di visualizzazione per
tener traccia delle gerarchie e dei percorsi di file, cartelle e sottocartelle;

strumenti integrati per il debugging di applicazioni JavaScript grazie
all'integrazione di Firedebug con Firefox, la versione Pro di Aptana consente
anche di effettuare procedure di debugging su Internet Explorer;

 disponibilità di strumenti per l'interazione con i database relazionali, sia
in locale che in remoto;

supporto completo per il trasferimento di file da locale a remoto e
viceversa, l'applicazione potrà essere utilizzata anche come client FTP per
l'upload dei propri progetti in Rete o per il download di file in locale;
32
CAPITOLO 2– STRUMENTI UTILIZZATI
____________________________________________________________________

grande disponibilità di plug-in per l'estensione delle funzionalità già previste
dal core dell'applicazione.
La versione di Aptana Studio usata per lo sviluppo del progetto è la 3.0.2 ed è
disponibile
tramite
il
seguente
link:
http://www.aptana.com/products/studio3/download.
2.4 Web Browser Mozilla Firefox 5.0 it
I browser sono Client che usano un‟interfaccia grafica per visualizzare i documenti
contenuti nei siti del World Wide Web.
Sono costituiti da un nucleo software principale che implementa le funzioni di base
(interazione http, interpretazione codice HTML, XML, JavaScript, esecuzione
programmi Java,…); inoltre essi consento l‟accesso a servizi basati su diversi
protocolli W3:

mail (MAILTO)

File Transer (FTP)

News (NNTP)
Le funzionalità base messe a disposizione da un Browser posso essere estese
attraverso l‟uso di Plug-In o Helper,moduli software dedicati alla gestione di
particolari tipologie di documenti (testi Pdf, filmati RealPlayer, animazioni Quick
Time,…).
I Browser più noti e diffusi sono:

Internet Explorer

Mozilla

Safari

Opera

Lynx

Google Chrome
33
CAPITOLO 2– STRUMENTI UTILIZZATI
____________________________________________________________________
Nello sviluppo del progetto è stato utilizzato il web browser Mozilla Firefox 5.0 in
italiano.
Mozilla Firefox è un web browser open source multipiattaforma prodotto da Mozilla
Foundation. Firefox attualmente è il web browser più utilizzato al mondo dopo
Internet Explorer.
Nello sviluppo del progetto si è scelto di utilizzare Mozilla Firefox perché, oltre ad
essere Open Source,offre un compilatore JavaScript molto veloce e fornisce delle
funzionalità avanzate legate alle possibilità di espandere le componenti; infatti
esistono numerosi Plug-In aggiuntivi che possono essere utilizzati per arricchire le
funzionalità di Firefox.
Una volta terminato, il progetto è stato testato utilizzando, anche, i browser Internet
Explorer e Google Chrome in quanto il primo è quello più utilizzato dai “navigatori
del web”, mentre il secondo è un browser che sta avendo un notevole successo per
quanto riguarda la sua popolarità.
34
CAPITOLO 3–PROGETTAZIONE e REALIZZAZIONE
____________________________________________________________________
CAPITOLO 3 –PROGETTAZIONE e REALIZZAZIONE
3.1 Introduzione
In questo capitolo vengono descritti in dettaglio tutti i passi da seguire per la
progettazione e la realizzazione dell‟interfaccia, rispettando le specifiche di progetto.
Tramite l‟analisi dei due siti svolta ( vedi CAPITOLO 1), si è in grado di determinare
quali sono le informazioni da ricercare ed in quali pagine del sito ricercarle; in modo
da garantire il raggiungimento dell‟obiettivo che ci siamo proposti .
Sia il portale di Saninforma che quello di Parafarmacia, come tutti i siti e portali web,
sono scritti in HTML e quindi le informazioni da prelevare dal loro interno sono
contenute tra dei tag o marcatori HTML, dove un marcatore è generalmente una
parola racchiusa tra parentesi angolate < >. Per questo motivo vengono implementati
degli algoritmi che vanno ad effettuare particolari ricerche nel codice sorgente di
ogni opportuna pagina web del sito.
Affinché questo possa essere effettuato però, è necessario avere a disposizione il
sorgente HTML di ogni pagina.
Quindi, il primo passo è quello di creare una funzione che, fornito l‟indirizzo di una
pagina web (URL o Uniform Resource Locator ovvero una sequenza di caratteri che
identifica univocamente l‟indirizzo mnemonico di una risorsa in Internet, come un
documento, un'immagine o una pagina web come in questo caso.), permette di
ottenere come output il codice HTML della stessa. Successivamente, avendo a
disposizione il codice HTML è possibile implementare degli algoritmi che permetto
di effettuare delle specifiche ricerche all‟interno del codice stesso.
Infine, una volta che si hanno a disposizione tutte le informazioni desiderate, esse
possono essere memorizzate in un‟ opportuna base dati.
Tutti gli algoritmi implementati sono scritti utilizzando il linguaggio PHP (Hypertext
Processor). La scelta di questo tipo di linguaggio è stata scaturita prima di tutto
35
CAPITOLO 3–PROGETTAZIONE e REALIZZAZIONE
____________________________________________________________________
perchè il PHP è un linguaggio di scripting per il web progettato proprio per risolvere
”i problemi legati al web”, in secondo luogo perché è un linguaggio che è stato
trattato durante il percorso didattico ed infine perché il PHP fornisce una grande
quantità di funzioni e applicazioni Open Source, come ad esempio le funzioni che
permettono di interfacciarsi con il database MySQL .
36
CAPITOLO 3–PROGETTAZIONE e REALIZZAZIONE
____________________________________________________________________
3.2 Funzioni PHP utilizzate
Il termine funzione sta ad indicare un blocco di codice che può richiedere uno o più
parametri in ingresso e può fornire un valore di uscita.
PHP mette a disposizione numerose funzioni predefinite, di cui non si hanno
sottomano il codice ma risultano molto utili o talvolta indispensabili nella
programmazione.
Le funzioni PHP predefinite utilizzate nel progetto sono classificate in:
o funzioni utilizzate per prelevare il sorgente HTML di una pagina web
o funzioni utilizzate per l‟estrapolazione di dati dal codice HTML
o funzioni utilizzate per salvare dati all‟interno di un database MySQL
Successivamente per ognuna di esse verrà presentata una breve descrizione, la
sintassi ed il valore di ritorno.
3.2.1 Ottenimento del sorgente HTML
In informatica, una pagina web è definita come un file residente su uno specifico
elaboratore che viene chiamato Web Server. Sulla base di questa definizione si
intuisce che, una pagina web può essere trattata come un normale file di testo, dove il
percorso in cui è memorizzata coincide con l‟URL assoluto. Quest‟ultimo include
tutti gli elementi necessari per identificare univocamente una particolare risorsa tra
tutte quelle disponibili su Internet.
Quindi per ogni pagina web per la quale è noto il suo URL assoluto, possono essere
utilizzate tutte quelle funzioni PHP che permetto di elaborare un normale file di testo
del quale si è a conoscenza del percorso di memorizzazione.
La funzione utilizzata per ottenere il sorgente di una pagina web, conoscendo il suo
URL è la funzione file().
37
CAPITOLO 3–PROGETTAZIONE e REALIZZAZIONE
____________________________________________________________________
3.2.1.1 file()
Permette di effettuare la lettura di un file.
SINTASSI:
array file( string $filename [ int $flags = 0])
filename è il path o URL del file.
flags è un parametro opzionale che può essere una, o più, delle seguenti
costanti: FILE_USE_INCLUDE_PATH cerca il file nell‟ include_path,
FILE_IGNORE_NEW_LINES non aggiunge una nuova linea alla fine di ogni
elemento dell‟array, FILE_SKIP_EMPTY_LINES salta le righe vuote.
VALORE DI RETURN:
Restituisce il file in un array.
Ogni elemento dell'array corrisponde ad una riga del file, con il ritorno a capo
ancora attaccato.
In caso di errore della funzione file () viene restituito il valore FALSE.
Dato che, alcuni caratteri hanno significati particolari in HTML, essi devono essere
rappresentati tramite entità HTML, se devono mantenere il proprio significato. Per
questa ragione, viene utilizzata la funzione htmlspecialchars()
3.2.1.2 htmlspecialchars()
Converte i caratteri speciali in entità HTML
SINTASSI:
String htmlspecialchars ( string string [, int quote_style [, string charset]] )
VALORE DI RETURN:
Questa funzione restituisce restituisce una stringa con la conversione di alcuni
caratteri particolari; la conversione svolta non è sempre valida nell'ambito
della programmazione web
38
CAPITOLO 3–PROGETTAZIONE e REALIZZAZIONE
____________________________________________________________________
3.2.2 Estrapolazione delle informazioni dal sorgente HTML
Per l‟estrapolazione delle informazioni dal sorgente HTML di una pagina web
vengono implementati degli algoritmi nei quali si utilizzano delle funzioni PHP
predefinite basate su espressioni regolari.
Le espressioni regolari sono dei particolari costrutti sintattici che permettono di
svolgere delle operazioni di pattern matching, cioè servono per rilevare la presenza
di un modello o pattern all'interno di una sequenza di caratteri principale.
Per pattern si intende
una sequenza di caratteri (stringa) costituita secondo
specifiche regole sintattiche e semantiche delle espressioni regolari.
In PHP esistono due classi di espressioni regolari: le POSIX e quelle compatibili con
PERL. Le differenze tra le due espressioni riguardano essenzialmente la sintassi da
utilizzare.
In questo studio vengono utilizzate le espressioni regolari ti tipo POSIX, il cui pattern
è formato da caratteri semplici o da metacaratteri:

Caratteri Semplici: rappresentano, e quindi corrispondono, a se stessi.
Ciascun carattere semplice in un pattern può essere considerato come un
elemento di base della espressione regolare , nel senso che viene ricercato
singolarmente all'interno di una sequenza di caratteri principale;

Metacaratteri: sono dei caratteri che, all'interno di una stringa, non
rappresentano sé stessi bensì un insieme di altri caratteri o sequenze di
caratteri.
39
CAPITOLO 3–PROGETTAZIONE e REALIZZAZIONE
____________________________________________________________________
Nella tabella successiva (
Tabella 3-1) vengono elencati i metacaratteri utilizzati nello svolgere le operazioni di
pattern matching necessarie per l‟estrapolazione di dati dal sorgente HTML di una
pagina web.
SINTASSI
SIGNIFICATO DELL’’ESPRESSIONE REGOLARE
.
Rappresenta qualsiasi carattere (escluso un acapo)
+
Indica una o più occorrenze (di un carattere o di un gruppo di caratteri)
\
Carattere di escape dei caratteri speciali
^
{}
(.+)
{}
Indica l'inizio della stringa (o, se all'interno di una classe di caratteri, la
negazione della stessa)
Utilizzato per indicare il numero esatto, o minimo, o massimo, o l'intervallo
di occorrenze (di un carattere o di un gruppo di caratteri)
Indica qualsiasi carattere ripetuto una o più volte
Utilizzato per indicare il numero esatto, o minimo, o massimo, o l'intervallo
di occorrenze (di un carattere o di un gruppo di caratteri)
È un metacarattere composto perché è formato da una sequenza di caratteri
racchiusi tra parentesi quadre. . Da un punto di vista logico, però, tutto ciò
[a-z]
che è racchiuso fra parentesi quadre è considerato come facente parte di un
unico modello.
In questo modello è presente un intervallo di caratteri , esso è soddisfatto
quando viene trovato uno qualsiasi dei caratteri compresi nell'intervallo;
È un metacarattere composto perché è formato da una sequenza di caratteri
racchiusi tra parentesi quadre. . Da un punto di vista logico, però, tutto ciò
[0-9]
che è racchiuso fra parentesi quadre è considerato come facente parte di un
unico modello.
In questo modello è presente un intervallo di numeri, esso è soddisfatto
quando viene trovato uno qualsiasi dei numeri compresi nell'intervallo;
Tabella 3-1 – Descrizione delle espressioni regolari utilizzate nel progettazione dell’interfaccia
Di seguito sono indicate le funzioni predefinite PHP basate su espressioni
regolari che sono state utilizzate per la realizzazione del progetto con lo scopo
di prelevare le informazioni desiderate dal sorgente HTML di pagine web.
40
CAPITOLO 3–PROGETTAZIONE e REALIZZAZIONE
____________________________________________________________________
3.2.2.1 preg_match_all()
Esegue un riconoscimento globale con le espressioni regolari
SINTASSI:
int preg_match_all ( string espressione_regolare, string testo, array
TestiRiconosciuti [, int flags [, int offset]])
La funzione ricerca tutte le espressioni regolari passate nel parametro
espressione_regolare all'interno della stringa testo. I testi riconosciuti sono
posti all'interno della matrice TestiRiconosciuti, nell'ordine specificato da
flags.
Dopo avere riconosciuto il primo segmento di testo, le ricerche seguenti
saranno effettuate a partire dall'ultima ricerca specificata.
Il parametro flags può essere la combinazione dei seguenti flag (da notare che
non ha senso utilizzare PREG_PATTERN_ORDER in unione a PREG_SET_ORDER):
PREG_PATTERN_ORDER
I testi riconosciuti saranno organizzati in modo tale da avere in
$TestiRiconosciuti[0] la matrice di tutti i testi riconosciuti, in
$TestiRiconosciuti[1] la matrice di tutti i testi che soddisfino il primo
criterio
di
riconoscimento
posto
tra
parentesi
tonde,
in
$TestiRiconosciuti[2] si avranno i testi che soddisfino il secondo
criterio e cosi via.
PREG_OFFSET_CAPTURE
Se viene impostato questo flag, per ogni testo riconosciuto viene
restituito l'offset della stringa. Occorre notare che questo cambia il
tipo di valore restituito nell'array, infatti ogni elemento è, a sua volta,
un'array composto dalla stringa riconosciuta, all'indice 0, e dall'offset
della stringa nell'indice 1. Questa costante è disponibile a partire dalla
versione 4.3.0 di PHP.
Qualora non si specifichi il parametro flags, si assume per default il valore
PREG_PATTERN_ORDER.
41
CAPITOLO 3–PROGETTAZIONE e REALIZZAZIONE
____________________________________________________________________
VALORE DI RETURN:
La funzione restituisce il numero dei riconoscimenti completi svolti (che
possono essere zero), oppure FALSE se si verificano degli errori.
3.2.2.2 preg_match()
Riconoscimento con espressioni regolari
SINTASSI
mixed preg_match ( string criterio, string testo [, array testi_riconosciuti [,
int flags [, int offset]]])
Esegue un riconoscimento nel parametro testo utilizzando l'espressione
regolare indicata in criterio.
Se viene fornito il terzo parametro, testi_riconosciuti, questo verrà valorizzato
con i risultati della ricerca. In dettaglio $testi_riconosciuti[0] conterrà il testo
che si incrocia con l'intero criterio di ricerca, $testi_riconosciuti[1] conterrà il
testo che soddisfa il primo criterio posto tra parentesi, $testi_riconosciuti[2] il
secondo e così via.
Il parametro flags può assumere i seguenti valori:
PREG_OFFSET_CAPTURE
Se viene impostato questo flag, per ogni testo riconosciuto viene restituito
l'offset della stringa. Occorre notare che questo cambia il tipo di valore
restituito nell'array, infatti ogni elemento è, a sua volta, un'array composto
dalla stringa riconosciuta, all'indice 0, e dall'offset della stringa nell'indice 1
VALORE DI RETURN:
La funzione preg_match() restituisce il numero di volte in cui è avvenuto il
riconoscimento del criterio. Questo può essere 0 (nessun riconoscimento)
oppure 1 se preg_match() si ferma dopo il primo riconoscimento. In
condizioni normali, preg_match_all() continua il riconoscimento fino alla
fine del parametro testo. preg_match() restituirà FALSE se si verifica un
errore.
42
CAPITOLO 3–PROGETTAZIONE e REALIZZAZIONE
____________________________________________________________________
3.2.2.3 preg_replace()
Esegue una ricerca ed una sostituzione con le espressioni regolari
SINTASSI:
mixed preg_replace ( mixed espressione_regolare, mixed sostituto, mixed
testo [, int limite])
La funzione ricerca in testo i criteri impostati in espressione_regolare. Se
riconosce dei testi, li sostituisce con sostituto. Se si specifica limite, verranno
sostituiti solamente limite testi riconosciuti; se viene omesso, oppure
impostato a -1, verranno sostituiti tutti i testi riconosciuti.
VALORE DI RETURN:
Se verranno riconosciuti dei testi, la funzione restituisce la nuova versione di
testo, altrimenti il parametro sarà restituito inalterato.
3.2.2.4 expolode()
Suddivide una stringa
SINTASSI:
array explode ( string separator, string string [, int limit])
Questa funzione restituisce una matrice di stringhe, ciascuna delle quali è una
parte di string ottenuta dividendo la stringa originale utilizzando separator
come separatore di stringa. Se si imposta limit la matrice restituita conterrà al
massimo limit elementi di cui l'ultimo conterrà la parte restante di string.
VALORE DI RETURN:
Se il parametro separator è impostato ad una stringa vuota (""), la funzione
explode() restituirà FALSE. Se separator contiene caratteri non presenti in
string, allora explode() restituirà una matrice contenente string.
43
CAPITOLO 3–PROGETTAZIONE e REALIZZAZIONE
____________________________________________________________________
3.2.3 Memorizzazione delle informazioni in un database
Le funzioni PHP utilizzate per memorizzare i dati ed, in particolare, per interagire
con il DBMS MySQL sono le seguenti:
3.2.3.1 mysql_connect()
Apre (stabilisce)una connessione ad un server MySQL
SINTASSI:
resource mysql_connect ( [string server [, string nome_utente [, string
password [, bool nuova_connessione [, int client_flags]]]]])
I seguenti valore predefiniti sono assunti per i parametri opzionali mancanti:
server = 'localhost:3306', nome_utente = nome dell'utente proprietario del
processo server e password = password vuota.
VALORE DI RETURN:
Restituisce un identificativo di connessione MySQL in caso di successo
oppure FALSE in caso di fallimento.
3.2.3.2 mysql_close()
Chiude una connessione MySQL
SINTASSI:
bool mysql_close ( [resource identificativo_connessione])
mysql_close()
chiude
la
connessione
al
server
MySQL
associata
all'identificativo di connessione specificato. Se identificativo_connessione
non è specificato, viene usata l'ultima connessione aperta.
VALORE DI RETURN:
Restituisce TRUE in caso di successo, FALSE in caso di fallimento.
44
CAPITOLO 3–PROGETTAZIONE e REALIZZAZIONE
____________________________________________________________________
3.2.3.3 mysql_ query()
Invia una query MySQL
SINTASSI:
resource mysql_query ( string query [, resource identificativo_connessione
[, int modo_risultato]])
Permette di nviare una query al database attualmente attivo sul server
associato
all'identificativo
di
conmnessione
specificato.
Se
identificativo_connessione non è specificato, viene considerata l'ultima
connessione aperta. Se nessuna connessione è aperta, la funzione prova a
stabilire una connessione come se mysql_connect() fosse richiamata senza
argomenti ed usa questa. Il paramentro opzionale modo_risultato può essere
MYSQL_USE_RESULT e MYSQL_STORE_RESULT. Il valore predefinito
MYSQL_STORE_RESULT, così il risultato è bufferato.
VALORE DI RETURN:
Restituisce TRUE in caso di successo e FALSE in caso di errore.
3.2.3.4 mysql_fetch_row()
Ottiene una riga del risultato come un array enumerato
SINTASSI:
array mysql_fetch_row ( resource risultato)
mysql_fetch_row() carica una riga di dati dal risultato associato
all'identificativo specificato. La riga è restituita com un array. Ogni colonna
del risultato è memorizzata in un indice dell'array, partendo dall'indice 0.
VALORE DI RETURN:
Restituisce un array che corrisponde ad una riga caricata oppure FALSE se non
ci sono più righe.
45
CAPITOLO 3–PROGETTAZIONE e REALIZZAZIONE
____________________________________________________________________
3.2.3.5 mysql_fetch_array()
Carica una riga del risultato come un array associativo, un array numerico o
entrambi.
SINTASSI:
array mysql_fetch_array ( resource risultato [, int tipo_risultato])
mysql_fetch_array() è una versione estesa di mysql_fetch_row().Oltre a
memorizzare i dati del risultato in array con indice numerico, questa li
memorizza anche con indici associativi usando i nomi dei campi come chiavi.
VALORE DI RETURN:
Restituisce un array che corrisponde alla riga caricata o FALSE se non ci sono
più righe.
3.2.3.6 mysql_num_rows()
Ottiene il numero di righe in un risultato
SINTASSI:
int mysql_num_rows ( resource risultato)
VALORE DI RETURN:
Restituisce il numero di righe in un risultato. Questo comando è valido solo
per le istruzioni SELECT
46
CAPITOLO 3–PROGETTAZIONE e REALIZZAZIONE
____________________________________________________________________
3.2.3.7 mysql_result()
Ottiene i dati dal risultato
SINTASSI:
mixed mysql_result ( resource risultato, int campo [, mixed campo])
L'argomento campo può essere l'indice o il nome del campo oppure il nome
della
tabella
ed
il
nome
del
campo
separati
da
un
punto
(nome_tabella.nome_campo). Se il nome della colonna ha un alias ('select foo
as bar from...'), usare l'alias al posto del nome della colonna.
VALORE DI RETURN:
Restituisce i contenuti di una cella da un risultato MySQL.
47
CAPITOLO 3–PROGETTAZIONE e REALIZZAZIONE
____________________________________________________________________
3.3 Algoritmi implementati per la realizzazione
dell’interfaccia
In questo paragrafo vengono descritti gli algoritmi implementati nella realizzazione
dell‟interfaccia finale.
Come nel paragrafo precedente, i vari algoritmi vengono classificati in:
o Algoritmi implementati per prelevare il sorgente HTML di una pagina web
o Algoritmi implementati per l‟estrapolazione di dati dal codice HTML
o
Algoritmi implementati per salvare dati all‟interno di un database MySQL
3.3.1 Estrazione codice HTML
In questo paragrafo verrà descritto l‟ algoritmo implementato per prelevare il
sorgente HTML di determinate pagine web che costituiscono i due siti
www.saninforma.it e www.parafarmacia.it .
I risultati ottenuti nella fase di Analisi dei due siti web, sviluppata nel CAPITOLO 1,
permettono di individuare quali sono le pagine web che contengono le informazioni
che dovranno essere estrapolate per il raggiungimento dell‟obiettivo finale. In
particolare si è a conoscenza dell‟URL assoluto associato a ciascuna di queste
pagine, infatti la condizione necessaria affinché l‟algoritmo sviluppato per
l‟estrazione del sorgente di una pagina web possa essere applicato, è quella di avere a
disposizione
l‟URL
assoluto
di
quella
pagina
web.
Questo
perchè
nell‟implementazione dell‟ algoritmo si fa uso della funzione predefinita PHP file().
48
CAPITOLO 3–PROGETTAZIONE e REALIZZAZIONE
____________________________________________________________________
L‟algoritmo è costituito dalle seguenti istruzioni:
Screenshot 3-1 -Codice utilizzato per prelevare l’HTML di una pagina web
La funzione file(URL assoluto), (in questo caso l‟URL assoluto coincide con
“http://www.parafarmacia.it” che è l‟indirizzo della home page del sito di
Parafarmacia), restituisce il codice HTML della pagina in un array che viene
memorizzato nella variabile $lines. Ogni elemento dell'array corrisponde ad una riga
del file, con il ritorno a capo ancora attaccato.
Il ciclo foreach() permette di scorrere l‟array memorizzato nella variabile $lines e
tramite l‟istruzione echo htmlspecialchars($lines) è possibile visualizzare a video
tutte le righe di codice HTML che costituiscono la pagina web identificata
dall‟indirizzo http://www.parafarmacia.it.
In questo caso l‟output ottenuto come risultato dell‟algoritmo è il seguente:
Screenshot 3-2 -Sorgente HTML della pagina web con URL assoluto: http://www.parafarmacia.it
49
CAPITOLO 3–PROGETTAZIONE e REALIZZAZIONE
____________________________________________________________________
Come mostrato nello Screenshot 3-2, il sorgente HTML di una pagina web è
costituito da un insieme di tag predefiniti che descrivono gli aspetti relativi alla
presentazione del documento: tipi di caratteri, spaziature tra linee, dimensione dei
caratteri ecc.. Quindi, le informazioni che noi dovremo estrapolare dal sorgente
HTML in modo da realizzare l‟interfaccia richiesta, sono comprese tra dei tag
HTML.
L‟ algoritmo descritto in precedenza verrà eseguito per ogni URL assoluto associato
a ciascuna pagina web nella quale si dovrà prelevare le informazioni necessarie per la
realizzazione dell‟interfaccia.
3.3.2 Estrapolazione delle informazioni dal sorgente HTML
Una volta disponibile il sorgente HTML delle pagine Web contenti le informazioni
che devono essere prelevate, è possibile passare alla fase di estrapolazione in modo
tale che, queste informazioni, possono essere successivamente memorizzate in un
database.
Per effettuare l‟estrapolazione delle informazioni dal codice HTML, sono stati
implementati degli algoritmi, in ognuno dei quali vengono utilizzate le funzioni
predefinite PHP preg_match_all() e preg_match()(par. 3.2.2.1 e 3.2.2.2), ricordando
che esse sono delle funzioni basate sulle espressioni regolari che permettono di
ricercare eventuali match all'interno di una stringa utilizzando un pattern .
La descrizione delle specifiche di progetto (come mostrato in CAPITOLO 1) ha reso
possibile individuare quali sono le informazioni che devono essere estrapolate dal
contenuto dei portali Saninforma e Parafarmacia. Queste informazioni riguardano
tutto ciò che è necessario per descrivere un prodotto parafarmaceutico e cioè: il nome
del parafarmaco, la descrizione (se disponibile) del parafarmaco, un link che, se
cliccato, permette di visualizzare maggiori dettagli sul prodotto, il prezzo di vendita,
e la casa farmaceutica che lo ha prodotto.
50
CAPITOLO 3–PROGETTAZIONE e REALIZZAZIONE
____________________________________________________________________
Inoltre, la fase di analisi dei due siti web (svolta anche essa nel CAPITOLO 1), ha
permesso di individuare che in entrambi i siti è presente un “motore di ricerca
interno”. Questo permette la visualizzazione di tutti i prodotti di una marca (casa
farmaceutica) dopo averne selezionata una da un menù di opzioni. Nel menù di
opzioni sono presenti tante voci quante sono le case farmaceutiche produttrici di
parafarmaci che sono venduti sul portale.
Quindi, per ogni sito in primo luogo si andrà a prelevare tutte le voci che
costituiscono il menù di opzioni, ottenendo così la lista completa delle marche
presenti sul portale. Successivamente, invece, avendo a disposizione la lista completa
delle marche ed utilizzando in maniera opportuna il motore di ricerca interno al sito,
sarà possibile visualizzare tutti i parafarmaci di una certa marca e quindi estrapolare
le informazioni associate a ciascun parafarmaco.
Sulla base di quanto detto, sono state implementate le seguenti funzioni:

agg_marchesaninforma() che permette di estrapolare la lista completa dei
nomi delle case farmaceutiche produttrici di parafarmaci venduti nel portale
di Saninforma. L‟estrapolazione è effettuata dal menù di opzioni contenuto
nella pagina web avente URL http://www.saninforma.it/Ricercamarca.jsp

agg_marcheparafarmacia()che permette di estrapolare la lista completa dei
nomi delle case farmaceutiche produttrici di parafarmaci venduti nel portale
di Parafarmacia. L‟estrapolazione è effettuata dal menù di opzioni contenuto
nella pagina web avente URL http://www.parafarmacia.it/marche/.

aggiornamento_prodotti() ricerca() che consentono di prelevare: nome,
descrizione, link e prezzo di vendita di ogni parafarmaco presente nel portale
di Saninforma.

agg_prodottiparafarmacia() e cerca_prodottiparafarmacia(), che permettono
di prelevare: nome, link e prezzo di vendita di ogni parafarmaco presente nel
portale di Parafarmacia.
51
CAPITOLO 3–PROGETTAZIONE e REALIZZAZIONE
____________________________________________________________________
3.3.2.1 Funzione agg_marchesaninforma()
Una volta a disposizione il sorgente HTML della pagina web contenente il menù di
opzioni alle quali ad ognuna corrisponde il nome di una casa farmaceutica
(http://www.saninforma.it/Ricercamarca.jsp), si andrà ad “isolare” le singole voci
che costituiscono questo menù.
Sapendo che, ciascuna voce è compresa tra l‟attributo value del tag <option> ed il
tag </option>, si preleverà tutto ciò che è incluso tra : la stringa < option value=’ e
il carattere </ option >.
Per fare ciò, vengono utilizzate le seguenti righe di codice:
Screenshot 3-3-Istruzioni che permetto di prelevare le voci del menù di opzioni dal portale di Saninforma
Così facendo, in ogni elemento del vettore $matrix[$i] verrà memorizzata una
stringa la quale corrisponde ad una voce del menù di opzioni, seguita dal carattere „
che sta ad indicare la chiusura dell‟attributo value ed il carattere > che consente di
chiudere il tag <option>.
A questo punto per eliminare i due caratteri: „ e > dalle stringhe memorizzate nel
vettore $matrix[], si utilizzano le funzioni predefinite PHP preg_replace() nel
seguente modo:
Screenshot 3-4-Codice utilizzato per eliminare i caratteri ‘ e > dal nome delle marche di parafarmaci
52
CAPITOLO 3–PROGETTAZIONE e REALIZZAZIONE
____________________________________________________________________
Quindi in ogni elemento del vettore $array[] è contenuta una stringa corrispondente
al nome della marca di un parafarmaco che viene venduto nel portale di Saninforma,
come per esempio: 5 Sense System, A-Derma, Aboca, Adipesina, Akuel, ecc.
3.3.2.2 Funzione agg_marcheparafarmacia()
Il ragionamento che ha portato all‟implementazione di questa funzione è lo stesso
fatto per la funzione agg_marchesaninforma().
In
particolare,
dal
sorgente
HTML
della
pagina
web
avente
URL
http://www.parafarmacia.it/marche/ (corrispondente alla pagina nella quale è
presente il menù di opzioni in cui ogni voce del menù corrisponde ad una marca di
prodotti parafarmaceutici che sono venduti nel portale di Parafarmacia), si andrà ad
estrapolare tutto ciò che è contenuto tra la stringa <strong><a href=’marca e il
carattere ‘> utilizzando le seguenti istruzioni:
Screenshot 3-5- Istruzioni che consentono di prelevare ciò che è contenuto tra la stringa <strong><a
href=’marca e il carattere ‘>
In ogni elemento del vettore $matrix[] è contenuto il nome di una casa farmaceutica
produttrice di parafarmaci vendibili nel portale di Parafarmacia, come ad esempio:
3 m, a-derma, aboca, adipe-lip, adipesina, advantix ecc.
53
CAPITOLO 3–PROGETTAZIONE e REALIZZAZIONE
____________________________________________________________________
3.3.2.3 Funzioni agg_prodotti() e ricerca()
Le funzioni aggiornamento_prodotti() e ricerca(), come già detto, permettono di
prelevare: il nome, la descrizione, il link e il prezzo di vendita di ogni parafarmaco
vendibile nel portale di Saninforma.
Dopo aver utilizzato la funzione agg_marchesaninforma(), ed avendo così a
disposizione la lista completa di tutte le marche presenti nel portale all‟interno del
vettore chiamato $matrix[], affinché possano essere estrapolate le informazioni
appena elencate, si devono seguire le seguenti fasi:
1. servendosi del motore di ricerca per marca interno al portale, è possibile
ottenere la lista completa e dettagliata di tutti i prodotti di una marca che sono
presenti nel portale.
Per
fare
questo,
è
sufficiente
aggiungere
all‟
URL:
http://www.saninforma.it/RisultatiRicerca.jsp?ricmarca=si&nuovaricerca=
si&marca=, (che identifica la pagina web nel portale Saninforma.it utilizzata
per effettuare la ricerca per marca) , il nome della marca di cui visualizzare i
prodotti.
Per esempio, se all‟URL precedente viene aggiunta la marca Adipesina, si
ottiene
il
seguente
URL:
http://www.saninforma.it/RisultatiRicerca.jsp?ricmarca=si&nuovaricerca=
si&marca=Adipesina. Ad esso corrisponde la pagina web in cui sono elencati
tutti i prodotti della casa farmaceutica Adipesina (Screenshot 3-6):
54
CAPITOLO 3–PROGETTAZIONE e REALIZZAZIONE
____________________________________________________________________
Screenshot 3-6-Visualizzazione dei prodotti della marca Adipesina nel portale di Saninforma
2. A questo punto, si preleva il sorgente HTML della pagina ottenuta dal punto1
tramite la funzione predefinita PHP file(URL).
Dato che ogni pagina web utilizzata per la visualizzazione può contenere al
massimo 10 prodotti, sarà necessario determinare su quante pagine è dislocata
la visualizzazione di questi. Quindi,. dal sorgente HTML della pagina
identificata
dall‟
URL
http://www.saninforma.it/RisultatiRicerca.jsp?ricmarca=si&nuovaricerca=
si&marca= seguito dal nome della marca, si estrapola il numero di pagine
web su cui vengono visualizzati i risultati della ricerca per marca.
3. A questo punto dal sorgente HTML di ogni pagina web in cui sono
visualizzati i prodotti, è possibile estrapolare le informazioni desiderate.
55
CAPITOLO 3–PROGETTAZIONE e REALIZZAZIONE
____________________________________________________________________
Le fasi 1, 2 e 3 vengono eseguite dalla funzione aggiornamento_prodotti( ), con il
seguente listato:
Screenshot 3-7-Listato della funzione aggiornamento_prodotti()
La funzione aggiornamento_prodotti() ha come parametri:

Il
nome
della
marca
che
verrà
aggiunta
all‟URL
http://www.saninforma.it/RisultatiRicerca.jsp?ricmarca=si&nuovaricerca=
si&marca= in modo ma ottenere tutti i prodotti di quella marca

Il descrittore della connessione al database che verrà utilizzato per la
memorizzazione delle informazioni

La data odierna che verrà utilizzata, anch‟essa, nella fase di memorizzazione
Dopo aver ricavato il sorgente HTML della pagina web individuata dall‟URL
precedente seguito dal nome della marca, tramite la funzione predefinita PHP
preg_match_all() si andrà a contare quante volte viene ripetuta la stringa:
<a title=’ pagina
56
CAPITOLO 3–PROGETTAZIONE e REALIZZAZIONE
____________________________________________________________________
Il numero di pagine sui vengono visualizzati i risultati della ricerca, si ottengono:

dividendo per 2 il numero di volte in cui si ripete la stringa precedente, in
quanto la stringa viene ripetuta un numero di volte doppio rispetto a quante
sono le pagine su cui è dislocato il risultato della ricerca.

al numero così ottenuto si sottrae 1 unità, in quanto il sito di Saninforma
utilizza una numerazione di pagine che parte da 0.
A questo punto nella variabile $conta_pagine è contenuto il numero di pagine su cui
verrà dislocata la visualizzazione della ricerca per marca.
Dopo aver determinato il valore di $conta_pagine, è possibile effettuare la chiamata
alla funzione ricerca() in modo che può essere eseguita la fase 4.
Alla funzione ricerca() vengono passati i seguenti parametri:

Il sorgente HTML della pagina web in cui dovranno essere estrapolate le
informazioni relativi ai prodotti parafarmaceutici.
In particolare,si distinguono due casi:
 se il risultato di una ricerca per marca è visualizzato su una sola
pagina web (quindi sono presenti al massimo 10 prodotti di quella
marca all‟interno del portale), alla funzione ricerca() viene passato
il
sorgente
della
pagina
web
avente
URL:
http://www.saninforma.it/RisultatiRicerca.jsp?ricmarca=si&nuova
ricerca=si&marca= seguito dal nome della marca di cui si sta
facendo la ricerca(cioè il sorgente della stessa pagina utilizzata dalla
funzione aggiornamento_prodotti() per determinare il valore della
variabile $conta_pagine).
 se il risultato di una ricerca per marca è visualizzato su più
pagine, alla funzione ricerca(), alla prima chiamata gli viene
passato come parametro il sorgente della pagina web avente URL:
http://www.saninforma.it/RisultatiRicerca.jsp?ricmarca=si&nuova
ricerca=si&marca= seguito dal nome della marca;nelle successive
chiamate, invece, gli viene passato il sorgente della pagina web
avente
URL
57
CAPITOLO 3–PROGETTAZIONE e REALIZZAZIONE
____________________________________________________________________
http://www.saninforma.it/RisultatiRicerca.jsp?ricmarca=si&nuova
ricerca=si&marca= seguito dal nome della marca e dalla stringa
$numRows= a 10 se $conta_pagine è minore di 20, 20 se
$conta_pagine è minore di 30, 30 se$conta_pagine è minore di 40 e
così via, in quanto ad un URL di questo tipo, corrispondono le
successive pagine web in cui verranno visualizzati i prodotti della
marca selezionata.

Il descrittore del database utilizzato per la memorizzazione delle informazioni

La marca di cui si sta facendo la visualizzazione dei prodotti

La data odierna
Per ogni pagina web in cui sono visualizzati i prodotti di una determinata marca, il
compito della funzione ricerca() è quello di estrapolare: il nome, la descrizione, il
link che permette di accedere ad ulteriori informazioni, ed il prezzo di vendita di ogni
prodotto. Nell‟implementazione della funzione ricerca() vengono utilizzate le
funzioni predefinite PHP preg_match().
Nello specifico:

per prelevare il nome del prodotto, sapendo che il nome è compreso tra la
stringa:
name=’titolo’ value ed il carattere ‘ si utilizzano le seguenti
istruzioni:
Screenshot 3-8-Istruzioni per prelevare il nome di un prodotto dal sorgente HTML
così facendo il nome dell‟ i-esimo prodotto viene salvato nella i-esima riga
della prima colonna della matrice chiamata $matrix[][];
58
CAPITOLO 3–PROGETTAZIONE e REALIZZAZIONE
____________________________________________________________________

per estrapolare la descrizione del prodotto, sapendo che essa è compresa tra
la stringa name=’sottotitolo value ed il carattere ‘:
Screenshot 3-9-Istruzioni che consentono di prelevare descrizione di un prodotto dal sorgente HTML
in questo modo la descrizione dell‟i-esimo prodotto viene memorizzata nella
i-esima riga della seconda colonna della matrice $matrix[][]

per quanto riguarda il link del prodotto, sapendo che esso è compreso tra
le stringhe href=’Sezione.jsp e ‘><strong>
Screenshot 3-10- Istruzioni per prelevare il link associato a ciascun prodotto dal sorgente HTML
Il link relativo all‟i-esimo prodotto verrà salvato nella i-esima riga della
terza colonna della matrice $matrix[][]

infine, per il prezzo, sapendo che esso è una sottostringa della stringa Prezzo
‘><strong> costituita da soli numeri, allora:
Screenshot 3-11- Istruzioni per prelevare il prezzo di vendita di ciascun prodotto dal sorgente html
59
CAPITOLO 3–PROGETTAZIONE e REALIZZAZIONE
____________________________________________________________________
Il prezzo di vendita relativo all‟i-esimo prodotto verrà salvato nella iesima riga della quarta colonna della matrice $matrix[][]
Per ottenere le informazioni associate a ciascun prodotto di qualsiasi marca
presente
nel
portale,
è
necessario
richiamare
la
funzione
aggiornamento_prodotti() tante volte quante sono le marche e la funzione
ricerca() tante volte quante sono le pagina web in cui sono visualizzati i
prodotti di una marca.
3.3.2.4 Funzione agg_prodottiparafarmacia() e
cerca_prodottiparafarmacia()
Le
funzioni:
agg_prodottiparafarmacia()
e
cerca_prodottiparafarmacia(),
permettono di prelevare: il nome, il link ed il prezzo di vendita di ogni parafarmaco
presente nel portale di Parafarmacia.
Le fasi che hanno portato all‟implementazione di queste funzioni, sono simili a
quelle descritte per le funzioni aggiornamento_prodotti() e ricerca() viste nel
paragrafo precedente.
Anche in questo caso, dopo aver utilizzato la funzione agg_marcheparafarmacia(),
si ha a disposizione la lista completa di tutte le marche presenti nel portale all‟interno
del vettore chiamato $matrix[].
Per estrapolare le informazioni necessarie per la realizzazione del progetto, si
dovranno eseguire le seguenti azioni:
1. Utilizzando il motore di ricerca per marca interno al portale, è possibile
ottenere la lista completa e dettagliata di tutti i prodotti di una marca che sono
presenti nel portale.
Per
fare
questo,
è
necessario
aggiungere
all‟
URL:
http://www.parafarmacia..it/ marca/, che identifica la pagina web utilizzata
dal sito www.parafarmacia.it per effettuare la ricerca per marca, il nome della
marca di cui visualizzare i prodotti.
60
CAPITOLO 3–PROGETTAZIONE e REALIZZAZIONE
____________________________________________________________________
Ad esempio, per visualizzare tutti i prodotti della marca Adipesina, basta
aggiungere all‟UTL precedente la parola Adipesina ottenendo il seguente
URL: http://www.parafarmacia.it/marca/adipesina/. Ad esso corrisponde la
seguente pagina web:
Screenshot 3-12-Visualizzazione dei prodotti della marca Adipesina nel portale di Parafarmacia
2. Si preleva il sorgente HTML della pagina ottenuta nel punto precedente
tramite la funzione predefinita PHP file(URL)
3. In questo caso, per determinare quante pagine web sono utilizzate per la
visualizzazione dei prodotti di una marca, basta contare il numero di volte che
si ripete la stringa che inizia con:<a href=’Pagina e termina con: title=’ vai
a pagina
4. Dal sorgente HTML di ogni pagina web in cui sono visualizzati i prodotti di
una marca, è possibile estrapolare le informazioni desiderate.
61
CAPITOLO 3–PROGETTAZIONE e REALIZZAZIONE
____________________________________________________________________
Le fasi 1, 2 e 3 vengono eseguite dalla funzione agg_prodottiparafarmacia() che
contiene le seguenti istruzioni:
Screenshot 3-13-Listato della funzione agg_prodottiparafarmacia()
I suoi parametri sono:

il
nome
della
marca
che
aggiunta
all‟URL
http://www.saninforma.it/RisultatiRicerca.jsp?ricmarca=si&nuovaricerca=
si&marca= permette di ottenere tutti i prodotti di quella marca

l‟identificatore del database che verrà utilizzato per la memorizzazione delle
informazioni

il descrittore della connessione al database, che servirà per la memorizzazione
delle informazioni

la data odierna che verrà utilizzata, anch‟essa, nella fase di memorizzazione
Ottenuto il sorgente HTML della pagina web individuata dall‟URL precedente
seguito dal nome della marca, per determinare quante pagine web sono utilizzate
per la visualizzazione dei prodotti di una marca, basta contare il numero di volte
che si ripete la stringa che inizia con <a href=’Pagina e termina con title=’ vai a
pagina.
62
CAPITOLO 3–PROGETTAZIONE e REALIZZAZIONE
____________________________________________________________________
Per fare ciò ,vengono utilizzate le seguenti istruzioni PHP, le quali permetto di
memorizzare il numero di pagine nella variabile identificata dal nome
$conta_pagine,
Screenshot 3-14-Istruzioni utilizzate per determinare il numero di pagine su cui è dislocata la
visualizzazione dei prodotti di una marca
Dopo aver determinato il valore di $conta_pagine, è possibile effettuare la chiamata
alla funzione cerca_prodottiparafarmacia(), in modo che possa essere eseguita la
fase 4.
Alla funzione cerca_prodottiparafarmacia() vengono passati i seguenti parametri:

Il sorgente HTML della pagina web in cui dovranno essere estrapolate le
informazioni relativi ai prodotti parafarmaceutici.
In particolare,si distinguono due casi:
 se il risultato di una ricerca per marca è visualizzato su una sola
pagina web, alla funzione cerca_prodottiparafarmacia() viene
passato
il
sorgente
della
pagina
web
avente
URL:
http://www.parafarmacia..it/ marca/ seguito dal nome della marca
di cui si sta facendo la ricerca.
 se il risultato di una ricerca per marca è visualizzato su più
pagine,
quando
viene
chiamata
la
funzione
cerca_prodottiparafarmacia() per la prima volta, gli viene passato
come parametro il sorgente della pagina web avente URL:
http://www.parafarmacia..it/ marca/= seguito dal nome della
marca;nelle successive chiamate, invece, gli viene passato il
sorgente della pagina web avente URL http://www.parafarmacia..it/
marca/ seguito dal nome della marca e dalla stringa ?pagina=
(uguale) al numero della pagina in cui sono visualizzati i prodotti
della marca selezionata.
63
CAPITOLO 3–PROGETTAZIONE e REALIZZAZIONE
____________________________________________________________________
Per esempio supponendo che i prodotti di una marca sono
visualizzati su 2 pagine web, allora ponendo la stringa ?pagina=1 si
ottiene la pagina in cui sono visualizzati la prima parte dei prodotti
di quella marca e con ?pagina=2 sarà visualizzata la pagina
contenete i restanti prodotti.

Il descrittore del database utilizzato per la memorizzazione delle informazioni

La marca di cui si sta facendo la visualizzazione dei prodotti

La data odierna
Per ogni pagina web in cui sono visualizzati i prodotti di una marca, la funzione
cerca_prodottiparafarmacia() dovrà ricavare:
il nome, il link che permette di
accedere ad ulteriori informazioni, ed il prezzo di vendita di ogni prodotto.
In particolare:

per prelevare il nome del prodotto, sapendo che il nome è compreso tra la
stringa <a haref=’ seguita da quattro cifre e la stringa ‘class:
Screenshot 3-15-Istruzioni utilizzate per prelevare il nome del prodotto presente all’interno del portale
Parafarmacia
Così facendo il nome dell‟i-esimo prodotto viene memorizzato nella i-esima riga
della prima colonna della matrice $matrix[][]
3.3.3 Memorizzazione delle informazioni in un database
Dopo aver estrapolato tutte le informazioni necessarie per la realizzazione del nostro
progetto, è necessario memorizzarle in una base di dati in modo tale che esse siano
disponibili per le successive elaborazioni.
Il DBMS utilizzato per la realizzazione della nostra base di dati è MySQL.
64
CAPITOLO 3–PROGETTAZIONE e REALIZZAZIONE
____________________________________________________________________
MySQL è un sistema di database relazionale e per questo motivo è più correttamente
chiamato RDBMS (Relational Data Base Management System).
Come tutti gli RDBMS, MySQL, è un applicazione software composta da svariati
componenti che interagiscono tra di loro. Si è scelto di utilizzare questo tipo di
RDBMS perché: esso viene fornito come componente del pacchetto XAMPP (che è
stato necessario installare per la realizzazione del nostro progetto) inoltre se
confrontato con qualsiasi altro database commerciale, MySQL, garantisce maggiore
rapidità, maggiore affidabilità, ed è più economico in quanto Open Source ed infine
perchè, il linguaggio PHP mette a disposizione una vasta gamma di funzioni
predefinite per interagire con MySQL.
Sono stati progettati e realizzati due database chiamati: Saninforma e Parafaramcia
ognuno dei quali contiene le rispettive informazioni.
Per ognuno dei due, attenendoci alle specifiche di base del progetto, verranno
definiti:
o i costrutti base necessari per la rappresentazione dello schema E-R,
o lo schema E-R (Entità-Relazioni),
o la ristrutturazione dello schema E-R ,
o le Query necessarie per la creazione delle tabelle presenti nel database
o le interrogazioni utilizzate per memorizzare le informazioni all‟interno del
database
Affinché l‟interfaccia realizzata possa essere il più efficiente possibile, è necessario
effettuare l‟aggiornamento delle informazioni memorizzate all‟interno del database
con regolarità.
Questo è necessario sia perchè il prezzo di vendita che la disponibilità di un prodotto
possono variare mensilmente o addirittura settimanalmente.
65
CAPITOLO 3–PROGETTAZIONE e REALIZZAZIONE
____________________________________________________________________
3.4 Memorizzazione delle informazioni
3.4.1 Database Saninforma
3.4.1.1 Costrutti base
Per quanto riguarda il portale Saninforma, rispettando le specifiche di progetto è
possibile definire le seguenti entità:

MARCA: nella quale sono memorizzati tutti i nomi delle case farmaceutiche
produttrici di parafarmaci vendibili nel portale Saninforma.
Gli attributi di questa entità sono:
 COD_MARCA: numero intero utilizzato per identificare in maniera
univoca la casa farmaceutica (Primary Key)
 NOME_MARCA:stringa contenente il nome della marca
 DISP_MARCA: valore boolean che permette di indicare se una marca
è o non è più presente nel portale (1 presente, 0 non presente)

PRODOTTO: contenente tutte le informazioni relative ad ogni prodotto
presente (e quindi vendibile) nel portale.
I suoi attributi sono:
 COD_PRO: numero intero utilizzato per l‟identificazione univoca del
prodotto (Primary Key)
 NOME_PRO: stringa contente il nome del prodotto
 DESC_PRO: stringa contenente la descrizione del prodotto
 LINK_PRO: stringa contenente l‟URL che permette di accedere alla
pagina web contenente informazioni dettagliate sul prodotto in
questione
 DATA_PRO: data in corrispondenza della quale sono state aggiornate
le informazioni del prodotto
 COD_MARCA: identificativo della casa farmaceutica produttrice del
prodotto
(foreign
key)
66
CAPITOLO 3–PROGETTAZIONE e REALIZZAZIONE
____________________________________________________________________

STORICO_PREZZO: dove per ogni prodotto di una marca, viene
memorizzato il suo prezzo di vendita e la data in cui il prodotto è venduto a
quel prezzo.
Gli attributi sono:
 COD_STORICO: numero intero utilizzato per l‟identificazione
univoca di ogni riga della tabella STORICO_PREZZO (Primary Key)
 PREZZO: stringa contenete il prezzo di vendita del prodotto
 DATA_PREZZO: data in corrispondenza della quale il prezzo del
prodotto è stato aggiornato per l‟ultima volta
 COD_PRO: identificativo del prodotto a cui si sta facendo riferimento
(foreign key)
Tra le entità PRODOTTO e MARCA si instaura una relazione chiamata
APPARTENENZA avente cardinalità 1:n (1 a molti), come schematicamente
riportato qui di seguito:
Fig. 3-1- Rappresentazione relazione APPARTENENZA
Tra le entità STORICO_PREZZO e PRODOTTO si instaura una relazione chiamata
PREZZAMENTO avente cardinalità 1:n (1 a molti), come schematicamente
riportato qui di seguito:
Fig. 3-2 Rappresentazione relazione PREZZAMENTO
67
CAPITOLO 3–PROGETTAZIONE e REALIZZAZIONE
____________________________________________________________________
3.4.1.2 Schema E-R
Lo schema E-R ottenuto tramite le precedenti considerazioni è il seguente:
Fig. 3-3- Schema E-R database Saninforma
3.4.1.3 Ristrutturazione schema E-R
Lo schema E-R va ristrutturato in quanto non tutti i costrutti utilizzati nella sua
rappresentazione possono essere tradotti in modo naturale nello schema logico, cioè
nello schema che verrà utilizzato come base per la realizzazione del database dal
punto di vista fisico.
Dato che le relazioni in esso presenti hanno tutte cardinalità 1 a molti (1:n) e sapendo
che queste vengono tradotte eliminando la relazione ed inserendo nell‟entità con
68
CAPITOLO 3–PROGETTAZIONE e REALIZZAZIONE
____________________________________________________________________
cardinalità 0:1(o 1:n) l‟identificatore principale dell‟entità ad essa collegata, alla fine
di questa fase otteniamo le seguenti tabelle:

MARCA(COD_MARCA,NOME_MARCA,DISP_MARCA)

PRODOTTO(COD_PRO,
DATA_PRO,

NOME_PRO,
DESC_PRO,
LINK_PRO,
COD_MARCA)
STORICO_PREZZO(COD_STORICO,
PREZZO,
DATA_PREZZO,
COD_PRODOTTO)
3.4.1.4 Creazione Tabelle
Le Query SQL
utilizzate per la creazione delle entità contenute nel database
Saninforma sono le seguenti:
Creazione dell‟entità MARCA:
CREATE TABLE MARCA (
COD_MARCA int(8) NOT NULL AUTO_INCREMENT,
NOME_MARCA varchar(50) BINARY NOT NULL,
PRIMARY KEY(COD_MARCA),
DISP_MARCA tinyint(1)
)ENGINE=InnoDB;
Creazione entità PRODOTTO:
CREATE TABLE PRODOTTO (
COD_PRO int(5) NOT NULL AUTO_INCREMENT,
NOME_PRO varchar(100) BINARY NOT NULL,
DESC_PRO varchar(200) NULL,
LINK_PRO varchar(150) NOT NULL,
DATA_PRO DATE,
PREFERITI_PRO BOOLEAN DEFAULT 0,
COD_MARCA int(5),
PRIMARY KEY(COD_PRO),
FOREIGN KEY (COD_MARCA)REFERENCES MARCA (COD_MARCA ON DELETE CASCADE
ON UPDATE CASCADE
)ENGINE=InnoDB
69
CAPITOLO 3–PROGETTAZIONE e REALIZZAZIONE
____________________________________________________________________
Creazione entità STORICO_PREZZO:
CREATE TABLE STORICO_PREZZO (
COD_STORICO int(8) NOT NULL AUTO_INCREMENT,
PREZZO varchar(10) NOT NULL,
DATA_PREZZO date NOT NULL,
COD_PRODOTTO int(5) NOT NULL,
PRIMARY KEY(COD_STORICO),
FOREIGN KEY (COD_PRODOTTO)REFERENCES PRODOTTO (COD_PRO)
ON DELETE CASCADE ON UPDATE CASCADE
)ENGINE=InnoDB;
3.4.1.5 Memorizzazione delle Informazioni
Per memorizzare le informazioni si è tenuto conto delle seguenti situazioni:

La presenza di una casa farmaceutica all‟interno dell‟entità MARCA .
Se è presente un istanza di marca avente lo stesso nome della marca da
memorizzare e con la disponibilità uguale ad 1, essa non viene memorizzata;
altrimenti se già presente ma con disponibilità uguale a 0, viene modificata la
disponibilità settandola a 0, infine se non è presente all‟interno dell‟entità, viene
creata una nuova istanza avente lo stesso nome della marca da memorizzare e con
disponibilità settata ad 1;

La presenza del prodotto all‟interno dell‟entità PRODOTTO.
Se già presente con lo stesso nome, descrizione, link e prezzo di vendita, non
viene memorizzato altrimenti viene memorizzato come una nuova istanza di
PRODOTTO.

La presenza di un prodotto all‟interno dell‟entità PRODOTTO ma con
disponibilità impostata a 0 ( ovvero se un prodotto era presente nel portale,
ma adesso non è più disponibile); in questo caso se il prodotto è di nuovo
disponibile nel portale, viene modificato il valore di disponibilità
impostandolo ad 1 altrimenti, se non è tornato disponile nel portale, si lascia
il valore di disponibilità impostato a 0
70
CAPITOLO 3–PROGETTAZIONE e REALIZZAZIONE
____________________________________________________________________

La presenza nell‟entità STORICO_PREZZO di un„ istanza contenente lo
stesso codice prodotto, lo stesso prezzo di vendita e la stessa data di
aggiornamento del prezzo (se già presente non viene memorizzato altrimenti
viene memorizzata come una nuova istanza di STORICO_PREZZO);
3.4.2 Database Parafarmacia
3.4.2.1 Costrutti base
Le entità definite per il portale Parafarmacia sono le stesse definite per Saninforma.
Le uniche varianti sono date dal fatto che:
 ogni entità presente nel database Parafarmacia ha lo stesso nome della
corrisponde entità presente nel database di Saninforma seguita dai caratteri
_P,
 l‟entità PRODOTTO_P a differenza dell‟entità PRODOTTO di Saninforma
non possiede l‟attributo DESC_PRO in quanto i prodotti presenti nel portale
Parafarmacia non sono caratterizzati da una descrizione.
Di seguito, per completezza, verranno elencate le entità che costituiscono il database
Parafarmacia:

MARCA_P: contenente tutti i nomi delle case farmaceutiche produttrici di
parafarmaci vendibili nel portale Parafarmacia
Gli attributi di questa entità sono gli stessi dell‟entità MARCA e cioè:
 COD_MARCA: numero intero che permette di identificare in maniera
univoca la marca (o casa farmaceutica) (Primary Key)
 NOME_MARCA:stringa contenente il nome della marca
 DISP_MARCA: valore boolean che permette di indicare se una marca
è o non è più presente nel portale (1 presente, 0 non presente)
71
CAPITOLO 3–PROGETTAZIONE e REALIZZAZIONE
____________________________________________________________________

PRODOTTO_P: contenente tutte le informazioni relative ad ogni prodotto
vendibile nel portale.
I suoi attributi sono:
 COD_PRO: numero intero utilizzato per identificare il prodotto
(Primary Key)
 NOME_PRO: stringa contente il nome del prodotto
 LINK_PRO: stringa contenente l‟URL che permette di accedere alla
pagina web contenente informazioni dettagliate sul prodotto in
questione
 DATA_PRO: data in corrispondenza della quale sono state aggiornate
le informazioni del prodotto
 COD_MARCA: identificativo della casa farmaceutica produttrice del
prodotto (foreign key)

STORICO_PREZZO_P: dove per ogni prodotto di una marca, viene
memorizzato il suo prezzo di vendita e la data in cui il prodotto è venduto a
quel prezzo.
Gli attributi sono:
 COD_STORICO: numero intero utilizzato per l‟identificazione
univoca di ogni riga della tabella STORICO_PREZZO (Primary Key)
 PREZZO: stringa contenete il prezzo di vendita del prodotto
 DATA_PREZZO: data in corrispondenza della quale il prezzo del
prodotto è stato aggiornato per l‟ultima volta
 COD_PRO: identificativo del prodotto a cui si sta facendo riferimento
(foreign key)
72
CAPITOLO 3–PROGETTAZIONE e REALIZZAZIONE
____________________________________________________________________
Tra le entità PRODOTTO_P e MARCA_P si instaura una relazione chiamata
APPARTENENZA_P avente cardinalità 1:n (1 a molti) come schematicamente
riportato qui di seguito:
Fig. 3-4- Schema relazione APPARTENENZA_P
Tra le entità STORICO_PREZZO_P e PRODOTTO_P si instaura una relazione
chiamata
PREZZAMENTO
avente
cardinalità
1:n
(1
a
molti)
come
schematicamente riportato qui di seguito:
Fig. 3-5- Schema relazione PREZZAMENTO_P
73
CAPITOLO 3–PROGETTAZIONE e REALIZZAZIONE
____________________________________________________________________
3.4.2.2 Schema E-R
Il schema E-R ottenuto è il seguente:
Fig. 3-6 Schema E-R database Parafarmacia
3.4.2.3 Ristrutturazione schema E-R
Anche in questo caso lo schema E-R va ristrutturato in modo da ottenere uno schema
logico e che quindi il database possa essere realizzato dal punto di vista fisico.
Dato che le relazioni presenti nello schema E-R precedente hanno cardinalità 1 a
molti, al termine di questa fase si ottengono le seguenti entità:

MARCA_P(COD_MARCA,NOME_MARCA,DISP_MARCA)

PRODOTTO_P(COD_PRO,
NOME_PRO,
LINK_PRO,
DATA_PRO,
COD_MARCA)

STORICO_PREZZO_P(COD_STORICO,
PREZZO,
DATA_PREZZO,
COD_PRODOTTO)
74
CAPITOLO 3–PROGETTAZIONE e REALIZZAZIONE
____________________________________________________________________
3.4.2.4 Creazione Tabelle
Le Query SQL
utilizzate per la creazione delle entità contenute nel database
Parafarmacia sono:
Creazione dell‟entità MARCA_P:
CREATE TABLE MARCA (
COD_MARCA int(8) NOT NULL AUTO_INCREMENT,
NOME_MARCA varchar(50) BINARY NOT NULL,
PRIMARY KEY(COD_MARCA),
DISP_MARCA tinyint(1)
)ENGINE=InnoDB;
Creazione entità PRODOTTO_P:
CREATE TABLE PRODOTTO_P (
COD_PRO int(5) NOT NULL AUTO_INCREMENT,
NOME_PRO varchar(200) BINARY NOT NULL,
LINK_PRO varchar(150) NOT NULL,
COD_MARCA int(5),
PRIMARY KEY(COD_PRO),
FOREIGN KEY (COD_MARCA)
REFERENCES MARCA_P (COD_MARCA)
ON DELETE CASCADE ON UPDATE CASCADE
)ENGINE=InnoDB
75
CAPITOLO 3–PROGETTAZIONE e REALIZZAZIONE
____________________________________________________________________
Creazione entità STORICO_PREZZO_P:
CREATE TABLE STORICO_PREZZO_P (
COD_STORICO int(8) NOT NULL AUTO_INCREMENT,
PREZZO varchar(10) NOT NULL,
DATA_PREZZO date NOT NULL,
COD_PRODOTTO int(5) NOT NULL,
PRIMARY KEY(COD_STORICO),
FOREIGN KEY (COD_PRODOTTO)
REFERENCES PRODOTTO_P (COD_PRO)
ON DELETE CASCADE ON UPDATE CASCADE
)ENGINE=InnoDB;
76
CAPITOLO 3–PROGETTAZIONE e REALIZZAZIONE
____________________________________________________________________
3.4.2.5 Memorizzazione delle Informazioni
Anche in questo caso, per memorizzare le informazioni si è tenuto conto delle
seguenti situazioni:

La presenza di una casa farmaceutica all‟interno dell‟entità MARCA_P .
Se è presente un istanza di marca avente lo stesso nome della casa
farmaceutica da memorizzare e con la disponibilità uguale ad 1, essa non
viene memorizzata; altrimenti se già presente ma con disponibilità uguale a 0,
viene modificata la disponibilità settandola a 0, infine se non è presente
all‟interno dell‟entità, viene creata una nuova istanza avente lo stesso nome
della marca da memorizzare e con disponibilità uguale ad 1;

La presenza del prodotto all‟interno dell‟entità PRODOTTO_P.
Se già presente con lo stesso nome, link e prezzo di vendita, non viene
memorizzato altrimenti viene memorizzato come
una nuova istanza di
PRODOTTO_P.

La presenza di un prodotto all‟interno dell‟entità PRODOTTO_P ma con
disponibilità impostata a 0 ( ovvero se un prodotto era presente nel portale,
ma adesso non è più disponibile); in questo caso se il prodotto è di nuovo
disponibile nel portale, viene modificato il valore di disponibilità
impostandolo ad 1 altrimenti, se non è tornato disponile nel portale, si lascia
il valore di disponibilità impostato a 0

La presenza nell‟entità STORICO_PREZZO_P di un„ istanza contenente lo
stesso codice prodotto, lo stesso prezzo di vendita e la stessa data di
aggiornamento del prezzo (se già presente non viene memorizzato altrimenti
viene memorizzata come una nuova istanza di STORICO_PREZZO_P);
77
CAPITOLO 4- CMS Zen Cart e CMS e-Commerce
____________________________________________________________________
CAPITOLO 4 - CMS Zen Cart e CMS e-Commerce
4.1 Introduzione
Tutti hanno preso atto dei cambiamenti rivoluzionari che Internet ha imposto a
livello di cultura, d‟informazione, di intrattenimento, di comunicazione, di relazioni
personali, di business.
La stessa vita delle imprese né è stata coinvolta visto che per esse si prospettano
accanto al mercato reale l‟esistenza di uno virtuale fatto di cyberclienti, di
cyberconcorrenza e di cybermedari, che ha comportato un nuovo modo di far
economia e business, di comunicare, di organizzare l‟offerta, di promuovere, di
vendere, di fare marketing.
Per questo il commercio elettronico (più comunemente chiamato e-commerce) che
Internet ha alimentato, non può e non deve essere considerato da parte delle imprese
e dagli imprenditori come un optional, ma al contrario una realtà con cui ci si deve
confrontare. Più in dettaglio,con la parola e-commerce si fa riferimento all‟esclusivo
ambito commerciale, cioè a quello della vendita dei bene e dei servizi in rete; l‟ecommerce attiva una transazione completa dalla presentazione di un‟offerta online
all‟acquisto, al pagamento, all‟assistenza; l‟utilizzo della rete elettronica ha un
impatto notevole sullo stesso modello di fare business da parte dell‟impresa; ciò pone
radicali cambiamenti; infatti modalità d‟intervento, criteri decisionali, tipologia di
presenza nel cybermercato, canali e punti di vendita, mezzi di comunicazione e di
promozione, comportamenti d‟acquisto, nuove funzioni e nuove professioni,
soluzioni tecnologiche ecc., sono destinati ad adeguarsi al nuovo modello di business
sviluppando soluzioni personalizzate ad alto valore aggiunto.
Lo scenario impone all‟azienda di riproporsi organizzativamente e commercialmente
in base alla strategia di e-commerce che viene adottata
78
CAPITOLO 4- CMS Zen Cart e CMS e-Commerce
____________________________________________________________________
L‟e-commerce offre indubbi benefici sia per chi vende e sia per chi acquista.
Per i primi i vantaggi sono:

L‟abbattimento delle barriere geografiche poiché il mercato della Rete è un
mercato globale che permette dir aggiungere clienti ovunque essi si trovino;

Barriere all‟entrata estremamente basse: i costi di inizio attività sono molto
più contenuti rispetto al commercio tradizionale;

Non ci sono più intermediari, ciò vuol dire un ulteriore diminuzione dei costi
e la possibilità di conoscere direttamente il proprio cliente.
Per chi acquista, invece, i vantaggi sono:

Con Internet è possibile accedere ad un numero illimitato di informazioni
commerciali, servizi e prodotti. Stando seduti davanti al computer,
è
possibile confrontare le offerte di tutti i venditori, arrivando così ad ottenere
ciò che meglio soddisfa le proprie esigenze al prezzo più vantaggioso.
Nel commercio tradizionale una ricerca simile comporta
un notevole
dispendio di tempo, così che solitamente si effettua la scelta più conveniente
tra quelle a disposizione;

Si ha una rapida risposta alla necessità

Dal fatto che le aziende riescano a tagliare i propri costi, può conseguire
soprattutto una diminuzione dei prezzi dei beni e dei servizi venduti;

Il consumatore può assumere maggiore potere contrattuale, ciò porterebbe un
ulteriore diminuzione dei prezzi.
Per quanto, invece, riguarda i fattori di ostacolo alla diffusione del commercio
elettronico sono:

Un insufficiente regolamentazione internazionale: nonostante sono state
introdotte
nuove norme relative al campo specifico dell‟e-commerce, la
tutela dei consumatori lungo tutto il processo di acquisto rimane non del tutto
sufficiente;

La confusine determinata dall‟abbattimento delle barriere per cui non è più
così semplice stabilire i confini giurisdizionali come nel caso del commercio
tradizionale;
79
CAPITOLO 4- CMS Zen Cart e CMS e-Commerce
____________________________________________________________________

La necessità di adottare delle infrastrutture tecnologicamente adeguate che
implica quindi un forte investimento in apparecchiature hardware e software,
nonché degli aggiornamenti degli addetti ai lavori;

Il problema della sicurezza dei sistemi di pagamento.
Per la realizzazione di portali e-commerce, ovvero di portali in cui è possibile
acquistare e vendere dei prodotti, solitamente si utilizzano dei CMS (content
management system) ovvero dei strumenti software usati per facilitare la costruzione
di portali (o siti web) . Essi normalmente forniscono una serie di funzioni predefiniti
per la gestione dei contenuti informativi di un sito. i CMS più sofisticati supportano
tutte le necessità di una redazione web composta da numerose persone
In particolare:

Permettono all‟amministratore di un sito di definire i diritti di accesso dei
diversi redattori alle varie sezioni del sito. In tal modo, il sistema potrà
controllare che ogni redattore possa modificare soltanto le sezioni o le pagine
che gli sono state affidate;

Gestiscono il flusso delle attività redazionali secondo uno schema predefinito,
per esempio redazione in bozza, revisione, approvazione e pubblicazione in
rete dei diversi contenuti. In tal modo il sistema potrà controllare che non
vengano pubblicate pagine web che non siano state preventivamente
revisionate e approvate dal responsabile della relativa sezione del sito;

Forniscono le funzioni di inserimento, modifica e cancellazione delle pagine
del sito , necessarie per il lavoro dei redattori;

Possono fornire ,inoltre , alle funzioni “preconfezionate” che facilitano la
realizzazione di siti web interattivi, per esempio funzioni per al gestione di
News, FAQ, forum e così via.
I CMS sono dei prodotti piuttosto complessi, che devono installati e personalizzati in
modo opportuno da persone esperte.
80
CAPITOLO 4- CMS Zen Cart e CMS e-Commerce
____________________________________________________________________
I CMS più utilizzati per la realizzazione di portali e-commerce, in questo momento,
sono:
o Zen- Cart
o osCommerce
o Joomla
o Drupal
o Wordpress
o vBullettin
o Xoops
o Frog
o Magento
In questo capitolo, dopo aver introdotto il significato di e-commerce e CMS,
verranno descritti i CMS osCommerce e Zen Cart i quali rispettivamente sono i CMS
che utilizzavano ed utilizzano la Farmacia Blasi Dott. Giuseppe con sede a
Monsampietro Morico (FM) per la realizzazione del loro portale di vendita online di
prodotti parafarmaceutici.
4.2 CMS Zen Cart
4.2.1 In cosa consiste il CMS Zen Cart?
Zen Cart rappresenta l‟Arte dell‟e-commerce: si tratta di un sistema di carrello
elettronico open source, gratuito, di facile utilizzo, adatto a quanti vogliano realizzare
un negozio/show room online.
Il software di Zen Cart (o CMS ZenCart) scritto in PHP, per funzionare richiede
l‟installazione su di un server (online o in locale) ed un da base MySQL.
Zen Cart viene sviluppato da un affiatato team di esperti negozianti, programmatori,
designer e consulenti convinti che l‟e-commerce possa e debba assumere una
formula semplice ma accattivante. Con Zen Cart sarà possibile avere un negozio
online per vendere beni fisici come vestiario, hardware, parafarmaci, ecc., o beni
digitali come certificati regalo, downloads di brani musicali, ecc. o perfino servizi
81
CAPITOLO 4- CMS Zen Cart e CMS e-Commerce
____________________________________________________________________
come polizze assicurative, piani di supporto IT,ecc… L‟unico limite è la visione per
interpretare ed utilizzare il software per i propri scopi.
Zen Cart pone in primo piano sia le aspettative del negoziante che del cliente, infatti
nel primo caso può essere installato e settato da chiunque abbia un minimo di
conoscenze in campo informatico, ma per inciso il mantenimento e l‟utilizzo
quotidiano sono il suo punto forte, ed in poche ore l‟amministratore sarà in grado di
provvedere autonomamente con la soddisfazione di veder realizzati il suo impegno e
gli sforzi di apprendistato spesi nel progetto.
Zen Cart offre ai visitatori del negozio le novità più interessanti in materia di
shopping online. La navigazione attraverso gli articoli del negozio è veloce, semplice
e sicura. Il programma mette a disposizione un motore di ricerca molto potente e
diversi “punti focali” in aggiunta ai tradizionali collegamenti fra le categorie ed i
prodotti.
Una volta inserito l‟articolo nel carrello, la procedura di acquisto viene esaurita in tre
semplici fasi: dopo aver inserito i dati di fatturazione, il cliente sceglie il metodo di
spedizione (fra quelli proposti), e successivamente sceglierà una modalità di
pagamento (fra quelli impostati dal negoziante), infine, il cliente ha la possibilità di
rivedere l‟ordine, le modalità di spedizione e di pagamento ed aggiungere delle
proprie note in un apposito spazio, prima di confermare l‟acquisto. A conferma
avvenuta, il negoziante riceve immediatamente l‟avviso dell‟ordine mentre il cliente
riceve automaticamente una conferma tramite una email personalizzata.
4.2.2 Da chi è distribuito?
Il codice sorgente di Zen Cart è distribuito sotto la GNU General Public License
(GPL). In breve, questa licenza dà a tutti il diritto di modificare il codice sorgente per
realizzare i propri obiettivi. Questo significa che Zen Cart può anche essere utilizzato
così come distribuito (con delle minime personalizzazioni) oppure può, meglio
“dovrebbe” essere personalizza in ogni dove (dal design alla grafica, dai testi ai
collegamenti) per profilare al massimo al proprio segmento di mercato, o target, la
comunicazione ed ottenere il massimo riscontro con l‟utenza online.
82
CAPITOLO 4- CMS Zen Cart e CMS e-Commerce
____________________________________________________________________
Comunque, lavori derivati che modificano il codice sorgente devono aderire ad
alcune restrizioni se devono poi essere re-distribuiti.
Maggiori informazioni sulla licenza GNU GPL e sulle restrizioni che devono essere
effettuate prima di re-distribuire i codice sorgenti, possono essere trovate
all‟indirizzo: http://www.fsf.org/licensing/licenses/index.html.
4.2.3 Requisiti Server per Zen Cart
Per il corretto funzionamento di Zen Cart è necessario avere a disposizione un Web
Server in cui sia abilitato l‟utilizzo di script PHP e di un database in cui archiviare i
dati..
Dato che Zen Cart è installato nello stesso Server nel quale, precedentemente, è stato
installato il pacchetto XAMPP 1.7.4, allora i software che si hanno a disposizione
sono:

Web Server Apache 2.2.

PHP 5.3.5

Database MySQL 5.5.8 Community Server
4.2.4 Preparare l’installazione di Zen Cart
Prima di installare il software Zen Cart bisogna creare un database che viene usato
per memorizzare le informazioni relative alla configurazione, inserite durante il
processo di installazione, e tutti i settaggi del negozio che si andrà a creare, come le
informazioni sui clienti, categorie, prodotti, ecc.
Il database verrà creato nel server dal DBMS MySQL che è stato installato con
XAMPP.
83
CAPITOLO 4- CMS Zen Cart e CMS e-Commerce
____________________________________________________________________
Per creare un database con MySQL:
1. Aprire il Pannello di Controllo di XAMPP ed assicurasi di aver avviato tutti i
servizi necessari (Apache e MySQL su tutti);
2. Nel browser scrivere l‟indirizzo http://localhost/phpmyadmin/, ottenendo la
seguente schermata:
Screenshot 4-1- URL http://localhost/phpmyadmin/
3. Scrivere il nome del database da utilizzare per l‟istallazione di ZenCart nel
campo Crea un nuovo Database. Nel nostro caso, viene chiamato Negozio;
4. Lasciare invariati gli altri settaggi e cliccare su Crea per creare un nuovo
database;
5. Il nuovo database creato verrà mostrato nel menù a tendina nel pannello di
sinistra. All‟interno del database Negozio sono presenti tutte le entità che
verranno utilizzate dal CMS Zen Cart per realizzare un portale di ecommerce, come ad esempio, le entità:

andress_book che verrà utilizzata per memorizzare i dati di un
cliente;

categories memorizzerà le categorie dei prodotti vendibili nel portale;

orders conterrà gli ordini che verranno effettuati;

products in cui saranno presenti tutti i prodotti vendibili nel portale;
84
CAPITOLO 4- CMS Zen Cart e CMS e-Commerce
____________________________________________________________________
4.2.5 Installazione Zen Cart in locale
Per la realizzazione del progetto è stata installata la versione 1.3.9 in Italiano di Zen
Cart.
Dopo essersi assicurati di aver installato tutto il software necessario alla corretta
installazione di Zen Cart, non resta che procurarsi il codice sorgente reperibile
attraverso il seguente link: http://www.zen-cart.it/download/viewcategory/14-zencart-italiano.
Terminato il download, si estrarre il file scaricato dato che è un file con estensione
.zip) nella cartella <XAMPP>/htdocs del PC, il percorso finisce con la directory
<XAMPP>/htdocs/Zen Cart Italia 1.3.x.
A questo punto la directory Zen Cart Italia 1.3.x stata rinominata negozio_di_prova.
Prima di iniziare l‟installazione di Zen Cart 1.3.9 bisogna assicurarsi di aver avviato
tutti i servizi dal Pannello di Controllo di XAMPP e che questi siano funzionanti.
Oltre ai servizi Apache e MySql bisogna attivare da anche il servizio Mercury che
permette di gestire tutte le email, entranti ed uscenti, dal nostro server di posta
elettronica; otteniamo, allora, la seguente configurazione del pannello di controllo di
XAMPP:
Screenshot 4-2-Pannello di controllo di XAMMP
85
CAPITOLO 4- CMS Zen Cart e CMS e-Commerce
____________________________________________________________________
L‟installazione di Zen Cart viene effettuata esclusivamente tramite browser con una
connessione attiva tramite il richiamo delle pagine via server.
I passi da eseguire sono i seguenti:
1. Aprire un web browser, puntare all‟indirizzo, nel nostro caso in locale
http://localhost/negozio_di_prova per avviare l‟installer. Apparirà una
schermata di benvenuto del programma di installazione Zen Cart, per la
versione scaricata.
La prima cosa che accadrà sarà il richiamo in automatico della pagina di
avvio del processo all‟interno della cartella di installazione: il sistema ogni
volta che si richiama la home page si interroga, per richiamare i file di
configurazione e testare tutte le sue funzionalità, in mancanza di una corretta
configurazione avvierà come visto l‟installer, eccolo in figura:
Screenshot 4-3-Schermata di Benvenuto per l’installazione di Zen Cart
2
Premendo il pulsante INIZIA si passa alla seconda schermata, dove verrà
richiesto di leggere ed accettare le condizioni dettate dalla licenza GNU v2.
Una volta accettato si passerà alla schermata dei prerequisiti. In questa pagina
l‟installer esaminerà tutti i requisiti tecnici, indispensabili al corretto
funzionamento del programma, e segnalerà con una “X” e con il colore rosso,
86
CAPITOLO 4- CMS Zen Cart e CMS e-Commerce
____________________________________________________________________
tutte le anomalie che dovranno essere risolte prima di procedere, mentre gli
avvisi verranno segnalati con un punto esclamativo racchiuso in un cerchio
di colore giallo ed utilizzando caratteri di colore arancione. Inoltre,l‟installer
controllerà anche i corretti permessi sulle cartelle e sui file, indicando quelli
da modificare.
Screenshot 4-4-Visualizzazione dei Prerequisiti di Sistema necessari per procedere all’installazione di Zen
Cart
Quando tutte le voci presenti nelle immagini precedenti hanno la spunta verde, sarà
possibile proseguire.
87
CAPITOLO 4- CMS Zen Cart e CMS e-Commerce
____________________________________________________________________
3
Cliccando su Install verrà visualizzata la schermata Setup Database che
permetterà di settare le impostazioni per quanto riguarda il database sul quale
il negozio online si baserà ( che deve essere lo stesso Database creato nella
fase di: Preparare l’installazione di Zen Cart)
Screenshot 4-5-pagina di Setup Database
Il primo campo presenta un menù a tendina dove sarà possibile scegliere il
tipo di database da utilizzare (nel nostro caso MySQL), a seguire verranno
richieste le informazioni relative al prefisso da utilizzare per le tabelle
contenute nel database, il nome dell‟host o l‟indirizzo IP del server MySQL,
il nome utente e la password da utilizzare durante la connessione e il nome
del database (creato prima di iniziare l‟installazione di Zen Cart e chiamato
Negozio_Zencart).
Nel campo successivo, verrà richiesto se conservare o meno le sessioni nel
database.
Le ultime due informazioni sono inerenti al metodo da utilizzare per l‟SQL
caching ed il percorso per la cartella di cache; nel nostro caso sono state
lasciate
le
informazioni
di
default.
88
CAPITOLO 4- CMS Zen Cart e CMS e-Commerce
____________________________________________________________________
4
Andando avanti si accederà alla pagina chiamata Sistema Setup.Qui verranno
rilevati automaticamente i path (percorso) di sistema: dove fisicamente è
presente la directory di Zen Cart, l‟indirizzo del negozio virtuale, l‟indirizzo
del server HTTPS e il path virtuale che punta alla directory di Zen Cart
5
Andando avanti si aprirà una nuova schermata chiamata Setup Negozio che
permette di impostare i settaggi del negozio virtuale.
In particolare varrà richiesto di inserire il nome del negozio, il nome completo
e l‟indirizzo email del responsabile attività, la nazione, la città e l‟indirizzo
completo del negozio, ossia tutte quelle informazioni che verranno stampate
sui documenti e utilizzate nell‟invio delle mail.
In basso, sarà possibile selezionare la lingua di default, la valuta ed infine se
installare una DEMO di categorie, prodotti ed allestimento per vetrine,
varianti prodotto ed offerte per conoscere ed imparare caratteristiche e
peculiarità di Zen Cart.
Screenshot 4-6-pagina contenenti il Setup Negozio
89
CAPITOLO 4- CMS Zen Cart e CMS e-Commerce
____________________________________________________________________
Per proseguire, premere il tasto Salva Settaggi Negozio che provvederà a
creare le tabelle del database e caricare tutti i dati della versione dimostrativa.
6
Nella nuova pagina visualizzata, verrà richiesto di inserire tutti i dati relativi
all‟amministratore del negozio: il nome dell‟utente, la password e l‟indirizzo
email dell‟amministratore.
Infine sarà possibile abilitare o meno il controllo degli aggiornamenti di Zen
Cart, spuntando la relativa check box situata in fondo alla pagina. Abilitando
questa opzione, ad ogni autenticazione come amministratore, Zen Cart sarà in
grado di rilevare la presenza di nuove versioni disponibili.
Screenshot 4-7-Pagina Setup Admin
90
CAPITOLO 4- CMS Zen Cart e CMS e-Commerce
____________________________________________________________________
7
Cliccando su Salva Settaggi Admin si accederà all‟ultima schermata in cui
comparirà il messaggio di completamento installazione:
Screenshot 4-8-Completamento installazione
Dopo aver terminato l‟installazione, per motivi di sicurezza, si consiglia di
cancellare, piuttosto che rinominare, la cartella zc_install, in modo da evitare
tentativi di re-instalalzione o di eliminazione del database del negozio.
Altro passo di fondamentale importanza, prima di aprire il negozio al
pubblico, è modificare subito i permessi, in sola lettura, dei file configure.php
presenti nelle cartelle:

/admin/includes

/includes/
91
CAPITOLO 4- CMS Zen Cart e CMS e-Commerce
____________________________________________________________________
4.2.6 Testing di Zen Cart
Effettuando l‟operazione di testing ( procedura usata per verificare singole parti di un
codice sorgente) del Software di Zen Cart installato in locale è possibile determinare
un insieme di caratteristiche e di funzionalità dello stesso.
Una volta terminata l‟installazione, sarà possibile accedere a due diverse aree:

Negozio

Pannello di amministrazione
4.2.6.1 Negozio Zen Cart
Accedendo al negozio, si ha una home page di questo tipo:
Screenshot 4-9- Home page del negozio virtuale di prova
92
CAPITOLO 4- CMS Zen Cart e CMS e-Commerce
____________________________________________________________________
Il visitatore che accede a questa home page, può navigare tra i prodotti (nel nostro
negozio sono presenti i prodotti demo ottenuto dall‟installazione di ZenCart) tramite
il box laterale Categorie.
Scelto un prodotto, verrà mostrata la scheda “pagina articolo” con le informazioni
relative a quanto selezionato: in dettaglio descrizione, prezzo, peso, sconti e molto
altro.
Screenshot 4-10-Schermata ottenuta dopo aver scelto un prodotto
Nella pagina del “Carrello” si potrà controllare il numero di articoli in ordine,
prezzo, peso e costi di spedizione. Sarà possibile eliminare e cambiare la quantità
degli articoli scelti:
Screenshot 4-11-Pagina Carrello
93
CAPITOLO 4- CMS Zen Cart e CMS e-Commerce
____________________________________________________________________
Una volta soddisfatte le scelte si ciccherà il bottone “Alla Cassa” per iniziare il
processo di chiusura ordine.
Prima della chiusura ordine, l‟utenza verrà indirizzata alla pagina di “Login”:
Screenshot 4-12-Sezione Login
Nel caso in cui l‟utente non è registrato (quindi non è in possesso di User e
Password), gli verrà proposto di registrarsi.
Nel passaggio da utente anonimo a utente registrato, Zen Cart riporterà gli articoli
nel carrello cliente in modo che non vadano perduti.
Supponendo di essere un utente identificato, una volta effettuato il Login, il cliente,
continuando il processo di chiusura ordine, verrà automaticamente reindirizzato alla
pagina “Info per la spedizione” nella quale sceglierà l‟opzione preferita per la
spedizione e confermerà il proprio indirizzo di spedizione o potrà scegliere di far
consegnare ad altra persona e destinazione.
Infine si accederà nella pagina “Conferma Ordine”, in cui verranno calcolati e
visualizzati tutti i costi (spese di spedizione, aliquote di imposta, ecc) per l‟ordine
cliente, oltre ai relativi indirizzi di fatturazione e di spedizione.
Se tutti i dettagli dell‟ordine saranno corretti, il cliente premendo il bottone
“Conferma Ordine”, il sistema elaborerà l‟ordine inviando le email di conferma
ordine al cliente ed all‟amministratore, impostando lo stato dell‟ordine, il tipo di
pagamento scelto e salvando il tutto nel database.
94
CAPITOLO 4- CMS Zen Cart e CMS e-Commerce
____________________________________________________________________
4.2.6.2 Amministrazione negozio Zen Cart
Una volta effettuato il login come amministratori, si avrà accesso al Pannello di
Amministrazione di Zen Cart, dove sarà possibile modificare le impostazioni di
carattere amministrativo del negozio attraverso la scelta di voci che costituiscono un
menù a tendina:
Screenshot 4-13-Menù a tendina presente nel pannello di amministrazione
Da qui è possibile accedere alle varie categorie di controllo e settaggio:
o Configurazione: contiene tutte le impostazioni base dia del negozio che del
programma.
o Catalogo:. Per gestire tipologie e prodotti, categorie e sottocategorie,
specificare e disporre tutte le varianti di prodotti, così come porre i prodotti in
vetrina, nelle offerte e promozioni.
o Moduli: per configurare e gestire i moduli pagamento, spedizione e la
compilazione del totale.
o Clienti: per amministrare clienti e ordini, gruppi di sconto e le notifiche
PayPal.
o Località/Tasse: impostazione dei paesi con gestione delle zone ed aliquote di
tassa impostate.
o Localizzazioni: per definire gli idomi disponibili nel negozio, le valute
accettate nel pagamento e lo stato degli ordini.
o Reports: presenta elenchi di prodotti visti, acquistati ed in esaurimento.
o Strumenti: è un insieme di utilità, sia di configurazione che gestione
struttura e contenuti.
o Certificato Regalo/buoni Sconto: gestione e amministrazione completa con
storico dettagli.
o Extra: profilato nella distribuzione base soprattutto ai negozi di musica,
disponendo clip multimediali arredo o interrogazione della scheda prodotto.
95
CAPITOLO 4- CMS Zen Cart e CMS e-Commerce
____________________________________________________________________
La pagina di Amministrazione offre anche una visione generale e veloce di come
procede il negozio.
Sono infatti riportate le statistiche su numero di pagine viste, clienti, prodotti e altro
ancora, così come il numero di offerte, prodotti e saldi attivi o scaduti ecc.
Screenshot 4-14-Pannello di amministrazione del negozio online
4.2.7 LINK al sito
Per maggiori informazioni è possibile visitare il sito ufficiale della comunita italiana
di Zen Cart: www.zencart-italia.com
96
CAPITOLO 4- CMS Zen Cart e CMS e-Commerce
____________________________________________________________________
4.3 CMS osCommerce
4.3.1 In cosa consiste il CMS osCommerce?
OsCommerce è una nota piattaforma di e-commerce che consente di creare e gestire
un negozio per la vendita online di illimitati prodotti..
Il software di osCommerce è scritto in PHP e funzioni che esso fornisce sono:
gestione dei prodotti, creazione e gestione del carrello della spesa, impostare la
valuta , effettuare una o più spedizioni,possibilità di scelta tra diverse modalità di
pagamento, gestione degli ordini, opzioni multilingua e multivaluta, e tante altre
ancora.
4.3.2 Da chi è distribuito?
OsCommerce è un software open source per il commercio elettronico e conta la più
ampia community di sviluppatori on-line da tutto il mondo. Dagli Stati Uniti all'
Europa, dalla Cina alla Russia, passando dall' Australia all' America Centro –
Meridionale.
Sul sito ufficiale (www.oscommerce.com) sono presenti:

oltre 3200 “contributions”: si tratta di moduli aggiuntivi (per i pagamenti, per
le modalità di spedizione, funzioni su come presentare prodotti e news ai
clienti
oppure
funzioni
che
semplificano
notevolmente
la
parte
amministrativa del sito di e-commerce, implementazioni in varie lingue,
templates e immagini non standard, sistemi di interfacciamento con i
gateways che accettano le carte di credito, ecc.)

strumenti per condividere le proprie contributions: tutti gli utenti che hanno
sviluppato moduli aggiuntivi per osCommerce possono renderli disponibili
alla comunità

documentazione a volontà: centinaia di articoli sono raccolti nella knowledge
base(disponibili sia in formato zip che in versione “navigabile” direttamente
via browser)
97
CAPITOLO 4- CMS Zen Cart e CMS e-Commerce
____________________________________________________________________

forum di aiuto nel quale è possibile interagire con gli sviluppatori e tra
sviluppatori

circa 9000 negozi reali (live stores) e naturalmente la possibilità di segnalare,
gratuitamente, anche il proprio.
Sempre dal sito ufficiale, inoltre, è possibile scaricare una versione base gratuita del
software (http://www.oscommerceitalia.net/oscommerce_italiano.htm).
4.3.3 Requisiti Server per osCommerce
Per il corretto funzionamento del CMS osCommerce si deve disporre degli stessi
requisiti necessari per il CMS Zen Cart. Quindi si deve avere a disposizione un Web
Server in cui sia abilitato l‟utilizzo di script PHP e di un database in cui archiviare i
dati.
Dato che osCommerce è installato nello stesso Server nel quale, è stato installato il
pacchetto XAMPP 1.7.4, allora i software che si hanno a disposizione sono:

Web Server Apache 2.2.

PHP 5.3.5

Database MySQL 5.5.8 Community Server
4.3.4 Preparare l’installazione di osCommerce
Affinché possa essere installato il software osCommerce è necessario creare un
database che viene usato per memorizzare le informazioni relative alla
configurazione, inserite durante il processo di installazione, e tutti i settaggi del
negozio online che si andrà a creare,
Il database verrà creato nel server dal DBMS MySQL che è stato installato con
XAMPP.Il database creato (con le stesse modalità viste per Zen Cart), lo chiamiamo:
osCommerce_DB.
98
CAPITOLO 4- CMS Zen Cart e CMS e-Commerce
____________________________________________________________________
4.3.5 Installazione osCommerce in locale
Dopo essersi assicurati di aver installato tutto il software necessario per soddisfare i
requisiti necessari per il corretto funzionamento di osCommerce, non resta che
procurarsi
il
codice
sorgente
reperibile
attraverso
il
seguente
link:
http://www.oscommerceitalia.net.
Il software scaricato si chiama: osCommerce Online Merchant versione 2.3.1.
Terminato il download, si estrarre il file scaricato (dato che è un file con estensione
.zip) nella cartella <XAMPP>/htdocs del PC, il percorso finisce con la directory
<XAMPP>/htdocs/ oscommerce-2.3.1.
A
questo
punto
la
directory
oscommerce-2.3.1
stata
rinominata
negozio_osCommerce.
Dopo aver messo in funzione i servizi: Apache, MySQL e Mercury dal Pannello di
Controllo di XAMPP.è possibile iniziare l‟installazione di oscommerce-2.3.1.
99
CAPITOLO 4- CMS Zen Cart e CMS e-Commerce
____________________________________________________________________
Le fasi da eseguire per una corretta istallazione sono le seguenti:
1. Aprire
il
e
browser
andare
all‟indirizzo
http://localhost/osCommerce_negozio/catalog/ in modo da visualizzare una
schermata del tipo:
Screenshot 4-15-URL http://localhost/osCommerce_negozio/catalog
/
2. Cliccando sul bottone “Continue” e si accede alla seguente schermata:
Screenshot 4-16-FORM in cui inserire le informazioni riguardanti il database del negozio online
nella quale si deve inserire il nome del Server che contiene il database (nel
nostrocaso localhost in quanto si sta lavorando in locale), il nome dell‟User, la
100
CAPITOLO 4- CMS Zen Cart e CMS e-Commerce
____________________________________________________________________
password ed il nome del Database che che è stato creato nella fase di
Preparazione all‟istallazione di osCommerce e cioè: osCommerce_DB.
Ciccando su “Continua” verrà visualizzata la conferma di avvenuta connessione
al DB.
Cliccando nuovamente su “Continua”: si avrà la conferma della corretta
creazione delle tabelle nel db
3. A questo punto comparirà una schermata nella quale si deve inserire il nome
del negozio da visualizzare online, il nome del negozio da visualizzare in
pubblico, l‟email del negozio, il nome e la password dell‟amministratore del
negozio online.
Nel nostro caso sono stati inseriti dei dati di prova, ottenendo la schermata
compilata nel seguente modo:
Screenshot 4-17-Sezione in cui inserire le informazioni relative al negozio che si andrà a creare
4. Premendo il pulsante “continue” si accederà all‟ultima schermata che
conferma la corretta installazione del software oscommerce-2.3.1.
101
CAPITOLO 4- CMS Zen Cart e CMS e-Commerce
____________________________________________________________________
4.3.6 Testing di OsCommerce
In questo paragrafo viene descritta qualche funzionalità del software osCommerce
installato in locale, sulla base di semplici “simulazioni”.
Una volta terminata l‟installazione, sarà possibile accedere a due diverse aree:

Catalog

Administration Tool
4.3.6.1 Catalog
Accedendo a Catalog si ha l‟home page del negozio online, che corrisponde alla
seguente schermata:
Screenshot 4-18-Home page del negozio online
102
CAPITOLO 4- CMS Zen Cart e CMS e-Commerce
____________________________________________________________________
Il visitatore che accede a questa home page, può navigare tra i prodotti (nel nostro
negozio sono presenti i prodotti demo ottenuto dall‟installazione di osCommerce)
scegliendoli dal menù a sinistra della pagina.
Per ogni prodotto scelto, verrà visualizzata la scheda del prodotto contenente la
descrizione del prodotto selezionato.
Screenshot 4-19-Pagina contenente la descrizione del prodotto selezionato
Supponendo di aggiungere il prodotto precedente nel “carrello”, si otterrà la
seguente pagina:
Screenshot 4-20-Schermata ottenuta dopo aver inserito un prodotto nel carrello
103
CAPITOLO 4- CMS Zen Cart e CMS e-Commerce
____________________________________________________________________
Una volta nella pagina del carrello, sarà possibile vedere: il numero di articoli
selezionati in quel ordine, il prezzo ed i costi di spedizione; inoltre verrà offerta la
possibilità di eliminare e cambiare la quantità degli articoli scelti.
Per confermare l‟ordine, basta premere sul pulsante “Checkout”, e si accederà alla
schermata nella quale, se si è un cliente registrato basta inserire user e password per
continuare il processo di chiusura dell‟ ordine, altrimenti, se si è un nuovo cliente, è
necessario effettuare la registrazioni in modo che siano forniti user e password.
Screenshot 4-21-Schermata in cui viene effettuato il Log-in al portale
Una volta effettuato il log-in inserendo user e password, viene visualizzati i dettagli
dell‟ordine, che se confermati, permettono di accedere ad una pagina in cui è
necessario scegliere le modalità di pagamento dell‟ordine.
Una volta inserita la modalità di pagamento, è possibile confermare l‟ordine e si
accederà alla pagina in cui viene confermato che l‟ordine è stato eseguito
correttamente.
104
CAPITOLO 4- CMS Zen Cart e CMS e-Commerce
____________________________________________________________________
4.3.6.2 Administration Tool
Una volta effettuato il login come amministratori, si avrà accesso al Pannello di
Amministrazione di osCommerce, dal quale è possibile: modificare i settaggi del
negozio online e vedere le statiche del negozio come ad esempio: il numero di
visitatori del portale, lo stato degli ordini, il numero di clienti registrati, ecc.
La schermata che si ottiene appena viene effettuato il login come amministratore è la
seguente:
Screenshot 4-22-Pannello di Amministrazione del sito online
4.3.7 LINK al sito
Per maggiori informazioni relative al CMS osCommerce è possibile visitare il sito:
http://www.oscommerceitalia.net.
105
CAPITOLO 5- CONCLUSIONI____________________________________________________________________
CAPITOLO 5 - CONCLUSIONI-
5.1 Introduzione
In questo capitolo sono racchiuse le “somme finali” del lavoro fin qui presentato.
In più nel paragrafo “Possibili Applicazioni” vengono descritte le caratteristiche di
un progetto che è stato realizzato parallelamente a questo, ed ha come scopo quello
di elaborare le informazioni ottenute tramite l‟utilizzo dell‟interfaccia progettata in
questa tesi.
In ultimo, nel paragrafo “Sviluppi Futuri” si parlerà di alcune soluzioni che possono
essere adottate, con lo scopo di potenziare l‟interfaccia realizzata.
5.2 Considerazioni Finali
Le pagine precedenti hanno mostrato come sia possibile realizzare un‟interfaccia che
permette l‟estrapolazione di opportune informazioni dal contenuto di alcuni siti web,
in modo tale che possono essere memorizzate in una base di dati per poi essere
elaborate in modo adeguato.
La condizione necessaria affinché l‟interfaccia possa funzionare in maniera
efficiente, è quella che i sorgenti HTML delle pagine web da cui devono essere
prelevate le informazioni siano ottenibili, dato che gli algoritmi che vengono
utilizzati nella fase di estrapolazione delle informazioni vanno a “manipolare” il
sorgente HTML delle pagine che costituiscono un sito web.
Nel caso in cui viene soddisfatta questa condizione, l‟interfaccia realizzata in questo
progetto può essere utilizzata per estrapolare qualsiasi tipo di informazioni dal
contenuto di qualsiasi sito web. Infatti, le soluzioni adottate sia per prelevare il
sorgente HTML di una pagina web e sia per la memorizzazione delle informazioni in
una base dati, sono le stesse per entrambi i siti web forniteci dal richiedente
106
CAPITOLO 5- CONCLUSIONI____________________________________________________________________
dell‟interfaccia. Le uniche varianti si hanno nell‟implementazione degli algoritmi che
permettono l‟estrapolazione delle informazioni dal sorgente HTML. Questo perché
per la loro implementazione, vengono utilizzate delle funzioni PHP basate su
espressioni regolari che permettono di rilevare la presenza di una sottostringa
all'interno di una sequenza di caratteri principale. In questo studio la sequenza di
caratteri principale coincide con il sorgente HTML di una pagina web, mentre la
sottostringa da ricercare è l‟informazione da estrapolare dai tag HTML, dove questi
ultimi sono diversi a seconda della struttura del sito e dal tipo di informazione da
prelevare.
Oltre alla realizzazione dell‟interfaccia, questo lavoro di tesi fornisce alcune
informazioni utili per chi, per la prima volta, si affaccia al mondo dell‟e-commerce e
vuole essere a conoscenza di alcuni approfondimenti su due CMS largamente
utilizzati per la realizzazione di portali l‟e-commerce, ovvero il CMS Zen Cart ed il
CMS OsCommerce.
Sulla base dei risultati ottenuti nella fase di analisi dei due CMS e sfruttando anche
delle informazioni presenti nei forum e nelle community ufficiali è possibile
effettuare un confronto tra i due.
Per quanto riguarda gli aspetti comuni tra i due CMS, è possibile dire che:

sono software open source scritti in PHP per il commercio elettronico.
La possibilità di visionare il codice sorgente del programma, consente ai
programmatori di rilevare eventuali bug (errori) e segnalare possibili
migliorie da effettuare al codice.
All'interno delle comunità di sviluppo, capita spesso che un programmatore
identifichi un errore e lo segnali tempestivamente al responsabile del progetto
con allegato il codice corretto. Questo sistema permette dunque di far
visionare il codice a più persone contemporaneamente e contribuisce a
produrre programmi di qualità.
Diversamente
da
quanto
avviene
nello
sviluppo
di
software
commerciale/proprietario, dove tipicamente è il marketing a definire le
caratteristiche del prodotto, nel modello open source chi definisce le
caratteristiche e l'evoluzione del software sono gli utenti della comunità di
107
CAPITOLO 5- CONCLUSIONI____________________________________________________________________
sviluppo. Questo significa che le applicazioni open source sono molto
concrete in quanto devono rispondere a requisiti specifici segnalati dagli
utilizzatori stessi del programma.

I requisiti Server richiesti per l‟installazione dei due software sono gli stessi;
infatti per il corretto funzionamento di entrambi è necessario avere a
disposizione un Web Server in cui sia abilitato l‟utilizzo di script PHP e di un
database in cui archiviare i dati.

Le fasi di installazione sono simili. In entrambe è richiesto l‟utilizzo di un
database, che deve essere creato prima che venga eseguita l‟installazione del
software, in modo che possano essere memorizzate le informazioni relative
alla configurazione inserite durante il processo di installazione.

Entrambi offrono la modalità DEMO del software, scaricabile direttamente
dai loro siti, che permette di effettuare delle operazioni di test.

Prima di inserire i prodotti nel negozio,è necessario creare la Categoria dove
si vuole collocarli. Le categorie consentono di raggruppare diverse sotto
categorie e prodotti. Tuttavia, in circostanze normali, ogni categoria può
contenere o prodotti o sotto categorie ma non entrambe contemporaneamente.

Possibilità di scegliere diverse modalità di pagamento tra cui: modulo
pagamento PayPal, modulo pagamento bonifico bancario, ecc.

Possibilità di scelta tra diversi moduli di spedizione come: corrieri italiani
Bartolini, pacco postale ordinario, pacco posta celere, ecc

Presenza di Meta Tag dinamici;per una migliore indicizzazione del sito nei
motori di ricerca.

Per ogni singolo articolo presente nel portale è possibile accedere alla pagina
di presentazione dello stesso, contenete le informazioni dettagliate di ogni
singolo articolo.

L‟email rappresenta il principale metodo di comunicazione del negozio, per
informare i clienti sullo stato dei propri ordini e per rimanere aggiornati sullo
stato di: richieste, ordini, magazzino e segnalazioni.

Affinché possa essere portato a termine un ordine, è necessario effettuare il
login-in inserendo nome utente e password. Quindi ogni cliente deve essere
registrato al sito prima di conclude un ordine.

Ad ogni ordine è associato uno stato
108
CAPITOLO 5- CONCLUSIONI____________________________________________________________________

Gestione in tempo reale del magazzino con monitoraggio e riordino
automatizzato.

Motore di ricerca interno al portale, che consente di ricercare tra i vari
elementi del sito, dopo aver inserito una o più parole chiave.

Possibilità di inserire Moduli Aggiuntivi, dove i moduli aggiuntivi sono delle
integrazioni e/o modifiche del programma per gestire aprticolari condizioni
e/o funzionalità. Alcuni di questi moduli aggiuntavi si possono scaricare dai
rispettivi siti dei due CMS.

Dalla pagina di amministrazione del portale è possibile:
 impostare la lingua predefinita per il negozio online
 scegliere :il tipo di valuta, gli idiomi, l‟unità di misura., le
modalità di pagamento e le basi per il calcolo delle tasse
 Aggiungere e modificare categorie, sotto categorie e prodotti
 Modifica degli stati di un ordine
 Gestione dei clienti registrati al sito
In molte community, Zen Cart viene definito come un fork (cioè una derivazione ) di
osCommerce. Il software di Zen Cart, con il passare del tempo, è stato sviluppato ed
ha preso una direzione differente rispetto a quello di osCommerce, anche se resta
attualmente piuttosto simile.
Sulla base di questa definizione, di seguito sono elencati gli aspetti in contrasto tra i
due CMS.

Grazie alla natura open source del software,come già detto, sia Zen Cart che
osCommerce hanno a disposizione una comunità di supporto internazionale
molto vasta anche se la community di Zen Cart risulta essere inferiore
rispetto a quella di osCommerce; per questo motivo gli aggiornamenti, i plugin e la correzione dei bug nel software di Zen Cart non sempre vengono
rilasciati con tempestività rispetto a quanto accade, invece, per osCommerce.

osCommerce è “più statico”e più difficile da modificare

osCommerce è più difficile da adattare a template personalizzati

Il codice sorgente di ZenCart, secondo molti programmatori, è più ostico da
comprendere
109
CAPITOLO 5- CONCLUSIONI____________________________________________________________________

Zen Cart è più attivo dal punto di vista del rilascio delle versioni più
aggiornate; osCommerce, invece , è fermo da più tempo sullo stesso codice;

Zen Cart offre maggiore sicurezza nel trattamento dei dati sensibili rispetto ad
osCommerce. Ad esempio nella vecchia versione di osCommerce RC 2.2 (ora
abbandonata)
era
possibile
accedere
ad
alcune
sezioni
dell‟Area
Amministrativa senza aver bisogno di effettuare alcun login.
5.3 Possibili applicazioni
L‟interfaccia progettata in questo lavoro di tesi è stata utilizzata per la realizzazione
del progetto il cui titolo è: “PROGETTAZIONE E IMPLEMENTAZIONE DI UN
MODULO
ZEN
CART
PER
LA
GESTIONE
DI
PRODOTTI
PARAFARMACEUTICI” sviluppato dal laureando Seri Daniele.
Lo scopo del suo progetto è quello di implementare un‟ interfaccia che elabora le
informazioni ottenute attraverso l‟utilizzo di quella progettata e realizzata in questo
lavoro di tesi.
L‟elaborazione consiste nella realizzazione di un modulo aggiuntivo Zen Cart che
consente la gestione di prodotti parafarmaceutici.
110
CAPITOLO 5- CONCLUSIONI____________________________________________________________________
5.4 Sviluppi Futuri
L‟interfaccia realizzata per questo lavoro di tesi permette di prelevare le informazioni
relative ai prodotti parafarmaceutici presenti all‟interno di due portali di e-commerce
di interesse da parte del richiedente.
Un possibile potenziamento futuro sarà quello di prelevare le informazioni presenti
all‟interno di altri portali di vendita di parafarmaci. Per fare questo, sarà necessario
aggiungere alle funzionalità in possesso della nostra interfaccia le opportune funzioni
che consentono di estrapolare e di memorizzare le nuove informazioni.
Un‟ interfaccia così definita, consentirà all‟utente di avere a disposizione una
maggiore quantità di informazioni sulle quali operare le proprie scelte di mercato.
111
RINGRAZIAMENTI
____________________________________________________________________
RINGRAZIAMENTI
In queste poche righe voglio ringraziare chi in un modo o nell‟altro hanno fatto si che
oggi stia scrivendo i Ringraziamenti della mia tesi di laurea.
Desidero ringraziare il Prof. Aldo Franco Dragoni, relatore di questa tesi, per
l'incarico assegnatomi e la fiducia accordatami, i responsabili della Farmacia Blasi
Dott. Giuseppe per l‟opportunità fornita ed il Dott. Andrea Claudi per la grande
disponibilità e cortesia dimostratemi, e per tutto l‟aiuto fornito durante la stesura del
lavoro.
Un sentito ringraziamento va a Babbo e Mamma che, con il loro incrollabile
sostegno morale ed economico, mi hanno permesso di raggiungere questo traguardo.
Ringrazio l‟Ing. Emanuela Egidi (mia sorella) per i consigli, per le telefonate di
conforto e per avermi inculcato la sua “testardaggine”; un altro ringraziamento va al
suo “Sposo” Mauro per la sua disponibilità e i suoi consigli su come marcare gli
attaccanti.
Più di un ringraziamento deve essere spedito verso l‟alto, lassù nel cielo, a nonno
Gino e nonna Maria perché, oltre ad avermi insegnato da piccolo le tabelline, cosa
vuol dire il sacrificio e come affrontate la vita, mi hanno aiutato nel superamento
d‟ogni esame.
Un altro ringraziamento verso l‟alto va a Zio Bruno “Il Prof” perché mi ha dato tanto
e continua a darmi ancora tanto, dopo “le tesine” per l‟esame: di quinta elementare,
di terza media e di maturità, questa è l‟unica volta che non ho la possibilità di
potergli far leggere la tesi prima di consegnarla, ma se già la sto scrivendo, molto
merito è suo.
Un ringraziamento particolare è per Nonno Arturo e Nonna Pina perché
semplicemente mi voglio bene e hanno avuto sempre fiducia in me.
Vorrei ringraziare la mia seconda famiglia, per avermi aspettato ogni giorno per il
caffè ed il dopo caffè ed il dopo dopo caffè. Un pensierino và alle dolci parole e
sempre piene di significato di Laura e al “furetto tuttofare” di Fabio.
L‟ultimo ringraziamento, non per ordine di importanza, va a tutti i miei amici di
Porchia, Motalto, Montedinove, a quelli che ho incontrato durante il percorso
dell‟università e agli amici-colleghi .Vorrei nominarli uno per uno ma sarei sicuro di
112
RINGRAZIAMENTI
____________________________________________________________________
commettere il banalissimo errore di dimenticarne qualcuno, per questo gli dico
semplicemente GRAZIE.
Vorrei concludere il tutto riportando una frase nominata più volte da mia sorella
durante la sua “storia” universitaria, ma che in questo momento può essere adattata
alla mia situazione:
“Ho terminato i mattoncini, un muretto è stato costruito, è giunto il momento di
farne uno nuovo”.
113
BIBLIOGRAFIA
____________________________________________________________________
BIBLIOGRAFIA
Libri
1. Carniel S., Valentina Maggioni, Paolo De Dionigi, Manuale e-commerce Zen
Cart. Il manuale approfondito per allestire e gestire un negozio Zen Cart,
Firenze, Phasar, 2007
2. Chaffay D.,Mayer R.,Johnston,Ellis-Chadwick F.,Internet
Marketing:Strategy, Implementation and Practice,Milano, Apogeo,2001
3. Davis M. E.,Phillips J.A.,Programmare in PHP e MySQL ,Milano,Tecniche
Nuove,2008
4. Foglio A.,E-commerce e Web marketing: strategie di web marketing e
tecniche di vendita in Internet,Milano, Franco Angeli,2008
5. Paolillo R.,Il Check-up dei siti Web,Milano,Apogeo, 2004
Sitografia
1. PHP: Hypertext Preprocessor, http://www.php.net
2. Zen Cart Tutorial, http://www.siteground.com/tutorials/zencart/
3. osCommerce,Open Source Online Shop E-commerce Solutions ,
http://www.oscommerce.com/
4. OsCommerce Community Add-Ons, http://addons.oscommerce.com/
La data dell‟ultimo accesso alle URL citate è:16-07-2011
114