indexsicurezza  I ping e altri comandi I manuali I install server I download I curriculum I ftp
 crittografia I demo flash I siti realizzati I tutto audio wav-mp3 I mail

 

asp


 

Guida Teorica di ASP a cura di Lorenzo Pascucci da www.html.it

  1. Introduzione
    Web statico ed interattivo, client-side scripting, a cosa serve e come si utilizza ASP.
  2. Riconoscere ASP
    Riconoscere il codice ASP
  3. Portabilità e integrazione
    Le varie caratteristiche e proprietà di ASP
  4. Sintassi
    Come scrivere il codice e i vari modi di scriverlo...
  5. Response.Write
    La sua funzione non è solo quella di scrivere del testo
  6. Memorizzare i dati
    Cookies, session, database, application... ci permettono di memorizzare dati... vediamo come
  7. Le strutture di Controllo
    L'applicazione prende decisioni in base a certi eventi...
  8. Gli oggetti
    Analisi dettagliata degli oggetti di ASP
  9. I cookies
    Salvare per un tempo determinato o non dei dati sul computer client
  10. Leggere i file
    Aprire e leggere file, ecco come...
  11. Scrivere i file
    Scrivere file, magari per memorizzare dati
  12. Includere i file
    E' possibile caricare all'interno di pagine asp anche dei file esterni, un metodo più efficacie dei frame.


    DATABASE
  13. Introduzione ai database
    I database più utilizzati con ASP e le varie caratteristiche di Microsoft Access

Web statico e Web interattivo 
In principio il Web era una semplice collezione di pagine HTML statiche collegate tra di loro tramite link ipertestuali. Lo scopo principale era quello di rendere disponibile su Internet documenti correlati come in un enorme ipertesto. La necessità di una maggiore interattività tra l’utente e il server Web, nata soprattutto nel momento in cui grandi aziende hanno visto nella rete delle reti, un nuovo veicolo commerciale, ha indirizzato gli sforzi nello sviluppo di strumenti per rendere il Web sempre più "dinamico". Un classico esempio è dato dai motori di ricerca: l’utente inserisce in una form una parola chiave e invia al server la richiesta restando in attesa di una risposta in tempo reale. Dalla parte del server viene a questo punto attivata una procedura in grado di interrogare un database e di generare una pagina HTML con la lista dei link richiesti. Per fare questo, l’HTML non è sufficiente e quindi è stato introdotto da subito uno standard che consentisse di far comunicare le richieste HTTP con una applicazione residente sul server, lo standard CGI (Common Gateway Interface). 
Sinteticamente, l’interazione tra browser e applicazione CGI segue i questa procedura: 

-il browser invia al server Web una richiesta facendo riferimento al nome dell’applicazione seguita da una serie di parametri; 
-il server Web riconosce che la richiesta deve essere indirizzata all’applicazione specificata e ne attiva un’istanza passandole opportunamente i parametri 
-l’applicazione effettua l’elaborazione in base ai parametri acquisiti e crea sullo standard output un flusso di dati che costituisce la pagina di risposta per il browser. 
-il server Web cattura il flusso di dati generato dall’applicazione CGI e la trasforma in una risposta HTTP 

L’applicazione CGI può essere uno script di shell del sistema operativo o di un linguaggio interpretato (ad esempio Perl) oppure una applicazione vera e propria sviluppata con un qualsiasi linguaggio di programmazione e che segue alcune regole per interfacciarsi con il Web.

Client-side scripting
L’interfaccia CGI tuttavia presenta dei limiti: ad esempio anche per semplici elaborazioni vengono richieste molte risorse al server, e in certi casi ciò può portare a ritardi sulla risposta o ad un eccessivo carico sul server stesso. Si pensi al caso di invio di dati in qualche modo errati (ad esempio, una data non valida) che attivano un’istanza di applicazione CGI con l’unico effetto di notificare l’erroneo inserimento di dati e con la conseguenza di consumare risorse del server e della banda di trasmissione.

Per superare questo genere di problemi, Netscape prima e Microsoft dopo, hanno pensato di permettere ai loro browser, di interpretare particolari linguaggi, detti linguaggi di scripting (JavaScript, Jscript e VBscript), che permettono al client di effettuare alcune semplici elaborazioni, permettendo sicuramente al server di alleggerire il carico e dando una spinta decisiva verso le attuali capacità interattive del Web.

Introduzione ad ASP
Il successo ottenuto dal client-side scripting ha portato in breve tempo allo sviluppo di linguaggi di scripting anche per il lato server, iniziando prima con ambienti specializzati, come ad esempio Borland IntraBuilder dove è Javascript il linguaggio sever-side utilizzato e poi orientandosi verso linguaggi di scripting integrati nel server Web, come ad esempio in Netscape Enterprise Server.

Cavalcando questa tendenza, la Microsoft, rilasciando la versione 3.0 di Internet Information Server (IIS), ha introdotto sul mercato degli scripting server-side, la tecnologia Active Server Pages (ASP), con l’idea di sfruttare non solo le potenzialità degli strumenti server dedicati alla connettività, ma anche attraverso la tecnologia COM (Common Object Model), sfruttare tutte le risorse che il server Microsoft ha a disposizione e coinvolgendo anche i linguaggi di scripting come Jscript e Vbscript.

A cosa serve e come funziona

Le pagine ASP sono completamente integrate con i file HTML, sono facili da creare e non necessitano di compilazione, sono orientate agli oggetti e usano componenti server ActiveX.

Possiamo affermare che ASP, è lo strumento che riesce a far convogliare tutte le risorse disponibile sul server, per realizzare un sito Web (che nell’ottica ASP coincide con una applicazione) che possa sfruttare diverse tecnologie in modo trasparente.

Le pagine di un sito non sono più una semplice collezione di documenti HTML ma un insieme di pagine contenenti codice script interpretabile dal server Web, il quale effettua le elaborazioni specificate prima di inviare la pagina HTML risultante al browser che l’ha richiesta.

