IMPLEMENTAZIONE DI UNA INTERFACCIA PER...

118
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: Relatore: Matteo Egidi Prof. Aldo Franco Dragoni Anno Accademico 2010/2011

Transcript of IMPLEMENTAZIONE DI UNA INTERFACCIA PER...

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: Relatore: Matteo Egidi Prof. Aldo Franco Dragoni

Anno Accademico 2010/2011

A nonno Gino, nonna Maria e zio Bruno

i

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 – STRUMENTI UTILIZZATI ......................................................................... 24

2.1 INTRODUZIONE .................................................................................................................. 24 2.2 PACCHETTO XAMPP ......................................................................................................... 24

2.2.1 In Cosa consiste? ......................................................................................................... 24 2.2.2 Web Server Apache ...................................................................................................... 25 2.2.3 Database MySQL ......................................................................................................... 27 2.2.4 PHP .............................................................................................................................. 27 2.2.5 Installazione del Pacchetto XAMMP ............................................................................ 29 2.2.6 Esecuzione XAMPP ...................................................................................................... 30

2.3 APTANA STUDIO 3.0.2 ....................................................................................................... 32 2.4 WEB BROWSER MOZILLA FIREFOX 5.0 IT .......................................................................... 33

CAPITOLO 3 –PROGETTAZIONE E REALIZZAZIONE ................................................. 35

3.1 INTRODUZIONE .................................................................................................................. 35 3.2 FUNZIONI PHP UTILIZZATE ................................................................................................ 37

3.2.1 Ottenimento del sorgente HTML .................................................................................. 37 3.2.2 Estrapolazione delle informazioni dal sorgente HTML ............................................... 39 3.2.3 Memorizzazione delle informazioni in un database ..................................................... 44

3.3 ALGORITMI IMPLEMENTATI PER LA REALIZZAZIONE DELL‟INTERFACCIA ........................... 48 3.3.1 Estrazione codice HTML .............................................................................................. 48 3.3.2 Estrapolazione delle informazioni dal sorgente HTML ............................................... 50 3.3.3 Memorizzazione delle informazioni in un database ..................................................... 64

3.4 MEMORIZZAZIONE DELLE INFORMAZIONI .......................................................................... 66 3.4.1 Database Saninforma ................................................................................................... 66 3.4.2 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

ii

4.3.5 Installazione osCommerce in locale ............................................................................. 99 4.3.6 Testing di OsCommerce ............................................................................................. 102 4.3.7 LINK al sito ................................................................................................................ 105

CAPITOLO 5 - CONCLUSIONI- .......................................................................................... 106

5.1 INTRODUZIONE ................................................................................................................ 106 5.2 CONSIDERAZIONI FINALI ................................................................................................. 106 5.3 POSSIBILI APPLICAZIONI ................................................................................................... 110 5.4 SVILUPPI FUTURI ............................................................................................................. 111

RINGRAZIAMENTI ....................................................................................................................... 112

BIBLIOGRAFIA .............................................................................................................................. 114

LIBRI ............................................................................................................................................... 114 SITOGRAFIA ..................................................................................................................................... 114

INTRODUZIONE

____________________________________________________________________

1

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.

INTRODUZIONE

____________________________________________________________________

2

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

INTRODUZIONE

____________________________________________________________________

3

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.

INTRODUZIONE

____________________________________________________________________

4

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

INTRODUZIONE

____________________________________________________________________

5

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.

INTRODUZIONE

____________________________________________________________________

6

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.

CAPITOLO 1– SPECIFICHE DI PROGETTO

____________________________________________________________________

7

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

CAPITOLO 1– SPECIFICHE DI PROGETTO

____________________________________________________________________

8

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.

CAPITOLO 1– SPECIFICHE DI PROGETTO

____________________________________________________________________

9

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.

CAPITOLO 1– SPECIFICHE DI PROGETTO

____________________________________________________________________

10

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.

CAPITOLO 1– SPECIFICHE DI PROGETTO

____________________________________________________________________

11

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

