Appunti su ASP (Active Server Pages)



Documenti analoghi
Lezione III: Oggetti ASP e interazione tramite form HTML

Laboratorio Progettazione Web PHP e FORMs HTML. Andrea Marchetti IIT-CNR andrea.marchetti@iit.cnr.ita 2013/2014

Lezione 6: Form 27/04/2012

04/05/2011. Lezione 6: Form

HTML HTML. HyperText Markup Language. Struttura di un documento. Gli elementi essenziali di un documento HTML sono i seguenti TAG: <HTML>...

Il linguaggio HTML - Parte 3

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

19. LA PROGRAMMAZIONE LATO SERVER

ESEMPI DI FORM (da

Strumenti a disposizione

Dott.ssa Adriana Pietramala

DURANTE LA NAVIGAZIONE NEI SITI WEB I VISITATORI NON SOLO POSSONO CONSULTARE INFORMAZIONI STATICHE

Interazione con l utente : i moduli.

Capitolo 4 Pianificazione e Sviluppo di Web Part

Corso di PHP. Prerequisiti. 6.1 PHP e il web 1. Conoscenza HTML Tecnica della programmazione Principi di programmazione web

I FORM. L'attributo action contiene l'url del file php a cui devono essere inviati i file per essere elaborati.

Lezione II: Web server e ambiente di lavoro

Metodologie Informatiche Applicate al Turismo

Esempio di esecuzione di una pagina JSP: Il client chiede la pagina: sdfonline.unimc.it/info/modulo.jsp;

I Tag dell html. Parte quarta

DATABASE IN RETE E PROGRAMMAZIONE LATO SERVER

Lezione nr. 5. Per creare un modulo è necessario avere delle conoscenze di base del linguaggio HTML. Niente di difficile ovviamente!

Cookie. Krishna Tateneni Jost Schenck Traduzione: Luciano Montanaro

Web Programming. Lezione 4: Cookie e Sessioni. Giulio Rossetti 14/04/2011. Guru@Work

Siti interattivi e dinamici. in poche pagine

Obiettivi d esame PHP Developer Fundamentals on MySQL Environment

Esercizi di JavaScript

Applicazione ASP di esempio

Form Editor. Dove NomeProfilo è personalizzabile.

Funzioni in C. Violetta Lonati

Dropbox di classe. É un servizio internet fornito gratuitamente (funzioni base).

Mac Application Manager 1.3 (SOLO PER TIGER)

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

VBScript. VBScript. Visual Basic Scripting Edition. Linguaggio di script per browser e server Microsoft Deriva da Visual Basic, ma è interpretato

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

Creare un sito Multilingua con Joomla 1.6

SOSEBI PAPERMAP2 MODULO WEB MANUALE DELL UTENTE

Soluzione dell esercizio del 2 Febbraio 2004

4.1 FAX Sollecito consegne via (Nuova funzione)

Gestione Risorse Umane Web

Scaletta. Estensioni UML per il Web. Applicazioni web - 2. Applicazioni web. WAE: Web Application Extension for UML. «Client page»

ACCESSO AL SISTEMA HELIOS...

Forms. Commercio elettronico Registrazione di nuovi membri (organizzazioni non-profit) Ricerca di mercato (collezione di dati relativi a utenti)

PHP. A. Lorenzi, R. Giupponi, D. Iovino LINGUAGGI WEB. LATO SERVER E MOBILE COMPUTING Atlas. Copyright Istituto Italiano Edizioni Atlas

Scrivere uno script php che, dato un array associativo PERSONE le cui chiavi sono i

Esercizio data base "Biblioteca"

Linguaggio HTML. Reti. Il Linguaggio HTML. Il Linguaggio HTML

Cosa è un foglio elettronico

Gruppo di lavoro per la tutela delle persone con riguardo al trattamento dei dati personali. Raccomandazione 1/99

Corso di PHP. Prerequisiti. 1 - Introduzione

POSTECERT POST CERTIFICATA GUIDA ALL USO DELLA WEBMAIL

Cookie e Webstorage. Vediamo ora i metodi dell oggetto localstorage. Per memorizzare un valore si utilizza il metodo setitem:

Impostare il browser per navigare in sicurezza Opzioni di protezione

Servizio on-line di Analisi e Refertazione Elettrocardiografica

ATOLLO BACKUP GUIDA INSTALLAZIONE E CONFIGURAZIONE

FtpZone Guida all uso Versione 2.1

Strutturazione logica dei dati: i file

Servizio Telematico Paghe

Progettazione Web Applicazioni client-server

MANUALE PER L UTILIZZO DELLA FUNZIONE EVENTI Rel.1.2 del 29 gennaio 2004

Bibliografia: Utenti e sessioni

LA GESTIONE DELLE VISITE CLIENTI VIA WEB

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

Manuale per la configurazione di AziendaSoft in rete

ENTRATEL: Servizio telematico Agenzia delle Entrate

P a g i n a 1 MANUALE OPERATIVO CIA COMINUCA

Database. Si ringrazia Marco Bertini per le slides

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

GAS FLUORURATI, OBBLIGO DI DICHIARAZIONE ENTRO IL 31 MAGGIO

Manuale d uso Lexun Area Riservata proprietà di logos engineering - Sistema Qualità certificato ISO 9001 Det Norske Veritas Italia

Capitolo 3. L applicazione Java Diagrammi ER. 3.1 La finestra iniziale, il menu e la barra pulsanti

ARCHIVIA PLUS - ARCHIFILE

Titolare del trattamento dei dati innanzi descritto è tsnpalombara.it

Manuale Utente. Sistema Informativo Ufficio Centrale Stupefacenti

Excel. A cura di Luigi Labonia. luigi.lab@libero.it

GUIDA UTENTE BILLIARDS COUNTER (Vers )

COSTER. Import/Export su SWC701. SwcImportExport

Matematica in laboratorio

SPECIFICHE E LIMITI DI EXCEL

Regione Piemonte Portale Rilevazioni Crediti EELL Manuale Utente

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

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

Esempio Cookie Policy

Come funziona il WWW. Architettura client-server. Web: client-server. Il protocollo

Access. P a r t e p r i m a

Interfaccia di base di GroupWise WebAccess

GESGOLF SMS ONLINE. Manuale per l utente

Dexma Newsletter System

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

Direzione Centrale per le Politiche dell Immigrazione e dell Asilo

1. Le macro in Access 2000/2003

Corso di Access. Prerequisiti. Modulo L2A (Access) 1.1 Concetti di base. Utilizzo elementare del computer Concetti fondamentali di basi di dati

BARCODE. Gestione Codici a Barre. Release 4.90 Manuale Operativo

7.4 Estrazione di materiale dal web

Sistema di gestione Certificato MANUALE PER L'UTENTE

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

Regione Toscana. ARPA Fonte Dati. Manuale Amministratore. L. Folchi (TAI) Redatto da

Integrazione InfiniteCRM - MailUp

Tipi primitivi. Ad esempio, il codice seguente dichiara una variabile di tipo intero, le assegna il valore 5 e stampa a schermo il suo contenuto:

Settaggio impostazioni tema. Cliccando nuovamente su aspetto e poi su personalizza si avrà modo di configurare la struttura dinamica della template.

Transcript:

Client Client Appunti su ASP (Active Server Pages) Che cosa è ASP Un server web è un computer che contiene tutte le pagine web di un determinato sito web. In tale computer è installato un software che consente di inviare queste pagine web a tutti i Client (browser) che le richiedono. Il server, in questo caso, si limita a Il client richiede una pagina web al Server Il server invia la pagina richiesta al Client Il client richiede una pagina ASP al Server Server Il server invia la pagina HTML elaborata al Client Server Il Server alloca in una propria area di lavoro la pagina ASP, e la elabora, sostituendo lo script ASP con testo HTML Gen. 2007 pag. 1/11 ricercare la pagina statica richiesta e a spedirla. Perchè le pagine web diventino dinamiche, vi si possono inserire, degli script. Uno script è un codice di programma inserito in un file HTML che viene interpretato ed eseguito. Si possono avere script lato client, che vengono interpretati ed eseguiti dal browser, e script lato server. In questo caso il server, sulla base delle istruzioni di scripting, confeziona una pagina HTML e la invia al client. ASP è una tecnologia di scripting di solito lato server, che fa riferimento al linguaggio Visual Basic Script. VBScript è un dialetto del Microsoft Visual Basic, che conserva tutti i suoi costrutti e la maggior parte delle sue funzioni. Non si fa differenza tra maiuscole e minuscole. Le variabili non debbono essere tipizzate, in quanto VBScript le considera tutte di tipo variant, decidendo il tipo in base al contesto. Gli script di una pagina ASP sono compresi tra <% e. La prima riga di una pagina ASP deve essere la dichiarazione <%@ Language = VBSCRIPT. È buona regola comunque dichiarare le variabili prima di usarle, utilizzando la formula <% Option Explicit. Ecco un esempio di pagina ASP (supponiamo allocata nel server con il nome MiaPrimaPagina.asp. <%@ Language=VBSCRIPT <%Option Explicit <HEAD><TITLE>La mia prima prova di programma ASP </TITLE></HEAD> L'orologio del server segna le ore <% Response.Write Time() <br> <%If Hour(Time())<12 Then Response.Write( Buongiorno! ) Else Response.Write( Buonasera! ) End If

La funzione Time() restituisce l ora corrente nel formato standard del server; la funzione Hour() estrae esattamente l ora. L espressione Response.Write(stringa) (che sarà analizzata meglio in seguito scrive stringa nella pagina HTML. Il senso della pagina ASP è il seguente: il server consulta il suo clock, e inserisce il suo valore nella pagina HTML. Ne estrae l ora e la confronta con il valore 12; in conseguenza del confronto, inserisce la stringa Buongiorno! oppure Buonasera!. Ed ecco la pagina inviata al browser che l ha richiesta alle ore 11.11.57: <HEAD><TITLE>La mia prima prova di programma ASP </TITLE></HEAD> L'orologio del server segna le ore 11.11.57 <br> Buongiorno! Se la richiesta fosse stata effettuata dopo le 12, la pagina HTML avrebbe salutato con Buonasera!. Ciò spiega perché le pagine ASP sono dinamiche. Gli oggetti di ASP ASP è un ambiente orientato agli oggetti (OOP, Object Oriented Programming). Fornisce una libreria di oggetti interni allo sviluppatore, e gli consente di costruire proprie classi e di istanziare oggetti. Gli oggetti interni della versione ASP 3.0 sono elencati di seguito. Oggetto Response L oggetto Response viene utilizzato per inviare dati al client. Uno dei metodi più usati di Response è Response.Write stringa, che abbiamo visto appena sopra. Esso è spesso abbreviato con =, per cui <% Response.Write ciao è equivalente a <% = ciao Oggetto Request L oggetto Request viene utilizzato per recuperare dati dal client Oggetto Application Un applicazione è l insieme delle pagine.asp allocate in una cartella e in tutte le sue sottocartelle. L oggetto Application viene utilizzato per condividere informazioni tra i Client che esplorano lo stesso gruppo di pagine appartenenti all applicazione. Per ogni applicazione allocata nel Server e richiamata da almeno un Client, viene creata un unica istanza dell oggetto Application, che viene condivisa da tutti gli altri eventuali Client che accedono all applicazione. Oggetto Session L oggetto Session si riferisce ad un singolo Client che accede ad una applicazione. All atto dell accesso all applicazione da parte di un Client, viene creata un istanza dell oggetto Session. I dati di ogni eventuale variabile di sessione vivono solo per la durata della Session. Oggetto Server L oggetto Server fornisce alcune proprietà e metodi del Server. Il metodo di Server più utilizzato è CreateObject, utilizzato per creare un istanza di un componente del server. I componenti sono pacchetti di oggetti che possono essere usati all interno delle pagine ASP. Gen. 2007 pag. 2/11

Oggetto ObjectContext L oggetto ObjectContext serve per collegare le pagine ASP e Microsoft Transaction Server. MTS è utilizzato per rendere più scalabili i siti web e per rendere più efficienti le prestazioni di altri componenti. Oggetto ASPError L oggetto ASPError consente di ottenere informazioni sugli errori che occorrono negli script delle pagine ASP. Definizione di Collection L esigenza di elencare parametri con associati i rispettivi valori è risolta con le Collection. Intendiamo per Collection un insieme di coppie del tipo Chiave=valore, separate dal carattere &. Esempio: Cognome=Rossi&Nome=Mario&Eta=24 è composta da tre coppie; la prima coppia è data dalla chiave Cognome e dal valore associato Rossi, la seconda dalla chiave Nome e dal valore associato Mario, ecc. La comunicazione Client-Server Si affrontano i problemi del passaggio dei dati tra pagine web. Inizialmente si mostra come una pagina web possa trasmettere dei dati direttamente alla pagina ASP chiamata con l uso della stringa di trasmissione. Successivamente si presenta il passaggio dei dati che una pagina web raccoglie tramite un form, alla pagina ASP richiamata, che li recupera. La trasmissione dei dati tra pagine ha grossi limiti se più pagine debbono disporre degli stessi dati. Per rendere i dati disponibili a più pagine è possibile appoggiarli sul Client (Browser) grazie ai cookies. Oppure si possono appoggiare sul Server, tramite gli oggetto Session e Application. 1. Uso della stringa di interrogazione Come è noto, è possibile da una pagina HTML chiamare un altra pagina con l uso dei tag <A HREF = pagina_chiamata> stringa cliccabile </A>. La pagina chiamata può essere una pagina ASP, e i dati possono essere inviati tramite una collection; come separatore tra la pagina chiamata e la collection si inserisce il carattere? Esempio: Pagina chiamante Chiamata di una pagina con dati inviati tramite stringa <A HREF=RispostaDatiPerStringa.asp?nome=Gigi&eta=40>Premi qui</a> Pagina ASP chiamata (RispostaDatiPerStringa.asp) <% @Language=VBScript <% Option Explicit <% Dim strnome,ieta strnome=request( Nome ) ieta=request( Eta ) Il nome trasmesso e' <%=strnome Gen. 2007 pag. 3/11

L'eta' trasmessa e' <%=ieta 2. Uso del FORM come strumento di invio dati al server Tag FORM Per predisporre un FORM si usano i tag <FORM> </FORM>. I parametri sono: NAME METHOD ACTION identifica il nome del form può assumere i valori: GET trasmissione dei dati attraverso la Collection QueryString (stringa di interrogazione v. oltre) POST trasmissione dei dati attraverso la Collection Form form_processing_script, cioè lo script o l eseguibile incaricato di processare i dati inviati Esempio 1: <FORM NAME = MioForm METHOD = GET ACTION = http://un-server/unoscript.asp > </FORM> Internamente ai tag <FORM> </FORM> si usano i tag <INPUT>, <TEXTAREA> e <SELECT> Tag INPUT Ha diversi parametri a seconda del tipo. Comune a tutti è il parametro NAME che identifica il nome del tag. Gli altri parametri sono: TYPE che può assumere i valori TEXT, HIDDEN, PASSWORD, CHECKBOX, RADIO, SUBMIT, RESET, BUTTON, IMAGE (v. oltre) VALUE Indica il valore di default assunto dall oggetto oppure l etichetta SIZE Definisce la grandezza, misurata in caratteri, del campo da inserire MAXLENGHT Definisce il numero massimo di caratteri che possono essere inseriti in un campo. CHECKED Indica l eventuale selezione di default ALIGN Specifica l allineamento SRC Specifica una URL. Nella seguente tabella si riportano i tag in relazione al tipo. O = Obbligatorio, F = Facoltativo, E = Etichetta TYPE TEXT HIDDEN PASSWORD CHECKBOX NAME O O O O O F F F O VALUE F O O O E E E O SIZE F F F MAXLENGTH F F F CHECKED F F ALIGN F SRC F Esempio 2: <INPUT TYPE= TEXT NAME= NOME VALUE= Inserisci qui il tuo nome SIZE= 35 MAXLENGTH = 50 > RADIO SUBMIT RESET BUTTON IMAGE Gen. 2007 pag. 4/11

Tag TEXTAREA I parametri sono: NAME Definisce il nome da utilizzare nella coppia nome/valore COLS Definisce la larghezza dell area di testo misurata in caratteri ROWS Definisce l altezza dell area di testo misurata in numero delle righe Esempio 3: <TEXTAREA NAME= MiaArea COLS= 20 ROWS= 10 > </TEXTAREA> Tag SELECT I parametri sono: NAME Definisce il nome da utilizzare nella coppia nome_della_selezione/valore_dell_opzione MULTIPLE La presenza di tale attributo permette la selezione di più valori SIZE Numero di righe visibili senza scorrere la lista delle opzioni; se la lista contiene più opzioni, viene generata nel lato sinistro del pannello la barra di scorrimento verticale Tra i tag <SELECT></SELECT> sono inserite due o più coppie di tag <OPTION></OPTION> Tag OPTION I parametri sono: NAME Definisce il nome da utilizzare nella coppia nome_dell_opzione/valore_dell_opzione nel caso in cui nel tag SELECT non è stato definito il parametro NAME VALUE Obbligatorio, diverso per ogni opzione, definisce il valore da utilizzare nella coppia nome_della_selezione/valore_dell_opzione SELECTED Opzione di default DISABLED Dà un opzione non disponibile, colorata in grigio. Esempio 4: <SELECT NAME= Attitudine > <OPTION VALUE= Poco >Pessimistica <OPTION VALUE= Medio SELECTED>Realistica <OPTION VALUE= Molto >Ottimistica </SELECT> La collection inviata, per default è: Attitudine = Medio Esempio 5: <SELECT> <OPTION NAME= Lingua VALUE= uk >Inglese <OPTION NAME= Lingua VALUE= fr SELECTED>Francese <OPTION NAME= Lingua VALUE= d >Tedesco </SELECT> La collection inviata, se si sceglie Tedesco, è Lingua = d. Gli esempi 4 e 5 differiscono per il fatto che nel 4 è dato un nome al tag SELECT, mentre nel 5 è dato lo stesso nome a tutti i tag componenti la SELECT Gen. 2007 pag. 5/11

3. Passaggio dei dati tra pagine web tramite l oggetto Request con i metodi QueryString e Form Si assume come pagina di partenza una pagina consistente un semplice form composto di due INPUT di testo, dapprima con il metodo GET, e si analizza una pagina ASP che acquisisce i dati; successivamente i dati saranno inviati con il metodo POST, e si analizza una nuova pagina ASP che acquisisce i dati. Infine si analizza come processare i dati inviati con i vari tipi di INPUT e SELECT. Lo schema è: 1. Il client invia al server la richiesta della pagina INIZIO_XXX.HTM che contiene un Form 2. Il server invia la pagina INIZIO_XXX.HTM al client. 3. Il client compila il Form e lo invia al server con l azione ELABORA_XXX.ASP 4. Il server attiva la pagina ELABORA_XXX.ASP che opera sui dati inviati e restituisce al client una pagina con i dati elaborati Uso del metodo GET Pagina chiamante INIZIO_GET.HTM <FORM METHOD=GET ACTION= ELABORA_GET.ASP > Nome: <INPUT TYPE=TEXT NAME= Nome > Età: <INPUT TYPE=TEXT NAME= Eta > <INPUT TYPE=SUBMIT VALUE= Invia > </FORM> Supponiamo che l utente inserisca la stringa Carlo nel campo Nome e il valore 24 nel campo Eta. Quando preme il pulsante Invia, al server giunge una richiesta contenuta nella stringa di interrogazione (QueryString) in cui figura il nome dello script da attivare e la collection associata ELABORA_GET.ASP?Nome=Carlo&Eta=24 La pagina ELABORA_GET.ASP è così fatta: <%@ Language=VBScript <% Option Explicit <% Dim strnome,streta StrNome=Request.QueryString( Nome ) StrEta=Request.QueryString( Eta ) Nome = <% = strnome Eta = <% = streta Uso del metodo POST Pagina chiamante INIZIO_POST.HTM Gen. 2007 pag. 6/11

<FORM METHOD=GET ACTION= ELABORA_POST.ASP > Nome: <INPUT TYPE=TEXT NAME= Nome > Età: <INPUT TYPE=TEXT NAME= Eta > <INPUT TYPE=SUBMIT VALUE= Invia > </FORM> Supponiamo di nuovo che l utente inserisca la stringa Carlo nel campo Nome e il valore 24 nel campo Eta. Quando preme il pulsante Invia, al server giunge una richiesta di attivare lo script ELABORA_POST.ASP. La collection contenente i dati è sull oggetto Form. La pagina ELABORA_POST.ASP è così fatta: <%@ Language=VBScript <% Option Explicit <% Dim strnome,streta StrNome=Request.Form( Nome ) StrEta=Request.Form( Eta ) Nome = <% = strnome Età = <% = streta La conclusione è che si verifica la seguente corrispondenza: Metodo usato dal Form che invia dati al server (parametro METHOD) GET POST Modo con cui i dati vengono acquisiti dalla pagina chiamata (parametro ACTION) Str = Request.Querystring(Nome_Campo) Str = Request.Form(Nome_Campo) Se nella pagina chiamante il form usa il metodo GET per inviare i dati e la pagina chiamata usa Request.Form, e, viceversa, se il form usa il metodo POST e la pagina chiamata usa Request.Querystring, vengono trasmesse stringhe di lunghezza 0. Usando semplicemente l oggetto Request senza attributi, sarà a suo carico indagare quale metodo è stato usato ed applicarlo. Pertanto, a prescindere dal metodo GET o POST che sia, l espressione Str = Request(Nome_Campo) risolverà automaticamente il dubbio di quale metodo sia stato usato Acquisizione dei dati da INPUT TYPE=RADIO e SELECT Il problema di entrambe queste strutture è quello di ottenere un dato selezionato tra molti (nell ipotesi che nella SELECT non sia presente l attributo MULTIPLE). Come abbiamo appena visto, in relazione al metodo GET o POST, cambierà il modo con cui la pagina azionata rileverà i dati (rispettivamente Request.Querystring o Request.Form). Quindi negli esempi trattiamo solo il metodo POST Pagina chiamante INIZIORADIO_POST.HTM Gen. 2007 pag. 7/11

<FORM METHOD=GET ACTION= ELABORARADIO_POST.ASP > Maschio: <INPUT TYPE=RADIO NAME= Opzione1 VALUE= M > Femmina: <INPUT TYPE=RADIO NAME= Opzione1 VALUE= F > <INPUT TYPE=SUBMIT VALUE= Invia > </FORM> N.B. : se nel form fosse necessario avere un altra batteria di radio-button, tutti i membri della nuova batteria avrebbero dovuto avere un altro nome, (p. es. Opzione2). Quando l utente, per esempio femmina, seleziona la seconda opzione e preme il pulsante Invia, al server giunge una richiesta di attivare lo script ELABORA_POST.ASP. La collection contenente i dati è sull oggetto Form. La pagina ELABORARADIO_POST.ASP è così fatta: <%@ Language=VBScript <% Option Explicit <% Dim strsesso strsesso=request.form( Opzione1 ) Sesso = <% = strsesso Viene così visualizzato: Sesso = F Se la pagina è del tipo di cui all Esempio 5 e viene selezionata la voce Tedesco, cui corrisponde il valore d, la pagina attivata dovrà contenere qualcosa del genere: <% strlingua = Request.Form( Lingua ) Dove strlingua varrà d. Acquisizione dei dati da INPUT TYPE=CHECKBOX Per questo costrutto, così come per un costrutto SELECT con l attributo MULTIPLE, si pone il problema di rilevare le scelte effettuate dall utente, che possono riguardare zero, una o molte opzioni. Supponiamo che la pagina richiesta abbia il seguente frammento: <INPUT TYPE= CHECKBOX NAME= LingueNote VALUE= uk > Inglese <INPUT TYPE= CHECKBOX NAME= LingueNote VALUE= fr > Francese <INPUT TYPE= CHECKBOX NAME= LingueNote VALUE= d > Tedesco Gen. 2007 pag. 8/11

Se viene marcata una sola risposta, per esempio Francese, la stringa restituita varrà fr ; se vengono marcate più risposte, la stringa restituita è composta di tutti i valori separati da una virgola; conoscendo per esempio tutte e tre le lingue la stringa restituita sarà uk,fr,d. Per poter disporre separatamente di tutte le risposte si può usare la seguente sequenza: 1 :<% Language=VBScript 2 :<% Dim strcheckbox 3 : strcheckbox=request.form( LingueNote ) 4 : Dim strchckboxarray 5 : strchckboxarray = split(strcheckbox,, ) 6 : dove l istruzione 5 estrae dalla stringa strcheckbox tutte le sottostringhe separate dal carattere,, inserendole nelle successive posizioni del vettore strchckboxarray. Per poter accedere alle diverse sottostringhe si può usare la sequenza: Dim i For i = LBound(strChckBoxArray) to UBound(strChckBoxArray) Response.Write strchckboxarray(i) & Next 4. Passaggio tramite appoggio sul Client con i Cookies Finora i dati sono stati comunicati da pagina a pagina: una pagina consegna i propri dati alla pagina chiamata, che li recupera. Se la pagina A comunica dati alla pagina B, e la pagina B chiama la pagina C, che ha ancora bisogno degli stessi dati, la pagina B deve nuovamente comunicarli alla pagina C, e così via, rendendo la comunicazione molto pesante. È necessario evidenziare che il rapporto Client-Server nel web è state-less, (senza persistenza dello stato. Lo stato di un sistema è l insieme dei valori assunti dalle variabili). Il server tenta di soddisfare la richiesta di qualunque client la presenti, senza tener traccia dell identità del client, per cui le informazioni scambiate vengono perse appena dopo lo scambio. ASP fornisce alcune tecniche per rendere persistente lo stato, che vengono presentate di seguito. Le informazioni che debbono essere conservate per tutte le pagine possono essere appoggiate sul client (cookie, trattato di seguito) oppure sul server (oggetti Session o Application, trattati nei paragrafi successivi). Un cookie (trad. biscottino) è un piccolo file che viene memorizzato sul disco del client (a condizione che il suo browser accetti i cookie opzione presente come livello di privacy). Lo sviluppatore deve specificare il tempo di persistenza del cookie, che, una volta scaduto, viene rimosso dal client. Ogni cookie deve avere un nome; può avere zero, una o più chiavi, scelta consigliabile per raggruppare più informazioni. Per esempio si può considerare un cookie di nome Utente, che ha come chiavi Nome e UltimaVisita. Il seguente frammento di pagina CreaCookie.ASP crea il cookie dell esempio sopra descritto. <%@ Language=VBScript <%Option Explicit <% Response.Cookies( Utente )( Nome )= Rossi Response.Cookies( Utente )( UltimaVisita )=Now Per acquisire le informazioni che il codice precedente ha memorizzato sul client, si usa il seguente frammento di codice: <%@ Language=VBScript Gen. 2007 pag. 9/11

<%Option Explicit <% Dim strnome, strdata strnome = Request.Cookies( Utente )( Nome ) strdata = Request.Cookies( Utente )( UltimaVisita ) Nome = <% = strnome Ultima data = <% = strdata La proprietà Expires specifica la durata in vita del cookie. Per default il cookie scade quando l utente chiude il proprio browser. Quando un cookie è creato, si può stabilire una durata fino a una certa data, o di un periodo di una settimana, un anno, ecc. Esempi sono: Response.Cookies( Utente ).Expires = #31 dicembre 2010# Scade al 31 dicembre 2010 Response.Cookies( Utente ).Expires = Date() + 7 Scade dopo una settimana. 5. Passaggio tramite appoggio sul Server con l oggetto Session Per ciascun utente che si connette, viene allocata sul web server un area che conterrà un istanza dell oggetto Session. Se l utente non interagisce per un certo periodo con il server, l area allocata viene rilasciata. Il periodo di default è di 10 minuti, ma questo periodo può essere modificato dallo sviluppatore. Nell oggetto Session possono essere memorizzati dati (detti variabili di sessione) di qualunque tipo (numeri, stringhe, date, array, oggetti). È possibile registrare dati con la seguente sintassi: Session(Nome_Variabile_Sessione) = valore Esempi sono: <% Session( DataDiOggi ) = Date() Session( Nome ) = Rossi Un frammento di una pagina ASP che voglia recuperare tali dati ha la seguente forma: <% Dim stroggi, strmionome stroggi = Session( DataDiOggi ) = Date() strmionome = Session( Nome ) <% Response.Write Ciao & strmionome & <br> Gen. 2007 pag. 10/11

Response.Write Oggi e il & stroggi 6. Passaggio tramite appoggio sul Server con l oggetto Application L oggetto Application è condiviso tra tutti gli utenti della stessa applicazione. Se è necessario disporre di un informazione che interessa tutti gli utenti della stessa applicazione, si può usare, similmente all oggetto Session, delle variabili di applicazione, con la seguente sintassi, rispettivamente per assegnare un valore e per recuperarlo: Application(Nome_Variabile_Applicazione) = valore Variabile = Application(Nome_Variabile_Applicazione) Confronto tra i modi di trasmettere dati tra pagine web Metodo Vantaggi Svantaggi Stringa di interrogazione Cookie Variabili di sessione Variabili di applicazione Se il client non ha abilitato i cookie. Pochi dati tra due pagine. Scarso impegno di memoria nel server. Se serve mantenere lo stato per periodi più lunghi di una sessione. Nessun sovraccarico sul server. Si possono memorizzare anche array e oggetti. I dati vengono conservati solo per la durata della sessione. Dati che cambiano spesso per tutti gli utenti della stessa applicazione. Difficoltà di manutenzione di tutte le pagine del sito se i dati e le pagine sono numerosi Non utilizzabili se il client li ha disabilitati. Si possono memorizzare solo dati semplici come numeri, stringhe, date, ma non si possono memorizzare array e oggetti. Sovraccaricano il server se i dati sono numerosi e se si collegano molti client. I dati vengono conservati solo per la durata della sessione. Solo dati globali (non personalizzati per client) Gen. 2007 pag. 11/11