E’ da sottolineare che il risultato della elaborazione del motore ASP, è una pagina HTML standard che offre di conseguenza il vantaggio, di essere indipendente dal tipo di browser utilizzato. La figura sintetizza lo schema di funzionamento di un’applicazione ASP: 

Ingrandisci! 
clicca qui per ingrandimento

-Il browser richiede una pagina ASP; 
-il Web server preleva la pagina ASP ed attiva l’interprete ASP per la pre-elaborazione della pagina, coinvolgendo eventualmente altri componenti presenti sul server 
-il risultato dell’elaborazione eventualmente altri componenti presenti sul server 
-il risultato dell’elaborazione viene inviato al browser tramite il protocollo HTTP 

ASP e client/server

Tra i vantaggi di ASP, è stato messo in risalto, la generazione di pagine Web in HTML standard, ottenendo in tal modo una completa indipendenza dell’applicazione Web dal particolare browser utilizzato. Questo aspetto comporta tuttavia un lavoro notevole per il server che deve generare pagine statiche. In un certo senso questa soluzione è in contrasto con il modello client/server secondo il quale il carico di lavoro di elaborazione viene suddiviso tra le due entità. L’introduzione stessa dei linguaggi di scripting client side aveva questo scopo. Con ASP si dovrebbe quindi dedurre un ritorno al modello centrato esclusivamente sul server. Invece ASP mette a disposizione del progettista, la possibilità di decidere quale parte del codice far eseguire dal client e quale dal server, magari decidendolo sulla base del browser utilizzato.

ASP e i suoi utilizzi

Definire i contesti di applicazione di ASP, equivale a definire i contesti in cui è opportuno utilizzare elaborazioni sul server. Tuttavia è possibile delineare alcuni tipi di applicazione per le quali ASP può essere una soluzione indicata.

L’utilizzo per cui era stata progettata la tecnologia ASP, era originariamente quello di interfacciare il browser con un database, ma basandosi sul modello COM (Component Object Model), ASP è in grado di interagire con le applicazioni che seguono questo standard e riportare i risultati di questa interazione sotto forma di pagine Web. Ad esempio la richiesta di un utente di visualizzare una tabella si traduce in una richiesta da parte di ASP verso il database di accedere alla tabella in questione, rappresentarla internamente tramite un oggetto ADO e tradurre il contenuto della tabella in una serie di tag HTML. La possibilità di interagire con database ODBC compatibili, pone ASP come uno dei mezzi più efficaci per la realizzazione di applicazioni distribuite indipendentemente dal database utilizzato.

Inoltre il principio di interazione con applicazioni COM consente alle pagine ASP, di colloquiare con sistemi di posta elettronica (ad esempio Exchange o SMTP server) oppure interagire con applicazioni Microsoft come MTS (Microsoft Transaction Manager e Message Queue Server). Infine, attraverso la tecnologia ActiveX , è possibile estendere le funzionalità di ASP, progettando ex-novo, altri oggetti.

Che cosa è ASP

Fino a qualche anno fa (pochi) i siti erano statici, aggiornarli significava perdere tantissime ore di lavoro e spesso non bastava. Oggi, grazie a Microsoft, possiamo semplificare la vita di webmaster attraverso ASP, che non è altro che un linguaggio di scripting (i 
linguaggi con cui possiamo programmare in asp sono: JavaScript, Visual Basic Script, PerlScript e Python). 

Le Active Server Pages permettono di rendere dinamici, interattivi, facile da gestire e da aggiornare i siti web. Una pagina asp, invece di chiamarsi esempio.html sarà chiamata esempio.asp, quindi basta rinominare le pagine .html in .asp. Naturalmente tali pagine non 
sono scritte completamente in asp, ma è un "misto", il tutto rende questo linguaggio ancora più potente, soprattutto velocizza la sua esecuzione.

Caricando una pagina asp dal broswer e visualizzando il suo codice sorgente, noteremo che si tratta di semplice codice html, ma qual è allora la differenza tra questi due linguaggi? Le Active Server Pages lavorano a lato server. 
Cosa significa? Quando viene richiesta tale pagina, il server interpreta il codice e lo restituirà al client (broswer) in semplice formato html. Ecco la vera potenza di asp. 
Se per esempio devo inserire l’ora corrente, mi basterà scrivere una riga di codice asp, però una volta interpretato e visualizzata la pagina, nel codice della pagina web non comparirà il codice asp, ma solo quello html.

Stanchi di tutta questa teoria? Passiamo allora ad un esempio pratico.
Una volta, i primi programmatori asp come iniziazione dovevano realizzare la famosa pagina "hello world" per realizzarla vi rimandiamo alla lezione sul nostro sito web nella sezione tutorials Asp
Per capire meglio come funziona l’interpretazione del codice asp, ecco un semplice esempio.

Visualizzare la data corrente.

CODICE

1 <%@ Language=VBScript %>
2 <html>
3 <head>
4 <title> Visualizza data di oggi </title>
5 </head>
6 <body>
7 Oggi è il giorno
8 <%= Response.Write Date() %>
9 </body>
10 </html>

Come notiamo è presente del normale codice html e del 
codice presente tra <% testo %>.
Ogni qual volta che c’è del testo tra questi due tag, ci troviamo di fronte a del codice asp, che gli ultimi editor di pagine web visualizzano spesso in rosso.

Il broswer visualizzerà semplicemente :

Oggi è il giorno 24/06/02

E il codice sorgente della pagina web, non sarà più il 
precedente, ma il seguente:

<html>
<head>
<title> Visualizza data di oggi </title>
</head>
<body>
Oggi è il giorno 01/01/1999
</body>
</html>

Come vediamo il codice asp è sparito perché interpretato dal server che lo ha restituito come semplice html.

Con il primo esempio, abbiamo già indicato alcuni dei componenti principali delle Active Server Pages. All’inizio di ogni pagina asp, è sempre bene, ma non obbligatorio, specificare il linguaggio di scripting 
utilizzato, questa deve essere la prima riga della pagina:

<%@ Language=VBScript %>

In questo caso è stato specificato che viene utilizzato codice Visual Basic Script. Nella riga 8 inoltre è presente ulteriore codice asp, che ha il compito in questo caso di visualizzare la data. Vediamo come :

Response.Write Date()

Response.Write ha il compito di visualizzare tutto ciò che lo segue, in questo caso Date() che non è altro che una variabile che contiene la data corrente e Response.Write non fa altro, appunto, che visualizzare tale data.

Portabilità di ASP

Abbiamo detto che ASP è stato introdotto da Microsoft nel 1997. E' quindi uno standard relativamente giovane e legato alla tecnologia della azienda di Redmond. Infatti, affinché il codice ASP possa essere interpretato, c'è bisogno che il Web server utilizzato, sia un server Active X come ad esempio IIS o Personal Web Server (anche se per quest’ultimo ci sono alcune limitazioni di utilizzo). Ultimamente (in particolare dalla Chili Soft con Chili!ASP) sono state realizzate anche versioni per Netscape Enterprise, Lotus Domino, Solaris. Altre aziende stanno invece producendo moduli aggiuntivi, scritti in Java, per server Unix (Linux, Novell, Sun, Macintosh, HPUX, SGI, SCO,Dec Alpha, IBM OS/2, RS/6000, AS/400, S/390, Apache, FastTrack/Enterprise servers, Sun WebServer, Java WebServer,IIS, WebSphere and Lotus Domino). In particolare Chili Software ha annunciato lo sviluppo di una nuova tecnologia, Denominata Chili!Beans, che consentirà di interfacciare applicazioni ASP e componenti JavaBean: ciò renderebbe ASP totalmente esportabile e in grado di imporsi come standard. Altro fatto che fa pensare ad ASP come una soluzione di successo, è l’indirizzo architetturale dato ad alcuni ambienti applicativi. Essi infatti, si ispirano direttamente a questa tecnologia, come nel caso dell’estensione Cold Fusion Markup Language, che definisce un linguaggio di markup proprietario destinato all’interpretazione da parte di alcuni Web server. 

Ma l’esempio più clamoroso è costituito dalla Sun che ha scelto di emulare ASP utilizzando la tecnologia Java direttamente all’interno di pagine HTML, con JSP (Java Server Pages).  

Integrazione

Il fatto che ASP, sia una tecnologia Microsoft, non preclude che questa tecnologia non possa essere utilizzata con prodotti non proprietari della stessa casa software.

ASP e COM

ASP è perfettamente integrato nell’Active Server Model di Microsoft: esso rappresenta un ponte che mette in comunicazione il Web server e i componenti COM presenti sul server. Un’applicazione ASP complessa può essere costituita da una serie di componenti messi in relazione tra di loro e con il Web server mediante un linguaggio di scripting. Questo comporta l’uso di tecniche note per la realizzazione di componenti o il riuso di componenti pre-esistenti, purché questi non facciano uso di elementi visuali, come finestre, toolbar, ecc.

L’utilizzo di componenti esterni al Web server consente di estendere le funzionalità dell’ambiente ASP e di costruire applicazioni complesse o interfacciare applicazioni esistenti con il Web. Un ruolo fondamentale per l’aggancio dei componenti esterni viene affidato all’oggetto predefinito Server, che tramite il metodo CreateObject() crea una connessione ad un’istanza di un oggetto ActiveX. La sintassi di CreateObject() è la seguente:

Server.CreateObject(progID)

dove progID è l’identificativo della classe o il tipo di oggetto da istanziare nel formato AppName.ObjectType, con AppName il nome del componente e ObjectType la classe. Una volta istanziato l’oggetto, è possibile utilizzarne tutti i metodi e le proprietà pubbliche.

Ad esempio, supponendo di avere a disposizione un componente per la gestione di magazzino (Magazzino) che fornisce un oggetto per la gestione degli articoli (Articolo), è possibile creare una sua istanza da un’applicazione ASP tramite l’esecuzione della seguente istruzione JScript:

ArtMag = Server.CreateObject("Magazzino.Articolo")

Da questo momento in poi è possibile invocare qualsiasi metodo dell’oggetto facendo uso della classica dot notation, cioè la sintassi Oggetto.Metodo.

ASP e BackOffice

L’integrazione di ASP nel modello COM si evidenzia particolarmente nell’interfacciamento con i prodotti Microsoft della famiglia BackOffice. Infatti, con la versione di ASP fornita con IIS 4.0 è disponibile un oggetto predefinito (ObjectContext) per l’interazione con MS Transaction Server, una serie di componenti per l’interazione con MS Exchange Server e SMTP Server (Collaboration Data Objects for NT Server) e un insieme di componenti per dialogare con MS Message Queue Server.

L’insieme di questi componenti consentono di realizzare applicazioni robuste ed efficienti con poco sforzo. Per fare un esempio, è possibile effettuare dei trasferimenti di articoli da un magazzino ad un altro, affidando la gestione della transazione a MS Transaction Server. Con i Collaboration Data Objects for NT Server (CDONTS), è possibile realizzare sistemi di gestione di messaggi e posta elettronica su Web veramente sofisticati, sfruttando le potenzialità di MS Exchange Server e SMTP Server e ottimizzando l’invio di informazioni asincrone tramite i componenti di MS Queue Server.

ASP e database

Un ruolo senza dubbio rilevante di ASP è quello di mediatore tra Web server e un sistema di gestione di database. Questo è infatti l’uso più comune di questa tecnologia, un uso che ne ha senz’altro favorito il successo. Grazie ad ActiveX Data Object (ADO) è possibile accedere a qualsiasi database ODBC o OLEDB compatibile, usufruendo dei vantaggi che questa tecnologia offre, tra i quali la semplicità di accesso ai dati e l’indipendenza dell’applicazione dal tipo di database. 