CAPITOLO 1– SPECIFICHE DI PROGETTO

____________________________________________________________________

12

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.

CAPITOLO 1– SPECIFICHE DI PROGETTO

____________________________________________________________________

13

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

CAPITOLO 1– SPECIFICHE DI PROGETTO

____________________________________________________________________

14

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

CAPITOLO 1– SPECIFICHE DI PROGETTO

____________________________________________________________________

15

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.

CAPITOLO 1– SPECIFICHE DI PROGETTO

____________________________________________________________________

16

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

CAPITOLO 1– SPECIFICHE DI PROGETTO

____________________________________________________________________

17

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.

CAPITOLO 1– SPECIFICHE DI PROGETTO

____________________________________________________________________

18

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.

CAPITOLO 1– SPECIFICHE DI PROGETTO

____________________________________________________________________

19

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.

CAPITOLO 1– SPECIFICHE DI PROGETTO

____________________________________________________________________

20

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

CAPITOLO 1– SPECIFICHE DI PROGETTO

____________________________________________________________________

21

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

CAPITOLO 1– SPECIFICHE DI PROGETTO

____________________________________________________________________

22

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)

CAPITOLO 1– SPECIFICHE DI PROGETTO

____________________________________________________________________

23

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.

CAPITOLO 2– STRUMENTI UTILIZZATI

____________________________________________________________________

24

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

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

CAPITOLO 2– STRUMENTI UTILIZZATI

____________________________________________________________________

25

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.

CAPITOLO 2– STRUMENTI UTILIZZATI

____________________________________________________________________

26

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

CAPITOLO 2– STRUMENTI UTILIZZATI

____________________________________________________________________

27

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.

CAPITOLO 2– STRUMENTI UTILIZZATI

____________________________________________________________________

28

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

CAPITOLO 2– STRUMENTI UTILIZZATI

____________________________________________________________________

29

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

CAPITOLO 2– STRUMENTI UTILIZZATI

____________________________________________________________________

30

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

CAPITOLO 2– STRUMENTI UTILIZZATI

____________________________________________________________________

31

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

CAPITOLO 2– STRUMENTI UTILIZZATI

____________________________________________________________________

32

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;

CAPITOLO 2– STRUMENTI UTILIZZATI

____________________________________________________________________

33

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

CAPITOLO 2– STRUMENTI UTILIZZATI

____________________________________________________________________

34

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

CAPITOLO 3–PROGETTAZIONE e REALIZZAZIONE

____________________________________________________________________

35

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

CAPITOLO 3–PROGETTAZIONE e REALIZZAZIONE

____________________________________________________________________

36

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 .

CAPITOLO 3–PROGETTAZIONE e REALIZZAZIONE

____________________________________________________________________

37

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().

CAPITOLO 3–PROGETTAZIONE e REALIZZAZIONE

____________________________________________________________________

38

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

CAPITOLO 3–PROGETTAZIONE e REALIZZAZIONE

____________________________________________________________________

39

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.

CAPITOLO 3–PROGETTAZIONE e REALIZZAZIONE

____________________________________________________________________

40

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)

[a-z]

È un metacarattere composto perché è formato da una sequenza di caratteri

racchiusi tra parentesi quadre. . Da un punto di vista logico, però, tutto ciò

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;

[0-9]

È un metacarattere composto perché è formato da una sequenza di caratteri

racchiusi tra parentesi quadre. . Da un punto di vista logico, però, tutto ciò

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.

CAPITOLO 3–PROGETTAZIONE e REALIZZAZIONE

____________________________________________________________________

41

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.

CAPITOLO 3–PROGETTAZIONE e REALIZZAZIONE

____________________________________________________________________

42

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.

CAPITOLO 3–PROGETTAZIONE e REALIZZAZIONE

____________________________________________________________________

43

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.

CAPITOLO 3–PROGETTAZIONE e REALIZZAZIONE

____________________________________________________________________

44

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.

CAPITOLO 3–PROGETTAZIONE e REALIZZAZIONE

____________________________________________________________________