Tramite ADO, la gestione di un database non presenta particolari difficoltà. ASP supporta un’efficiente gestione delle connessioni ad un database sfruttando la funzione di connection pooling di ODBC 3.5. Questa funzione consente la condivisione di una connessione tra richieste provenienti da utenti diversi, evitando di creare nuove connessioni, operazione che riduce le prestazioni del database, e riducendo il numero di connessioni inattive.

Supporto dei linguaggi di scripting

Un linguaggio di scripting non è un vero e proprio linguaggio di programmazione: con un linguaggio di scripting è possibile effettuare elaborazioni e gestire le risorse messe a disposizione da un ambiente ospite, ma non è possibile realizzare applicazioni complete ed autonome. ASP consente di utilizzare un linguaggio di scripting all’interno del Web server. In realtà, è possibile utilizzare più linguaggi di scripting all’interno di un’applicazione ASP e addirittura all’interno di un file ASP.

ASP supporta in modo nativo due linguaggi di scripting, VBScript e JScript. Se non diversamente specificato, ASP interpreta il codice script che trova all’interno dei marcatori <% e %> come codice VBScript, il linguaggio predefinito. E’ possibile comunque modificare il linguaggio predefinito sia a livello di Web server, cioè per tutte le applicazioni ASP gestite da IIS, che a livello di singola applicazione, cioè per tutte le pagine che compongono un’applicazione. E’ comunque da tener presente che impostare un linguaggio predefinito può portare problemi di compatibilità con altri Web server non adeguatamente configurati: infatti, portando un’applicazione ASP da un Web server con JScript come linguaggio predefinito su un Web server con VBScript predefinito è evidente che la sua esecuzione causa problemi di interpretazione sul server di destinazione.

Tramite la direttiva @ LANGUAGE è possibile specificare il linguaggio da utilizzare all’interno di una determinata pagina ASP. Così, ad esempio, se una pagina ASP contiene come prima linea la direttiva

<% @ LANGUAGE = "JScript" %>

il motore ASP interpreterà il codice contenuto all’interno di quella pagina come codice JScript.

Inoltre, all’interno di una pagina possono essere utilizzati linguaggi di scripting diversi, potendo sfruttare al massimo le caratteristiche proprie di ciascuno di essi. Utilizzando una versione arricchita del tag <SCRIPT> è possibile specificare che un blocco di codice deve essere interpretato secondo un determinato linguaggio:

<SCRIPT LANGUAGE="VBScript" RUNAT="Server" >
Codice script
</SCRIPT>


L’attributo RUNAT specifica a che livello deve essere interpretato lo script; se non viene impostato, lo script è destinato all’interpretazione da parte del browser.

Oltre a VBScript e JScript, è possibile utilizzare un qualsiasi linguaggio di scripting il cui scripting engine sia stato installato sul Web server. Uno scripting engine è un interprete di un determinato linguaggio realizzato come oggetto COM secondo lo standard ActiveX Scripting (www.microsoft.com/management/wsh.htm). Gli scripting engine di VBScript e JScript sono installati insieme a IIS; tuttavia è possibile installare uno scripting engine anche per altri linguaggi, come REXX, Perl, Python. Un esempio di scripting engine Perl è PerlScript di Activeware. In genere l’installazione di uno scripting engine non è un’operazione complessa; occorre tuttavia effettuare alcune modifiche manuali al registro di sistema quando si installano scripting engine di linguaggi che non supportano la dot notation per l’accesso ai metodi di un oggetto.

ASP: La sintassi
Come già detto il codice ASP deve essere compreso tra i tag <% e %>. Esiste un altro modo, ma è molto più scomodo, ed è quello di utilizza il tag SCRIPT:

<SCRIPT LANGUAGE=VBScript RUNAT=Server>
Response.Write “Prova”
</SCRIPT>


Come vediamo tutto questo possiamo scrivere semplicemente :

<% Response.Write “Prova” %>

o ancora più sinteticamente:

<%=”Prova”%>

Il risparmio di tempo? Notevole!

L’uso di <% e %>

Come va scritta un’istruzione asp?
Ci sono diversi metodi, che illustriamo di seguito:

<%
Response.Write Date()
%>

<% Response.Write Date() %>

<% Response.Write Date()
%>


<%
Response.Write Date() %>


Questi sono tutti esatti…

E’ sbagliato scrivere una stessa riga di istruzioni su più righe, in questo modo:

1 <% 
2 Response.Write
3 Date()
4 %>

Tale script, ci restituirà un errore del genere:

Errore di run-time di Microsoft VBScript errore "800a01c2' 
Numero errato di argomenti o assegnazione di proprietà non valida: 'Write' 
/test/test.asp, riga 2

Tale scritta ci indica che sulla riga 2 si è verificato un errore. Infatti, come abbiamo detto, una stessa istruzioni non si può trovare su due o più righe, l’unico modo per farlo è il seguente:

1 <%
2 Response.Write _
3 Date()
4 %>

Ovvero dobbiamo utilizzare il carattere di sottolineatura (che troviamo sullo stesso tasto del trattino).

Il codice ASP inoltre si può scrivere indifferentemente sia in MAIUSCOLO che minuscolo, senza che comporti errori. In genere, ma non è obbligatorio, si scrivono in maiuscolo le iniziale degli oggetti (Response è uno dei 6 oggetti di ASP), ma anche delle variabili e altri comandi. Troviamo, invece spesso, scritto totalmente in maiuscolo gli operatori (quali AND e OR) e tutti i comandi compresi nelle stringhe di connessione al database. Naturalmente queste sono tutte formalità e non è obbligatorio rispettarle, comunque aiutano spesso ad una più veloce comprensione del codice.

Commenti
Anche in ASP, come in html, si possono scrivere dei commenti.
Se stiamo scrivendo codice in VBScript basta utilizzare un semplice apice ¢, in questo modo:

<%
’ commento
%>


mentre se scriviamo codice in JavaScript, utilizzeremo due // :
<%
// commento
%>