45

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.

CAPITOLO 3–PROGETTAZIONE e REALIZZAZIONE

____________________________________________________________________

46

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

CAPITOLO 3–PROGETTAZIONE e REALIZZAZIONE

____________________________________________________________________

47

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.

CAPITOLO 3–PROGETTAZIONE e REALIZZAZIONE

____________________________________________________________________

48

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().

CAPITOLO 3–PROGETTAZIONE e REALIZZAZIONE

____________________________________________________________________

49

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

CAPITOLO 3–PROGETTAZIONE e REALIZZAZIONE

____________________________________________________________________

50

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.

CAPITOLO 3–PROGETTAZIONE e REALIZZAZIONE

____________________________________________________________________

51

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.

CAPITOLO 3–PROGETTAZIONE e REALIZZAZIONE

____________________________________________________________________

52

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

CAPITOLO 3–PROGETTAZIONE e REALIZZAZIONE

____________________________________________________________________

53

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.

CAPITOLO 3–PROGETTAZIONE e REALIZZAZIONE

____________________________________________________________________

54

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):

CAPITOLO 3–PROGETTAZIONE e REALIZZAZIONE

____________________________________________________________________

55

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.

CAPITOLO 3–PROGETTAZIONE e REALIZZAZIONE

____________________________________________________________________

56

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

CAPITOLO 3–PROGETTAZIONE e REALIZZAZIONE

____________________________________________________________________

57

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

CAPITOLO 3–PROGETTAZIONE e REALIZZAZIONE

____________________________________________________________________

58

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[][];

CAPITOLO 3–PROGETTAZIONE e REALIZZAZIONE

____________________________________________________________________

59

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

CAPITOLO 3–PROGETTAZIONE e REALIZZAZIONE

____________________________________________________________________

60

Il prezzo di vendita relativo all‟i-esimo prodotto verrà salvato nella i-

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

CAPITOLO 3–PROGETTAZIONE e REALIZZAZIONE

____________________________________________________________________

61

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.

CAPITOLO 3–PROGETTAZIONE e REALIZZAZIONE

____________________________________________________________________

62

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.

CAPITOLO 3–PROGETTAZIONE e REALIZZAZIONE

____________________________________________________________________

63

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.

CAPITOLO 3–PROGETTAZIONE e REALIZZAZIONE

____________________________________________________________________

64

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.

CAPITOLO 3–PROGETTAZIONE e REALIZZAZIONE

____________________________________________________________________

65

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.

CAPITOLO 3–PROGETTAZIONE e REALIZZAZIONE

____________________________________________________________________

66

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)

CAPITOLO 3–PROGETTAZIONE e REALIZZAZIONE

____________________________________________________________________

67

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

CAPITOLO 3–PROGETTAZIONE e REALIZZAZIONE

____________________________________________________________________

68

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

CAPITOLO 3–PROGETTAZIONE e REALIZZAZIONE

____________________________________________________________________

69

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, NOME_PRO, DESC_PRO, LINK_PRO,

DATA_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

CAPITOLO 3–PROGETTAZIONE e REALIZZAZIONE

____________________________________________________________________

70

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

CAPITOLO 3–PROGETTAZIONE e REALIZZAZIONE

____________________________________________________________________

71

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)

CAPITOLO 3–PROGETTAZIONE e REALIZZAZIONE

____________________________________________________________________

72

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)

CAPITOLO 3–PROGETTAZIONE e REALIZZAZIONE

____________________________________________________________________

73

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

CAPITOLO 3–PROGETTAZIONE e REALIZZAZIONE

____________________________________________________________________

74

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)

CAPITOLO 3–PROGETTAZIONE e REALIZZAZIONE

____________________________________________________________________

75

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

CAPITOLO 3–PROGETTAZIONE e REALIZZAZIONE

____________________________________________________________________

76

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;

CAPITOLO 3–PROGETTAZIONE e REALIZZAZIONE

____________________________________________________________________

77

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

CAPITOLO 4- CMS Zen Cart e CMS e-Commerce

____________________________________________________________________

78

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‟e-

commerce 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

CAPITOLO 4- CMS Zen Cart e CMS e-Commerce

____________________________________________________________________

79

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;

CAPITOLO 4- CMS Zen Cart e CMS e-Commerce

____________________________________________________________________

80

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.

CAPITOLO 4- CMS Zen Cart e CMS e-Commerce

____________________________________________________________________

81

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

CAPITOLO 4- CMS Zen Cart e CMS e-Commerce

____________________________________________________________________

82

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.

CAPITOLO 4- CMS Zen Cart e CMS e-Commerce

____________________________________________________________________

83

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.

CAPITOLO 4- CMS Zen Cart e CMS e-Commerce

____________________________________________________________________

84

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 e-

commerce, 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;

CAPITOLO 4- CMS Zen Cart e CMS e-Commerce

____________________________________________________________________

85

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-zen-

cart-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

CAPITOLO 4- CMS Zen Cart e CMS e-Commerce

____________________________________________________________________

86

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,

CAPITOLO 4- CMS Zen Cart e CMS e-Commerce

____________________________________________________________________

87

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.

CAPITOLO 4- CMS Zen Cart e CMS e-Commerce

____________________________________________________________________

88

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.

CAPITOLO 4- CMS Zen Cart e CMS e-Commerce

____________________________________________________________________

89

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

CAPITOLO 4- CMS Zen Cart e CMS e-Commerce

____________________________________________________________________

90

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

CAPITOLO 4- CMS Zen Cart e CMS e-Commerce

____________________________________________________________________

91

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/

CAPITOLO 4- CMS Zen Cart e CMS e-Commerce

____________________________________________________________________

92

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

CAPITOLO 4- CMS Zen Cart e CMS e-Commerce

____________________________________________________________________

93

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

CAPITOLO 4- CMS Zen Cart e CMS e-Commerce

____________________________________________________________________

94

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.

CAPITOLO 4- CMS Zen Cart e CMS e-Commerce

____________________________________________________________________

95

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.

CAPITOLO 4- CMS Zen Cart e CMS e-Commerce

____________________________________________________________________

96

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

CAPITOLO 4- CMS Zen Cart e CMS e-Commerce

____________________________________________________________________

97

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)

CAPITOLO 4- CMS Zen Cart e CMS e-Commerce

____________________________________________________________________

98

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.

CAPITOLO 4- CMS Zen Cart e CMS e-Commerce

____________________________________________________________________

99

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.

CAPITOLO 4- CMS Zen Cart e CMS e-Commerce

____________________________________________________________________

100

Le fasi da eseguire per una corretta istallazione sono le seguenti:

1. Aprire il browser e 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

CAPITOLO 4- CMS Zen Cart e CMS e-Commerce

____________________________________________________________________

101

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.

CAPITOLO 4- CMS Zen Cart e CMS e-Commerce

____________________________________________________________________

102

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

CAPITOLO 4- CMS Zen Cart e CMS e-Commerce

____________________________________________________________________

103

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

CAPITOLO 4- CMS Zen Cart e CMS e-Commerce

____________________________________________________________________

104

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.

CAPITOLO 4- CMS Zen Cart e CMS e-Commerce

____________________________________________________________________

105

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.

CAPITOLO 5- CONCLUSIONI-

____________________________________________________________________

106

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

CAPITOLO 5- CONCLUSIONI-

____________________________________________________________________

107

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

CAPITOLO 5- CONCLUSIONI-

____________________________________________________________________

108

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

CAPITOLO 5- CONCLUSIONI-

____________________________________________________________________

109

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 plug-

in 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

CAPITOLO 5- CONCLUSIONI-

____________________________________________________________________

110

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.

CAPITOLO 5- CONCLUSIONI-

____________________________________________________________________

111

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.

RINGRAZIAMENTI

____________________________________________________________________

112

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

RINGRAZIAMENTI

____________________________________________________________________

113

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

BIBLIOGRAFIA

____________________________________________________________________

114

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