Ma a cosa serve il commento e come viene interpretato dal server? Il commento è molto utile in quanto permette una più veloce lettura dello script. Grazie a questi possiamo dividere grossi script in blocchi. Solitamente si usa una cosa del genere:

<%
codice

‘************** invio email

codice per invio email

‘************** inserimento dati nel database

codice per inserimento dati nel db
%>


I commenti sono spesso utili anche per i futuri programmatori che analizzano lo stesso codice. Come è facile immaginare questi non sono interpretati dal server e quindi non vengono restituiti nemmeno in codice html.

Gli Errori

In questa stessa lezione, abbiamo analizzato per la prima volta, un messaggio di errore che ci stato restituito dal server (in questo caso da PWS di cui trovate una lezione sul nostro sito

Ogni qual volta che compare un errore, spesso ci viene indicata la riga dove questo è avvenuto. Stiamo parlando del debug, ovvero scrivendo script grandi, lunghi e complessi, ma anche semplici di poche righe si possono commettere giustamente degli errori, che per fortuna ci vengono sempre notificati.
Del debug ne parleremo più avanti in quanto è un argomento molto importante che va approfondito non appena avremo realizzato uno script completo.

SUGGERIMENTO: testare i file asp sul proprio PC e non sul server
Senza fare 100mila upload e prove sul server del proprio provider, esiste un comodo metodo (anche se limitato) offerto da MS PWS (Microsoft Personal Web Server). Questo programma permette di simulare un server NT con logicamente molte limitazioni. Questo programma è gratuito e si trova nel cd-rom di Windows. Funziona con Win 95/98 Me e NT Workstation. La guida all’utilizzo la trovate cliccando qui.

 

ASP: Response.Write


Cosa è e come funziona Response.Write?
Come abbiamo già detto la sua funzione è di visualizzare del testo, anche se, vedremo più avanti, in altre occasioni, può Response può essere utilizzato ad altri scopi.

Per visualizzare del testo la sua sintassi è:

Response.Write ("testo")

Nella pagina web, comparirà, quindi la parola "testo". E’ possibile anche utilizzare codice html al suo interno, che verrà correttamente interpretato.

Response.Write ("<b>testo</b>")

Tale riga, farà apparire la parola o più parole in neretto. 
Naturalmente si possono inserire tutti i tipi di tag html.

Abbiamo, visto, che è possibile inserire una variabile 
senza utilizzare la parentesi e le virgolette, ma se dovessimo
visualizzare del testo con a fianco un risultato ottenuto da un
calcolo effettuato con asp? Ecco come è possibile!

Response.Write ("Il risultato è: " & nomevariabile & "/100")

Ciò è possibile, chiudendo le virgolette, e inserendo il nome della variabile tra due E commerciale (&). Come vedremo più avanti, la e commerciale sarà molto utilizzata in quanto permette di unire più parole, numeri e permette di realizzare le stringhe, frasi, ecc...

 

ASP: Memorizzare i Dati

Finalmente entriamo nella programmazione in asp! logicamente siamo ancora agli inizi!

Come ogni linguaggio di programmazione \ scripting, anche ASP necessita di alcuni oggetti in cui memorizzare i dati... tali oggetti si chiamano VARIABILI e ne esistono di vario genere, a secondo del loro utilizzo. Infatti esse possono contenere una parola, numeri, una stringa...

A secondo del loro tipo, con esse poi, possiamo farci delle operazione che vedremo più avanti sempre in queste lezioni.

In ASP le variabili si divino in:

- Stringa (testo)
- Data (data e ora)
- Numeri interi
- Numeri decimali (numeri con la virgola)
- Variabili booleane (valori True e False, vero e falso)
- Oggetto (per i database)
- Valuta (visualizzazione valuta)

Infine, con VisualBasic Script abbiamo anche la variabile VARIANT che è una variabile che può contenere diversi tipi di dati.

Al contrario di molti linguaggi di programmazione, VBScript non necessita di dichiarare le variabile, ma è sempre consigliato soprattutto per effettuare il debug finale. Dichiarare le variabili significa che si deve precisare i nomi delle variabili. 
NOTA: in VBScript non si deve indicare che tipo di variabili sono (integer, char, string,...). Si possono dichiarare in qualsiasi punto del codice, logicamente prima del loro utilizzo. Queste devono per forza essere dichiarate solo se all'inzio del codice abbiamo inserito 

<% Option Explicit %>

Le variabili si dichiarano con Dim, in questo modo:

Dim nomevariabile, nomevariabile2, nomevariabile3
Dim nomevariabile4
Dim nomevariabile5, nomevariabile6


Per assegnare un valore alla variabile basta seguire la 
seguente sintassi:

nomevariabile = valore

esempio:

messaggio = "Benvenuto"

oppure, una variabile può essere uguale ad un'altra 
variabile, così:

testo = messaggio

Scritto così ha forse poco senso, ma l'ultimo metodo 
indicato serve per effettuare operazioni matematiche.

Abbiamo introdotto un nuovo argomento: i calcoli 
matematici, ecco una tabella che indica tutti gli 
operatori utilizzabili. Questi operatori sono messi 
in ordine di importanza (ovvero il primo viene eseguito 
prima rispetto a quelli successivi).

() vengono prima effettuati i calcoli in parentesi
^ potenza (x^y -> x elevato y)
- negazione (- x -> x * -1)
* prodotto
/ divisione (risultato 5.321)
\ divisione tra numeri interi (risultato 5)
Mod modulo (trova il resto di una divisione, 5 Mod 2 -> 5 diviso 2 ha un resto di 1)
+ addizione
- sottrazione
& unione stringhe (unisce stringhe x & y)
= uguale (x=y)
<> diverso (x<>y -> x diverso da y)
< minore (x<y -> x minore di y)
> maggiore (x>y -> x maggiore di y)
<= minore uguale (x<=y -> x minore o uguale a y)
>= maggiore uguale (x>=y -> x maggiore o uguale a y)
Not (Not x -> x al contrario, ovvero se è Vero diventa Falso o viceversa)
And entrambi stesso valore vero o falso ( x AND y, se entrambi sono valori veri)
Or almeno uno valore vero (x OR y, se almeno uno è vero o falso)
Xor falso (x Xor y, se solo uno dei due è Vero o Falso)
Eqv entrambi valore falso o vero (x Eqv y, entrambi con valore vero)
Imp uno è falso l'altro è vero (x imp y, x è falso e y vero)

A fianco di ciascun operatore è stato illustrato il 
suo significato e la sintassi per utilizzarlo.

Per memorizzare i dati, infine, abbiamo altri due 
metodi molto simili:
- COSTANTI
- ARREY

Le costanti sono come variabili, solo il loro valore 
una volta assegnato rimane sempre quello e quindi 
non può variare. Logicamente il valore gli viene 
assegnato subito.
Esempio di sintassi:

Const Euro = 1956

Gli array, invece, sono un gruppo di variabili che 
contengono spesso informazioni dello stesso tipo e 
gruppo (es. un insieme di nomi).
Esempio di sintassi:

Dim nomearray(4)

nomearrey(0) = 1
nomearrey(1) = 2
nomearrey(2) = 3
nomearrey(3) = 4
nomearrey(4) = 5


Dove nomearray(4) significa che contiene 4+1 campi 
di memorizzazione.

VISUALIZZAZIONE DEI DATI
Come già detto nelle lezioni precedenti, per 
visualizzare i dati abbiamo due metodi:

<% Response.Write nomevariabile %>

oppure

<%=nomevariabile%> 

 

ASP: Le strutture di Controllo

Attraverso le strutture di controllo possiamo far decidere il programma asp di svolgere una azione invece di un'altra a seconda di date informazioni.

Le strutture di controllo sono:

If...
Then
If... Then... Else
Select Case
Do While... Loop
Do Until... Loop
While... Wend
For...
Next
Cicli Infiniti
Cicli Annidati

Come vedete sono molte anche se alla fine la logica delle loro operazioni è spesso simile (sono principalmente 3). E' per questo che per essere sintetici inseriremo semplicemente la struttura e rimandiamo per eventuali domande e richieste sul nostro forum


IF... THEN
E' sicuramente la struttura di controllo più utilizzata sia per la sua utilità che per la sua semplicità.
Ecco la sua struttura:

Poniamo che "variabile = dato" sia riassunto con "controllo" naturalmente in controllo possono essere utilizzati quasi tutti gli operatori logici descritti nella precedente lezione.

IF controllo THEN
istruzione
END IF


IF... THEN... ELSE
Questo, è molto simile alla precedente struttura di controllo, ma in più ha l'opzione che indica l'azione nel caso in cui l'istruzione è falsa.

IF controllo THEN
istruzione
ELSE
istruzione
END IF


SELECT CASE
Questo serve nel caso le opzioni siano più di tre o quattro.

SELECT CASE espressione
CASE val1
istruzione
CASE val2
istruzione
CASE val3
istruzione
END SELECT


CICLO
Ora seguono le strutture di controllo che seguono la logica ciclica, ovvero ripetono l'esecuzione di uno stesso codice più volte... dipende dall'input dato dall'utente o da altro...


DO WHILE... LOOP
Fa parte del ciclo DO... LOOP e questo indica che deve "girare" fino a quando l'istruzione diventa falsa.

DO WHILE controllo
istruzione
LOOP


DO UNTIL... LOOP
Al contrario, questo ciclo si blocca solo quando si incontra il valore TRUE.

DO UNTILE controllo
istruzione
LOOP


ISTRUZIONI
WHILE... WEND
E' la stessa cosa di DO WHILE... LOOP

WHILE controllo
istruzione
WEND


FOR... NEXT
Questo tipo di ciclo viene utilizzato nel caso già conosciamo il numero di volte che deve "girare"

FOR var = valoreiniziale TO valorefinale STEP valoredaincrementare
istruzione
NEXT


CICLI INFINITI
Come dice il nome tali cicli sono infiniti e quindi l'esecuzione non finisce mai... come è logico capire tale ciclo è sconsigliato... tranne in pochi e rari casi...


CICLO ANNIDATO
I cicli annidati non sono altro che cicli all'interno di altri cicli.

ASP: Gli oggetti

Cosa sono e a cosa servono
Gli OGGETTI permettono di aumentare il livello di astrazione delle pagine. Ovvero con un unico comando possiamo dare tutta una serie di istruzioni. In questo modo risparmiamo tempo nella scrittura del codice e migliora anche la leggibilità dello stesso codice.

METODI
Sono le operazioni che si possono eseguire con gli oggetti.

PROPRIETA'
Descrivono le "caratteristiche" degli oggetti.

Gli oggetti predefiniti in ASP sono 7:
- Application
- ASPerror
- ObjectContext
- Response
- Request
- Server
- Session

Vediamo sommariamente il loro utilizzo:

APPLICATION
Serve per utilizzare le stesse informazioni da più client (utenti),
ovvero aiuta a mantenere lo stato.
Può memorizzare un numero elevato di dati di qualsiasi tipo, e ciascuna variabile memorizzata prende il nome di: "variabile dell'applicazione" o "variabili globali".

Codice

Scrivere dati:

Application("nomevariabile") = valore

Leggere dati:

variabile = Application("nomevariabile")

Nel caso si voglia bloccare le modifiche dell'oggetto nel caso un utente le modifiche, si può utilizzare Lock, così:

Application.Lock
Application("nomevariabile") = valore
Application.UnLock

Per leggere le variabili dell'oggetto APPLICATION,
si può utilizzare StatObjects o Contents,
in questo modo:

Application.Contents.Count

Problemi

L'utilizzo dell'oggetto Application comporta un notevole spreco di risorse del Server Web, quindi è sempre bene non memorizzare oggetti e inserire solo le variabili necessarie. Quindi in linea generale meno 
oggetti\variabili inseriamo e meno ne risentirà il nostro server web

ASP: I cookies

I cookies è uno dei tanti mezzi utilizzati per memorizzare i dati. Abbiamo già visto l’oggetto Session (che memorizza i dati in una sessione, una per ogni utente) e l’oggetto Application (che memorizza dati per tutti quanti). 

Riprendendo l’analisi dei cookies questi sono molto utili per memorizzare quantità di dati per il corto\medio\lungo tempo in quanto le informazioni sono memorizzate in un piccolo file di testo memorizzato nel computer client (utente).
Alcuni reputano l’utilizzo di tali cookies come una violazione della privacy, e in riguardo vi rimandiamo ai nostri articoli.

Le sua applicazioni sono innumerevoli e vengono spesso utilizzati per l’identificazione automatica (Logon) degli utenti (vedi nostro forum)

Leggere un Cookie

La sintassi è la seguente:

Request.Cookies(nomecookies)(chiave)

Quindi, ecco come memorizzare un cookie in una variabile:

nome = Request.Cookies(“datiutente”)(“nome”)

Per vedere se esiste un cookie o se ha delle chiavi memorizzate, si usa la proprietà HasKeys, in questo modo:

Request.Cookies(“datiutente”).HasKeys

In questo caso restituirà il valore True (vero) in quanto contiene la chiave NOME, mentre se era vuoto avrebbe restituito il valore FALSE (falso).

Infine per vedere quanti e quali cookies sono memorizzati sul client, basta utilizzare:

Request.ServerVariables(“cookie”)

Scrivere un Cookie

La sintassi è la seguente:

Response.Cookies(nomecookies)(chiave) = valore

All’interno possiamo memorizzare stringhe, numeri, valori booleani, date e valute.

E’ sempre poi consigliato utilizzare la proprietà Expires che indica il tempo, il giorno in cui dovrà scadere e quindi essere cancellato il cookie. La data si potrà indicare in differenti modi:

“03/06/2001”
Cdate(“03/06/2001”)
#03 Maggio 2001#
DateSerial(2001, 6, 3)

questo per indicare un giorno preciso, ma se vogliamo che scada tra 30 giorni? Basterà indicare date() + 30

La sintassi quindi è:

Response.Cookies(“nomecookie”).Expires = date() + 30

Impostando invece la data ad un giorno già passato si indicherà al client che il cookies, alla chiusura del browser dovrà cancellare il cookie salvato.

Vi sono infine altre 3 proprietà da nominare:
Domain: permette di inserire un nome differente di dominio. Di default indica il dominio del nostro sito.
Path: indica da quali pagina di una determinata cartella possono essere letti i cookie.
Secure: se impostato a True il cookies sarà inviato per mezzo di un protocollo sicuro (HTTPS)

Path e Domain sono comunque sconsigliati in quanto se utilizzati in modo improprio non permettono il corretto utilizzo\lettura del cookie.

ASP: Leggere i file

Spesso ci capita di leggere dati memorizzati in file di testo e visualizzarli in una pagina asp. 

L'operazione è molto semplice.

Prima di tutto dovremo aprire il file, in questo modo:

strPath = Server.Mappath("file.txt")
Set objFileSy = Server.CreateObject("Scripting.FileSystemObject")
Set objApriFile = objFileSy.OpenTextFile(strPath, 1)



Poi utilizziamo uno o più metodi (sono in tutto 3) forniteci dall'oggetto Text Stream

Read(n) Restituisce i primi n caratteri della riga corrispondente
ReadLine Restituisce tutti i caratteri della riga corrispondente
ReadAll Restituisce tutti i caratteri di tutto il file

Quindi per visualizzare i primi 5 caratteri della prima riga, basta digitare:

Response.Write objApriFile.Read(5)

mentre per visualizzare tutta la riga:

Response.Write objApriFile.ReadLine

infine per visualizzare tutto il documento:

Response.Write objApriFile.ReadAll

Come è facile comprendere spesso non si conosce il numero 
effettivo di righe all'interno di un file... quindi utilizzare semplice ReadLine non basta e utilizzare ReadAll, invece, provoca un grande spreco di memoria... ReadLine non basta in quanto se prova a leggere una riga che non esiste provoca un errore... questo capita se prevediamo di leggere le prime 10 righe di un file, quando in realtà ce ne sono appena 9.

Quindi utilizziamo un'altra proprietà dell'oggetto Text Stream: AtEndOfStream
Come valori ha True e False (vero e falso), true quando si trova 
alla fine del file.
Quindi con un Do While Not .... possiamo leggere tutto il file, riga per riga, sicuri di non provocare errori... la sintassi completa:

Do While Not objApriFile.AdEndofStream
Response.Write objApriFile.ReadLine
Loop


Quindi la sintassi per leggere un file di testo è la seguente:

strPath = Server.Mappath("file.txt")
Set objFileSy = Server.CreateObject("Scripting.FileSystemObject")
Set objApriFile = objFileSy.OpenTextFile(strPath, 1)
Do While Not objApriFile.AdEndofStream
Response.Write objApriFile.ReadLine
Loop
objApriFile.close
Set objApriFile = Nothing
Set objFileSy = Nothing

 

ASP: Scrivere i file

Per scrivere file esistono 2 modi: scrivere file nuovi o file già esistenti, 
in quest'ultimo caso è possibile decidere se scrivere 
cancellando il contenuto già presente o aggiungerlo alla fine...

Per scrivere una riga si utilizza il metodo Write, in questo modo:

objTextStream.Write("testo da inserire")

mentre utilizzando WriteLine si scriverà una riga e si andrà a capo:

objTextStream.WriteLine("testo da inserire")

Infine per fare n ritorni a capo, basta utilizzare WriteBlankLines(n):

objTextStream.WriteBlankLines(n)

Ecco un codice completo per scrivere del testo all'interno di un file:

strPath = Server.Mappath("file.txt")
Set objFileSy = Server.CreateObject("Scripting.FileSystemObject")
Set objApriFile = objFileSy.OpenTextFile(strPath, ForWriting)
objApriFile.Write("Ciao")
objApriFile.WriteLine(" Matteo")
objApriFile.WriteBlankLines(2)
objApriFile.Write("sono Lorenzo")
objApriFile.close
Set objApriFile = Nothing
Set objFileSy = Nothing


Come già detto è possibile scrivere un file esistente da zero cancellando i vecchi dati o aggiungendo semplicemente nuove righe a quelle già presenti. Nello script qui sopra analizzato il codice viene riscritto da zero, in quanto abbiamo impostato ForWriting, scegliendo invece ForAppending avremo semplicemente aggiunto le righe:

Ciao Matteo

sono Lorenzo


a quelle già esistenti.

 

ASP: Includere file
Prima di entrare nel vivo della programmazione Asp applicata ai database, parliamo di come includere dei file all'interno di pagine asp.

Gli #include, così si chiamano, servono soprattutto per inserire operazioni ripetitive, colonne, la parte superiore e\o inferiore di un sito web. Hanno un po' gli stessi fini dei frames, solo sono più potenti e vanno a finire come codice stesso della pagina, tanto che al client non risulteranno mai pagine differenti.

Esempio pagina include.asp

<html>
<head>
<title>Prova Inclusione 1</title>
</head>
<body>
<!--#include file="superiore.asp"-->
testo testo testo
<!--#include file="inferiore.inc"-->

All'interno della pagina superiore.asp

<p><font size="1">Benvenuto su WMP.org</font></p>

All'interno della pagina inferiore.inc

<p>Fine Pagina</p></body>
</html>

Quando carico la pagina include.asp il codice sorgente (html) sarà:

<html>
<head>
<title>Prova Inclusione 1</title>
</head>
<body>
<p><font size="1">Benvenuto su WMP.org</font></p>
testo testo testo
<p>Fine Pagina</p></body>
</html>

Includere i file
E' possibile attraverso 2 metodi.
Supponiamo che la pagina che "richiede l'inclusione" del file superiore.inc si trova nella root e la pagina da includere (superiore.inc) si trova anch'essa nella root.

Virtual Keyword

<!--#include virtual ="/superiore.inc"-->

Permette di includere il file superiore.inc in qualsiasi file asp, in qualsiasi directory e sottodirectory mettendo davanti al nome del file semplicemente /

File Keyword

<!--#include file ="superiore.inc"-->

Permette di includere il file superiore.inc in qualsiasi file asp, in qualsiasi directory e sottodirectory mettendo davanti al nome del file il percorso relativo del file.

Importante

E' possibile includere file .asp e .inc (i file .inc sono realizzabili semplicemente con il Blocco Note). L'unica differenza è che i file .inc possono essere aperti ed è quindi possibile visualizzare il codice sorgente, mentre per il file asp non è possibile.

Infine è bene ricordare che il codice Asp all'interno dei file inclusi viene eseguito.

ASP: Introduzione ai database

Un mezzo molto comodo, utile e utilizzato per memorizzare i dati in modo permanente è il database. Infatti Session memorizza i dati solo quando l'utente si trova all'interno del sito (quando esce i dati vengono cancellati), Application non è adatto per memorizzare dati personali per ovvi motivi di carico del server e infine i cookies possono scadere, essere cancellati accidentalmente o appositamente o addirittura disattivati e così inutilizzabili.

Il database è un grande archivio in cui vengono memorizzati dati di qualsiasi genere e grandezza.

I più utilizzati (come ne abbiamo parlato nella guida di SQL) sono quelli MS Access e Sql Server, Oracle, Informix, Sybase, DB2,... ma vedremo che i più diffusi sono quelli Access, in quanto il software è relativamente economico, potente (ci permette di fare tutte le operazioni possibili) e supportato dalla maggior parte dei provider.

Quindi questa guida farà riferimento ai database MS Access, ma il funzionamento è più o meno uguale per tutti.

Per realizzare database di tale tipo abbiamo 2 metodi:
- Utilizzare Microsoft Access (che si trova nel pacchetto MS Office)
- Realizzarlo attraverso una pagina ASP (utilizzando SQL)

COME E' IMPOSTATO UN DATABASE

I database possono contenere una o più tabelle che al loro interno contengono colonne e righe che formano le celle (o records).

Le colonne sono le categorie (sono quelle che contengono determinano i dati) mentre le righe permettono di inserire tutti i dati relativi ad un oggetto. Ecco un esempio di database:

ID

Nome

Cognome

Eta

Paese

1

Lorenzo

Pascucci

17

Oriolo Romano

2

Marcello

Tansini

22

Sesto S. Giovanni

Tutto ciò è una tabella che prenderà un nome, in questo esempio DATI. All'interno di un database si possono trovare anche altre tabelle.

pillitteri spin tuttisiti nino pillitteri cd cd rom, server nt reti linguaggio C++ cd audio marketing web design, http, servers, web promotion web advertising web training realizzazione siti internet creazione pagine web realizzazione siti negozio virtuale progettazione siti siti internet siti web creazione siti 
realizzazione siti banner gratuiti aggiornamento siti business Internet promozione online news online, Internet marketing, web hosting web marketing realizzazioni multimediali multimedia multimediale presentazioni aziendali commercio elettronico e-commerce transazioni on line carrello consulenza gratuita cd-rom multimediali promozione siti registrazione domini
reti aziendali intranet tuttisiti web pagine web realizzazione siti internetaziende online sito privato pubblicità, spazi online spazio web creazione pagine web realizzazione siti web web art vacanze taormina scenografia scenografica ping tracert winipcfg test finger talk rusers, rwho
crittografia crittanalisi ftp servet nt 4.0 pittura rete arte design webmaster webdesign cd cd rom attacchi noti tipi di attacchi+Trojan horsesBombs Backdoors Trap doors Probing del sistema tecniche di scanning problema sicurezza protezione dei sistemi tramite password vulnerabilità dei programmi e firewall virus worms