[E-Book ITA] Creare Un Sito in ASP - Aranzulla

162
© Salvatore Aranzulla – Trucchi, consigli e suggerimenti per il tuo portale in ASP! http://salvatore-aranzulla.splinder.it http://www.hardwaremax.it Pagina 1 di 162 Trucchi, consigli e suggerimenti per il tuo portale in ASP di Salvatore Aranzulla Prima edizione – Luglio 2004

description

Manuale di ASP

Transcript of [E-Book ITA] Creare Un Sito in ASP - Aranzulla

Page 1: [E-Book ITA] Creare Un Sito in ASP - Aranzulla

© Salvatore Aranzulla – Trucchi, consigli e suggerimenti per il tuo portale in ASP! http://salvatore-aranzulla.splinder.it – http://www.hardwaremax.it

Pagina 1 di 162

Trucchi, consigli e suggerimenti per il tuo portale in ASP

di Salvatore Aranzulla

Prima edizione – Luglio 2004

Page 2: [E-Book ITA] Creare Un Sito in ASP - Aranzulla

© Salvatore Aranzulla – Trucchi, consigli e suggerimenti per il tuo portale in ASP! http://salvatore-aranzulla.splinder.it – http://www.hardwaremax.it

Pagina 2 di 162

Sai che è possibile creare un sito con guestbook, news, sondaggi e tutto quello che puoi immaginare con le ASP di Microsoft?

Tutti i trucchi in questo libro.

Page 3: [E-Book ITA] Creare Un Sito in ASP - Aranzulla

© Salvatore Aranzulla – Trucchi, consigli e suggerimenti per il tuo portale in ASP! http://salvatore-aranzulla.splinder.it – http://www.hardwaremax.it

Pagina 3 di 162

Note per la distribuzione Questo libro è distribuibile gratuitamente su internet, per esempio mettendolo nel vostro sito o distribuendolo nei circuiti peer-to-peer, senza alcuna restrizione, purché:

• Non vi facciate pagare (tranne ovviamente il supporto per distribuirlo, tipo il floppy, il cd)

• Vi sia il mio nome • Questo testo rimanga inalterato

Comunque il fatto che questo libro è distribuibile liberamente non altera né indebolisce in alcun modo il diritto d'autore (copyright), che rimane mio, secondo le leggi vigenti. Se avete amici che vorrebbero creare un sito utilizzando le ASP (Active Server Pages) passategli questo libro :) Se avete un sito di informatica/programmazione potete inserire questo libro e/o segnalarlo, offrirete così degli ottimi (almeno spero :P) tutorial per creare un sito web.

Consigli, errori, aggiornamenti Questa è la prima edizione, quindi sicuramente vi saranno molti orrori ed imperfezioni, aspetto i vostri consigli, dubbi via email: [email protected] Se volete essere aggiornati sulle nuove pubblicazioni potete visitare il mio sito http://salvatore-aranzulla.splinder.it. Segnalo inoltre il mio sito http//www.hardwaremax.it

Che noia.. un libro di programmazione? Spuff! Questo è quello che diranno tutti vedendo questo libro a prima vista. In questo libro NON vi è teoria, ma SOLO pratica. Cercherò di spiegarvi tutti i trucchi per realizzare un sito completo e dinamico in ASP. Questo libro è adatto anche a chi ha una conoscenza di base delle ASP e non è un esperto. I “non esperti” non hanno assolutamente nulla da vergognarsi “non si nasce imparati” e questo libro è fatto anche per loro, per far apprendere a tutti come sia facile creare un sito completo in poco tempo ;) Alla fine del libro trovate la sezione “Dubbi? Risolviamoli”, nella quale pubblicherò i vostri dubbi/chiarimenti sugli script di questo libro.

Page 4: [E-Book ITA] Creare Un Sito in ASP - Aranzulla

© Salvatore Aranzulla – Trucchi, consigli e suggerimenti per il tuo portale in ASP! http://salvatore-aranzulla.splinder.it – http://www.hardwaremax.it

Pagina 4 di 162

Page 5: [E-Book ITA] Creare Un Sito in ASP - Aranzulla

© Salvatore Aranzulla – Trucchi, consigli e suggerimenti per il tuo portale in ASP! http://salvatore-aranzulla.splinder.it – http://www.hardwaremax.it

Pagina 5 di 162

Sommario

NOTE PER LA DISTRIBUZIONE .......................................................................3 CONSIGLI, ERRORI, AGGIORNAMENTI ..............................................................3 CHE NOIA.. UN LIBRO DI PROGRAMMAZIONE? SPUFF!............................................3

CREARE UN GUEST-BOOK!.................................................................... 8

CREAZIONE DATABASE ..............................................................................8 PAGINE PER VISUALIZZARE I MESSAGGI............................................................9 PAGINE PER INSERIRE I MESSAGGI ...............................................................12 CREAZIONE DELLE PAGINE PER L’AMMINISTRATORE.............................................14

GESTIONALE PER LE NEWS DEL NOSTRO SITO................................... 20

CREAZIONE DATABASE .............................................................................20 CREAZIONE PAGINE PER LA VISUALIZZAZIONE DELLE NEWS....................................21 CREAZIONE PAGINE DI AMMINISTRAZIONE NEWS ...............................................25

SEGNALA SITO AD UN AMICO! ........................................................... 35

I SONDAGGI....................................................................................... 39

CREAZIONE DEL DATABASE ........................................................................39 CREAZIONE PAGINA PER INSERIMENTO/VISUALIZZAZIONE DEI RISULTATI DEI SONDAGGI ..40 PAGINE PER GESTIRE IL SONDAGGIO .............................................................45

SITO MULTI LINGUA .......................................................................... 50

ROTAZIONE BANNER.......................................................................... 53

CREAZIONE FILE CON I DATI DEI BANNER ........................................................53 CREAZIONE PAGINA PER LA VISUALIZZAZIONE DEI BANNER....................................54 PAGINE PER PORTARE L’UTENTE SUL SITO DEL BANNER.........................................55

CREARE UNA NEWSLETTER................................................................. 56

CREAZIONE DATABASE ............................................................................56 PAGINE PER LA REGISTRAZIONE/ELIMINAZIONE DALLA NEWSLETTER..........................56 PAGINE PER L’AMMINISTRATORE DEL SITO .......................................................59

FRAME SOPRA I SITI ESTERNI ........................................................... 66

UTENTI CONNESSI ............................................................................. 69

TEMA UGUALE PER LE PAGINE DEL NOSTRO SITO.............................. 71

PIÙ PAGINE IN UNA........................................................................... 73

SEZIONI RISERVATE .......................................................................... 75

PROBLEMA 1: PROTEGGERE UNA SEZIONE AD UN SOLO UTENTE...............................75 PROBLEMA 2: PROTEGGERE UNA SEZIONE A PIÙ UTENTI .......................................77

Creazione DataBase (DB) .................................................................78 Creazione pagine per la registrazione.................................................79 Creazione pagine per l’invio di password smarrite ................................86

Page 6: [E-Book ITA] Creare Un Sito in ASP - Aranzulla

© Salvatore Aranzulla – Trucchi, consigli e suggerimenti per il tuo portale in ASP! http://salvatore-aranzulla.splinder.it – http://www.hardwaremax.it

Pagina 6 di 162

Creazione pagine per l’identificazione.................................................89 Esempio di sezione riservata.............................................................93 Modifica dati utenti..........................................................................95 Creazione parte amministrativa per la gestione di tutto lo script ............98 Personalizzazioni........................................................................... 107

CREARE UNA CHAT ........................................................................... 111

UTILIZZARE UN DATABASE (DB) ACCESS ..................................................... 111 UTILIZZARE LE APPLICATION.................................................................... 111 CONFLITTI CON ALTRE PARTI DEL SITO......................................................... 125 STRUMENTI PER L’AMMINISTRATORE ........................................................... 125

CONTA CLICK ................................................................................... 127

CREAZIONE DATABASE .......................................................................... 127 CREAZIONE PAGINE PER REGISTRARE I CLICK ................................................. 128 CREAZIONE PAGINE PER L’AMMINISTRATORE .................................................. 129

NUMERI, FRASI, IMMAGINI E… CASUALI!........................................ 135

GENERARE UN NUMERO RANDOM................................................................ 135 FRASI CASUALI ................................................................................... 136 IMMAGINI CASUALI ............................................................................... 138 DOVE INSERIRE QUESTI SCRIPT? ............................................................... 139

PAROLE INDESIDERATE ................................................................... 140

APPLICHIAMO LA PULIZIA DELLE PAROLE INDESIDERATE AL NOSTRO GUESTBOOK ......... 143 APPLICHIAMO LA PULIZIA DELLE PAROLE INDESIDERATE ALLA NOSTRA CHAT............... 143

MATEMATICA & ASP? ....................................................................... 144

SOMMA ............................................................................................ 144 SOTTRAZIONE .................................................................................... 144 MOLTIPLICAZIONE................................................................................ 144 SOTTRAZIONE .................................................................................... 144 ELEVAMENTO A POTENZA ........................................................................ 145 ESPRESSIONI ARITMETICHE SEMPLICI .......................................................... 145 MAGGIORE/MINORE DI .......................................................................... 146 UGUALE A ......................................................................................... 146

ALCUNE FUNZIONI DI ASP ............................................................... 148

REPLACE........................................................................................... 148 UCASE ............................................................................................. 148 LCASE ............................................................................................. 149 LEFT ............................................................................................... 149 RIGHT ............................................................................................. 150 LEN ................................................................................................ 150 TRIM ............................................................................................... 151 STRREVERSE...................................................................................... 152

LE DATE E GLI ORARI....................................................................... 153

Page 7: [E-Book ITA] Creare Un Sito in ASP - Aranzulla

© Salvatore Aranzulla – Trucchi, consigli e suggerimenti per il tuo portale in ASP! http://salvatore-aranzulla.splinder.it – http://www.hardwaremax.it

Pagina 7 di 162

FORMATTARE LE DATE............................................................................ 153 DIFFERENZA FRA DATE........................................................................... 154

SOSTITUIAMO LE FACCINE CON DELLE IMMAGINI........................... 157

APPLICHIAMO QUESTA FUNZIONE AL NOSTRO GUESTBOOK................................... 159 APPLICHIAMO QUESTA FUNZIONE ALLA NOSTRA CHAT ........................................ 159 ASSOCIARE QUESTA FUNZIONE A QUELLA PER LA RIMOZIONE DELLE PAROLE INDESIDERATE

..................................................................................................... 159

CHIARIAMO I DUBBI........................................................................ 161

DATABASE......................................................................................... 161 UNIAMO GLI SCRIPT .............................................................................. 161

Page 8: [E-Book ITA] Creare Un Sito in ASP - Aranzulla

Capitolo 1

Creare un Guest-Book! In questa lezione vedremo come creare un Guest-Book cioè un libro degli ospiti, per far aggiungere ai nostri visitatori i loro commenti sul nostro sito. La realizzazione può essere divisa in più parti:

• Creazione database • Creazione delle pagine per visualizzare i messaggi • Creazione delle pagine per inserire i messaggi • Creazione delle pagine per l’amministratore

Creazione Database Per la creazione del database ho usato il famoso Microsoft Access, versione 2000 (presente nel pacchetto Microsoft Office). Avviamo Access e selezioniamo la creazione di un database vuoto:

Quindi diamo un nome al nostro database, che conterrà i nostri dati (i messaggi), e

atabase.mdb”.

re m zazione struttura:

salviamolo col nome di “d C ia o quindi una tabella in visualiz

... n

• Titolo - Tipo Campo: Testo • Messaggio - Tipo Campo: Memo

co i seguenti campi:

• Id – Tipo Campo: Contatore

• Autore - Tipo Campo: Testo • Email - Tipo Campo: Testo • Data - Tipo Campo: Testo

© Salvatore Aranzulla – Trucchi, consigli e suggerimenti per il tuo portale in ASP! http://salvatore-aranzulla.splinder.it – http://www.hardwaremax.it

Pagina 8 di 162

Page 9: [E-Book ITA] Creare Un Sito in ASP - Aranzulla

Chiudiamo la creazione della tabella (con la X in alto a destra della creazione della

e alle domande che ci verranno poste, essaggi”.

ook creeremo la pagina ook.asp”. Si tratta di una pagina che preleva i messaggi inseriti nel database

li visualizza, impaginandoli.

>

title>MIO GUESTBOOK</title>

p align="center"><font size="4" face="Verdana"><b>Messaggi

!-- #INCLUDE FILE="adovbs.inc" -->

NUMERO DI MESSAGGI PER PAGINA

Request.QueryString("page") = "" Then

ageCurrent = CInt(Request.QueryString("page"))

tabella) e, rispondendo affermativamentsalviamola col nome di “Guestbook_m

Pagine per visualizzare i messaggi Per la visualizzazione dei messaggi scritti nel guest-b“guestbeEcco il suo codice, commentato nelle sue parti: <html <head><</head> <body> <GuestBook</b></font></p> <<% ' iPageSize = 5 IfiPageCurrent = 1 Else iPEnd If

© Salvatore Aranzulla – Trucchi, consigli e suggerimenti per il tuo portale in ASP! http://salvatore-aranzulla.splinder.it – http://www.hardwaremax.it

Pagina 9 di 162

Page 10: [E-Book ITA] Creare Un Sito in ASP - Aranzulla

© Salvatore Aranzulla – Trucchi, consigli e suggerimenti per il tuo portale in ASP! http://salvatore-aranzulla.splinder.it – http://www.hardwaremax.it

Pagina 10 di 162

") = "" Then

trOrderBy = Request.QueryString("order")

soft Access Driver (*.mdb)};dbq=" & server.mappath("/mdb-atabase.mdb")

DODB.Connection") pen url_DB

S = Server.CreateObject("ADODB.Recordset")

GuestBook_Messaggi ORDER BY " & strOrderBy & " DESC;"

S.PageSize = iPageSize

acheSize = iPageSize

Current > iPageCount Then iPageCurrent = iPageCount

LIZZATO UN MESSAGGIO CHE

NO UN MESSAGGIO NEL GUESTBOOK Count = 0 Then

"Verdana">Nessun messaggio inserito

Shown = 0

TRA

RS.EOF

der="0" cellpadding="0" cellspacing="0" width="64%">

d width="28%"><font face="Verdana" size="2">Titolo

If Request.QueryString("orderstrOrderBy = "id" Else sEnd If ' PERCORSO DEL DATABASE url_DB = "driver={Microdatabase/d Set Conn = Server.CreateObject("Aconn.O Set R ' FA LA RICHIESTA AL DATABASE sql = "SELECT * FROM RS.Open sql, conn, adOpenKeyset R RS.C iPageCount = RS.PageCount If iPageIf iPageCurrent < 1 Then iPageCurrent = 1 ' NESSUN MESSAGGIO INSERITO -> VIENE VISUAINFORMA CHE NON E' PRESENTE ' NEMMEIf iPage%><hr> <p align="center"><b><font size="2" face=nel guestbook!</font></b></p> <hr> <% Else RS.AbsolutePage = iPageCurrent iRecords ' SE I MESSAGGI SONO PRESENTI NEL GUESTBOOK, LI MOS Do While iRecordsShown < iPageSize And Not%> <hr> <table bor <tr> <tCommento:</font></td>

Page 11: [E-Book ITA] Creare Un Sito in ASP - Aranzulla

© Salvatore Aranzulla – Trucchi, consigli e suggerimenti per il tuo portale in ASP! http://salvatore-aranzulla.splinder.it – http://www.hardwaremax.it

Pagina 11 di 162

2%"><b><font face="Verdana" ize="2"><%=RS("titolo")%></font></b></td>

width="28%"><font face="Verdana" size="2">Commento:</font></td> idth="72%"><font face="Verdana"

messaggio")%></font></td>

><font face="Verdana" size="2">Autore:</font></td> d width="72%"><font face="Verdana" size="2"><b><a

=RS("autore")%></a></b></font></td>

<td width="28%"><font face="Verdana" size="2">Data >

d width="72%"><font face="Verdana" nt></td>

PLETA LA VISUALIZZAZIONE DEI MESSAGGI E CHIUDE LA CONNESSIONE AL DATABASE

S.MoveNext

nd If

et RS = Nothing

TI IN QUESTO ESEMPIO 5 MESSAGGI PER PAGINA

For x=1 to iPageCount

font face="Verdana" size="2">[ <b> <a )

"center"><b><font size="2" face="Verdana"><a ref="aggiungi.asp">Inserisci messaggio</a></font></b></p>

<td width="7s </tr> <tr> <td <td wsize="2"><%=RS(" </tr> <tr> <td width="28%" <thref="mailto:<%=RS("email")%>"><% </tr> <tr> inserimento:</font></td <tsize="2"><b><%=RS("data")%></b></fo </tr> </table> <hr><% ' COM' iRecordsShown = iRecordsShown + 1 RLoop ERS.Close SConn.Close %><center> <% ' MOSTRA IL NUMERO DELLE PAGINE, ' DATO CHE VERRANNO MOSTRA'

%> <href="guestbook.asp?page=<%=x%>&order=<%= Server.URLEncode(strOrderBy%>"><%=x%></a></b> ]</font> <% next %> <p align=h </body>

Page 12: [E-Book ITA] Creare Un Sito in ASP - Aranzulla

© Salvatore Aranzulla – Trucchi, consigli e suggerimenti per il tuo portale in ASP! http://salvatore-aranzulla.splinder.it – http://www.hardwaremax.it

Pagina 12 di 162

è che all’inizio della pagina viene inclusa la pagina “adovbs.inc”, alcune

re scaricato dal mio sito http://salvatore-

</html> Da notarecostanti necessarie per il funzionamento della pagina e più precisamente per i database. Questo file può essearanzulla.splinder.it o cercando su un motore di ricerca “adovbs.inc” (ad esempio su Google, http://www.google.it).

Pagine per inserire i messaggi La pagina per inserire i messaggi si chiamerà “aggiungi.asp”, in questa paginatrova un modulo da compilare con le varie informaz

si ioni del messaggio (nome, email,

to, ecc...), i dati verranno poi inviati alla pagina “inserisci.asp” che li inserirà base.

nel

o:</font></td> th="72%"><b><font face="Verdana" size="2"><input type="text"

erdana" size="2">Commento:</font></td> <td width="72%"><font face="Verdana" size="2"><textarea rows="5"

mmento" cols="36"></textarea></font></td>

</font></td> ut type="text"

ame="autore" size="20"></font></td>

"Verdana" size="2">Email:</font></td>

commennel dataEcco il codice della pagina “aggiungi.asp”, si tratta di semplice codice HTML: <html> <head><title>MIO GUESTBOOK</title> </head> <body> <p align="center"><b><font size="4" face="Verdana">Aggiungi un MessaggioGuestBook</font></b></p> <form method="POST" action="inserisci.asp"> <table border="0" cellpadding="0" cellspacing="0" width="64%"> <tr> <td width="28%"><font face="Verdana" size="2">Titolo Comment <td widname="titolo" size="20"></font></b></td> </tr> <tr> <td width="28%"><font face="V name="co </tr> <tr> <td width="28%"><font face="Verdana" size="2">Nome: <td width="72%"><font face="Verdana" size="2"><inpn </tr> <tr> <td width="28%"><font face=

Page 13: [E-Book ITA] Creare Un Sito in ASP - Aranzulla

© Salvatore Aranzulla – Trucchi, consigli e suggerimenti per il tuo portale in ASP! http://salvatore-aranzulla.splinder.it – http://www.hardwaremax.it

Pagina 13 di 162

ana" size="2"><b><input type="text" mail" size="20"></b></font></td>

>

"2"><input type="submit" value="Invia" ame="B1"><input type="reset" value="Reimposta" name="B2"></td>

p align="center"><b><font size="2" face="Verdana"><a

>

/body>

/html>

o inviati alla pagina “inserisci.asp”:

l> >

INCLUDE FILE="adovbs.inc" --> y>

IEDE I CAMPI DAL FORM tolo = Request.Form("titolo")

APO NEL MESSAGGIO COL TAG HTML <BR>) essaggio = Replace(Request.Form("commento"), chr(13), "<BR>", 1)

orm("autore") mail = Request.Form("email")

LATI CORRETTAMENTE

titolo = "" or messaggio = "" or autore = "" or Instr(email, "@") = 0 or Instr(email,

I E' VUOTO >

dana" size="3"><b>Torna indietro e compila </b></font></p>

ALTRIMENTI AGGIUNGE IL MESSAGGIO

<td width="72%"><font face="Verdname="e </tr <tr> <td width="100%" colspan=n </tr> </table> </form> <href="guestbook.asp">Leggi GuestBook</a></font></b></p < < I dati inseriti verrann <htm<head<title>MIO GUESTBOOK</title> </head> <!-- #<bod<% ' RICHti ' IMPOSTA L'INVIO A CAPO '(RIMPIAZZA GLI INVII A Cm autore = Request.Fedata = Date() ' CONTROLLO CHE I CAMPI SIANO STATI COMPI IF".") = 0 then ' UNO DEI CAMP%<hr> <p align="center"><font face="Vertutti i campi correttamente!<hr> <% ' else

Page 14: [E-Book ITA] Creare Un Sito in ASP - Aranzulla

© Salvatore Aranzulla – Trucchi, consigli e suggerimenti per il tuo portale in ASP! http://salvatore-aranzulla.splinder.it – http://www.hardwaremax.it

Pagina 14 di 162

L DATABASE rl_DB = "driver={Microsoft Access Driver (*.mdb)};dbq=" & server.mappath("/mdb-

base.mdb")

ODB.Connection") pen url_DB

CONNESSIONE AL DATABASE et RecSet = Server.CreateObject("ADODB.Recordset")

LECT * FROM GuestBook_Messaggi" ecSet.Open SQL, Conn, adOpenStatic, adLockOptimistic

AGGIUNGE IL MESSAGGIO NEL DATABASE ecset.Addnew

ecSet("messaggio") = messaggio

' AGGI' E ec et

.Close

d... ecco pronto il nostro guest-book (nella parte utente)!

agine per l’amministratore, per l’eliminazione di min” e creiamo adesso due file (che

ovranno essere inseriti in questa cartella):

Index.asp (Che identifica l’utente come amministratore) stione_Guestbook.asp (Per visualizzare/eliminare i messaggi indesiderati)

dice della pagina “index.asp”:

' PERCORSO DEudatabase/data Set Conn = Server.CreateObject("ADconn.O ' APRE LA SSQL = "SER ' R

RecSet("titolo") = titolo RRecSet("autore") = autore RecSet("email") = email RecSet("data") = data

ORNA IL DATABASE, CHIUDE LA CONNESSIONE PORTA L'UTENTE NEL GUESTBOOK S .Update R

ecSet.Close R

ConnResponse.Redirect "guestbook.asp" nd if e

%> </body> </html> E

Creazione delle pagine per l’amministratore Passiamo ora alla creazione delle pmessaggi indesiderati! Creiamo una cartella “add

• • Ge

Ecco il co <%

Page 15: [E-Book ITA] Creare Un Sito in ASP - Aranzulla

© Salvatore Aranzulla – Trucchi, consigli e suggerimenti per il tuo portale in ASP! http://salvatore-aranzulla.splinder.it – http://www.hardwaremax.it

Pagina 15 di 162

CONTROLLA SE I DATI INSERITI NEL CAMPO DI LOGIN SONO ESATTI

USERNAME AMMINISTRATORE

est.Form("username")) = Lcase(username) and

NO ESATTI E SI VIENE IDENTIFICATI COME AMMINISTRATORE

ministratore") = true Redirect "Gestione_GuestBook.asp"

NE GUESTBOOK</title>

enter"><b><font size="4" face="Verdana">Gestione /font></b></p>

="POST" action="index.asp"> n="center"> r>

="0" cellspacing="0" width="39%"> <tr>

idth="50%"><font face="Verdana" size="2">Username:</font></td> <td width="50%"><input type="text" name="username" size="20"></td>

<tr>

ize="20"></td> /tr>

<td width="100%" colspan="2" height="5">

r> <td width="100%" colspan="2">

<p align="center"><input type="submit" value="Invia" name="B1"><input set" value="Reimposta" name="B2"></td>

' ' username = "admin" ' PASSWORD AMMINISTRATOREpassword = "admin" IF Lcase(RequLcase(Request.Form("password")) = Lcase(password) then ' I DATI SO' E PORTATI NELLA PAGINA "GESTIONE_GUESTBOOK.ASP" session("amResponse. End if %> <html> <head> <title>GESTIO</head> <body> <p align="center">&nbsp;</p> <p align="cGuestBook!<<form method <div alig <cente <table border="0" cellpadding <td w </tr> <td width="50%"><font face="Verdana" size="2">Password:</font></td> <td width="50%"><input type="password" name="password" s < <tr> </td> </tr> <t type="re </tr>

Page 16: [E-Book ITA] Creare Un Sito in ASP - Aranzulla

© Salvatore Aranzulla – Trucchi, consigli e suggerimenti per il tuo portale in ASP! http://salvatore-aranzulla.splinder.it – http://www.hardwaremax.it

Pagina 16 di 162

r>

p align="center">&nbsp;</p>

cco la pagina “Gestione_GuestBook.asp”, in questa pagina vengono visualizzati i gli sopra vengono eliminati dal database:

ORE

Session("amministratore") <> True Then

head>

ovbs.inc" --> body>

><font size="4" face="Verdana">&gt; Gestione uestBook!</font></b></p>

NUMERO DI MESSAGGI PER PAGINA

Request.QueryString("page") = "" Then

ageCurrent = CInt(Request.QueryString("page"))

") = "" Then

trOrderBy = Request.QueryString("order")

CORSO DEL DATABASE ("/mdb-

n = Server.CreateObject("ADODB.Connection")

</table> </cente </div> </form> < </body> </html> Emessaggi del Guest Book inseriti e cliccando <% ' CONTROLLA SE SI E' LOGGATI COME AMMINISTRAT IFResponse.Redirect "index.asp" End if %> <html><<title>GESTIONE GUESBOOK</title></head> <!-- #INCLUDE FILE="../ad< <p align="left"><bG<% ' iPageSize = 20 IfiPageCurrent = 1 Else iPEnd If If Request.QueryString("orderstrOrderBy = "id" Else sEnd If ' PERurl_DB = "driver={Microsoft Access Driver (*.mdb)};dbq=" & server.mappathdatabase/database.mdb") Set Con

Page 17: [E-Book ITA] Creare Un Sito in ASP - Aranzulla

© Salvatore Aranzulla – Trucchi, consigli e suggerimenti per il tuo portale in ASP! http://salvatore-aranzulla.splinder.it – http://www.hardwaremax.it

Pagina 17 di 162

DB.Recordset")

A RICHIESTA AL DATABASE BY " & strOrderBy & " DESC;"

OpenKeyset S.PageSize = iPageSize

t = RS.PageCount

GGIO NEL GUESTBOOK: ount > 0 Then

size="2">Ecco i messaggi inseriti, fai ro titolo per eliminarli:</font></p>

border="0" cellpadding="2" width="100%">

bgcolor="#C3D3DB">&nbsp;</td> d width="98%" bgcolor="#C3D3DB"><font face="Verdana" size="2"><b>Titolo

</font></td> >

UESTBOOK

ecordsShown = 0

SSAGGI SONO PRESENTI NEL GUESTBOOK, LI MOSTRA ot RS.EOF

d width="2%"><font face="Verdana" size="2">&gt;</font></td> width="98%"><font face="Verdana" size="2"><a

ref="Gestione_GuestBook.asp?operazione=elimina&id=<%=RS("id")%>"><%=RS("

>

e

et RS = Nothing

center> %

IL NUMERO DELLE PAGINE

conn.Open url_DB Set RS = Server.CreateObject("ADO ' FA Lsql = "SELECT * FROM GuestBook_Messaggi ORDER RS.Open sql, conn, adR RS.CacheSize = iPageSize iPageCounIf iPageCurrent > iPageCount Then iPageCurrent = iPageCount If iPageCurrent < 1 Then iPageCurrent = 1 ' SE E' ALMENO PRESENTE UN MESSAIf iPageC%> <p align="left"><font face="Verdana"click sopra il lo<table <tr> <td width="2%" <t Messaggio</b> </tr<% ' MOSTRA TUTTI I MESSAGGI DEL GRS.AbsolutePage = iPageCurrent iR ' SE I MEDo While iRecordsShown < iPageSize And N%> <tr> <t <tdhtitolo")%></a></font></td> </tr<% iRecordsShown = iRecordsShown + 1 RS.MoveNext Loop RS.ClosS%> </table><<' MOSTRA

Page 18: [E-Book ITA] Creare Un Sito in ASP - Aranzulla

© Salvatore Aranzulla – Trucchi, consigli e suggerimenti per il tuo portale in ASP! http://salvatore-aranzulla.splinder.it – http://www.hardwaremax.it

Pagina 18 di 162

O CHE VERRANNO MOSTRATI

>

"Gestione_Guestbook.asp?page=<%=x%>&order=<%= erver.URLEncode(strOrderBy) %>"><%=x%></a></b> ]</font>

TE

> ize="2">Nessun messaggio presente nel

>

SE VIENE PASSATO UN VALORE DI ID MESSAGGIO GUESTBOOK A "ELIMINA"

IMINATO IL MESSAGGIO SELEZIONATO

quest.QueryString("operazione") = "elimina" and Request.QueryString("id")<>"" en

et RecSet = Server.CreateObject("ADODB.Recordset") ' PRELEVA IL MESSAGGIO DAL DATABASE SQL = "SELECT * FROM GuestBook_Messaggi where id = "& Request.QueryString("id") &"" RecSet.Open SQL, Conn, adOpenStatic, adLockOptimistic ' CONTROLLA SE ESISTE E LO ELIMINA If RecSet.Eof = False Then RecSet.Delete RecSet.Update End IF RecSet.Close Conn.Close Set RecSet = Nothing Set Conn = Nothing Response.Redirect "Gestione_GuestBook.asp" End IF

' DAT' IN QUESTO ESEMPIO 5 MESSAGGI PER PAGINA For x=1 to iPageCount %<font face="Verdana" size="2">[ <b> <a href=S<% Next ' NESSUN MESSAGGIO PRESENElse %<p align="left"><font face="Verdana" sguesbook!</font></p> <% End IF %</body> </html> <% ' ' E LA QUERYSTRING OPERAZIONE E' UGUALE ' VIENE EL If Reth S

Page 19: [E-Book ITA] Creare Un Sito in ASP - Aranzulla

© Salvatore Aranzulla – Trucchi, consigli e suggerimenti per il tuo portale in ASP! http://salvatore-aranzulla.splinder.it – http://www.hardwaremax.it

Pagina 19 di 162

bbiamo così finito la creazione del nostro (stupendo) guestbook!

%> A

Page 20: [E-Book ITA] Creare Un Sito in ASP - Aranzulla

© Salvatore Aranzulla – Trucchi, consigli e suggerimenti per il tuo portale in ASP! http://salvatore-aranzulla.splinder.it – http://www.hardwaremax.it

Pagina 20 di 162

apitolo 2

Gestionale per le news del nostro sito e

le varie pagine per le news è una operazione molto lunga e noiosa, ma in ASP per la gestione delle news con un

essere divisa in:

la visualizzazione delle news

ione 2000

vviamo il Access e selezioniamo la creazione di un database vuoto:

C

Può capitare di dover creare una sezione per le news nel nostro sito web, aggiornare creare a mano vediamo invece come realizzare un siste

lice database! sempLa realizzazione dello script può

• Creazione database • Creazione pagine per• Creazione pagine di amministrazione news

Creazione database Per la creazione del database ho usato il famoso Microsoft Access, vers(presente nel pacchetto Microsoft Office). A

Quindi diamo un nome al nostro database, che conterrà le varie news, e salviamolo col nome di “database.mdb”. Creiamo quindi una tabella in visualizzazione struttura:

... con i seguenti campi:

Tipo campo: Contatore lo – Tipo campo: Testo (Il titolo della news)

Tipo campo: Testo (La data di inserimento della news) ontenuto – Tipo campo: Memo (Il contenuto della news)

Tipo campo: Testo (L’autore della news)

ne della tabella (con la X in alto a destra della creazione della affermativamente alle domande che ci verranno poste, “News”.

• ID – • Tito• Data – • C• Autore –

Chiudiamo la creaziotabella) e, rispondendosalviamola col nome di

Page 21: [E-Book ITA] Creare Un Sito in ASP - Aranzulla

© Salvatore Aranzulla – Trucchi, consigli e suggerimenti per il tuo portale in ASP! http://salvatore-aranzulla.splinder.it – http://www.hardwaremax.it

Pagina 21 di 162

tta di visualizza le ultime news (ad le ultime 10 news) nella homepage del nostro sito o in qualsiasi altro luogo mo:

c" -->

O DEL DATABASE driver={Microsoft Access Driver (*.mdb)};dbq=" & server.mappath("/mdb-

database.mdb")

ODB.Connection")

Object("ADODB.Recordset")

O PRESENTI) 10 * FROM NEWS ORDER BY ID DESC"

ecSet.Open SQL, Conn, adOpenStatic, adLockOptimistic

CONTROLLA SE SONO PRESENTI NEWS NEL DB

<tr>

"><font face="Verdana" size="2"><a "leggi_news.asp?id=<%=RecSet("id")%>"><%=RecSet("titolo")%></a></font

%

onn = Nothing et RecSet = Nothing

Creazione pagine per la visualizzazione delle news Innanzitutto scriviamo uno script ASP che ci permeesempio noi voglia <!-- #include file = "adovbs.in<% ' PERCORSurl_DB = "database/ Set Conn = Server.CreateObject("ADconn.Open url_DB Set RecSet = Server.Create ' PRELEVA LE ULTIME 10 NEWS DAL DATABASE (SE SONSQL = "SELECT TOPR ' If RecSet.Eof = False Then %> <table border="0" cellpadding="0" cellspacing="0" width="34%"> <% ' VISUALIZZA LE PRIME 10 NEWS Do until RecSet.Eof %> <td width="6%"><font face="Verdana" size="2">&gt;</font></td> <td width="94%href=></td> </tr> <% RecSet.Movenext Loop %> </table><End IF RecSet.Close Conn.Close Set CS

Page 22: [E-Book ITA] Creare Un Sito in ASP - Aranzulla

© Salvatore Aranzulla – Trucchi, consigli e suggerimenti per il tuo portale in ASP! http://salvatore-aranzulla.splinder.it – http://www.hardwaremax.it

Pagina 22 di 162

>

ome si nota, i titoli delle news portano alla pagina “leggi_news.asp”, alla quale iene, inoltre, passata la querystring “id”, con l’ID della news.

html>

head> WS</title>

body> lude file = "adovbs.inc" -->

B = "driver={Microsoft Access Driver (*.mdb)};dbq=" & server.mappath("/mdb-

et Conn = Server.CreateObject("ADODB.Connection")

cSet = Server.CreateObject("ADODB.Recordset")

A LA NEWS DAL DB, IN BASE ALL'ID PASSATO

" & Request.QueryString("id") &"" onn, adOpenStatic, adLockOptimistic

SENTE et.Eof = False Then

VANDO DAL DB I VARI CONTENUTI (TITOLO, DATA,

p><b><font face="Verdana" size="4">&gt; <%=RecSet("titolo")%>

e")%> </b>- <b><%=RecSet("data")%></b></font></p> p><font face="Verdana" size="2"><%=RecSet("contenuto")%></font></p>

%

ecSet.Close

et RecSet = Nothing

% Cv Ecco il codice della pagina “leggi_news.asp”: < <<title>NE</head> <<!-- #inc<% ' PERCORSO DEL DATABASE url_Ddatabase/database.mdb") Sconn.Open url_DB Set Re ' PRELEV SQL = "SELECT * FROM NEWS WHERE ID =RecSet.Open SQL, C ' CONTROLLA SE LA NEWS E' REALMENTE PREIf RecS ' VISUALIZZA LA NEWS, PRELEAUTORE, ECC...): %> <</font></b><font face="Verdana" size="2">di<b> <%=RecSet("autor<<p>&nbsp;</p> <End IF RConn.Close Set Conn = Nothing S%> </body>

Page 23: [E-Book ITA] Creare Un Sito in ASP - Aranzulla

© Salvatore Aranzulla – Trucchi, consigli e suggerimenti per il tuo portale in ASP! http://salvatore-aranzulla.splinder.it – http://www.hardwaremax.it

Pagina 23 di 162

a pagina “archivio_news.asp”, nella quale saranno s, quindi appunto questa pagina avrà la

ews:

> >ARCHIVIO NEWS</title> ad>

dovbs.inc" --> font face="Verdana" size="4"><b>&gt; Archivio news</b></font><br><br>

ERO DI NEWS PER PAGINA

Current = 1

By = "id"

PERCORSO DEL DATABASE iver (*.mdb)};dbq=" & server.mappath("/mdb-

base.mdb")

onn = Server.CreateObject("ADODB.Connection") url_DB

Server.CreateObject("ADODB.Recordset")

AL DATABASE T * FROM News ORDER BY " & strOrderBy & " DESC;"

pen sql, conn, adOpenKeyset

unt

</html> Creiamo adesso invece lvisualizzati i titoli delle precedenti newfunzione di un archivio n <html> <head<title</he <body> <!-- #include file = "a<<% ' NUMiPageSize = 15 If Request.QueryString("page") = "" Then iPageElse iPageCurrent = CInt(Request.QueryString("page")) End If If Request.QueryString("order") = "" Then strOrderElse strOrderBy = Request.QueryString("order") End If ' url_DB = "driver={Microsoft Access Drdatabase/data Set Cconn.Open Set RS = ' FA LA RICHIESTA sql = "SELEC RS.ORS.PageSize = iPageSize RS.CacheSize = iPageSize iPageCount = RS.PageCo

Page 24: [E-Book ITA] Creare Un Sito in ASP - Aranzulla

© Salvatore Aranzulla – Trucchi, consigli e suggerimenti per il tuo portale in ASP! http://salvatore-aranzulla.splinder.it – http://www.hardwaremax.it

Pagina 24 di 162

geCurrent > iPageCount Then iPageCurrent = iPageCount

CHE INFORMA NON E' PRESENTE MENO UNA NEWS NEL DB geCount = 0 Then

><hr> enter"><b><font size="2" face="Verdana">Nessuna news

resente!</font></b></p>

%

S.AbsolutePage = iPageCurrent ecordsShown = 0

>

nd Not RS.EOF

<tr> </font></td> <td width=

>"><b><%=RS("titolo")%></b></a> </font></td>

>

A

+ 1

RA IL NUMERO DELLE PAGINE HE VERRANNO MOSTRATI

IN QUESTO ESEMPIO 15 NEWS PER PAGINA

iPageCount

If iPaIf iPageCurrent < 1 Then iPageCurrent = 1 ' NESSUNA NEWS INSERITA -> VIENE VISUALIZZATO UN MESSAGGIO CHE ' NEMIf iPa%<p align="cp<hr> <Else RiR

' SE INVECE SONO PRESENTI NEWS %<table border="0" cellpadding="0" cellspacing="0" width="100%"> <% Do While iRecordsShown < iPageSize A

> %

<td width="2%"><font face="Verdana" size="2">&gt;"98%"><font face="Verdana" size="2"><a

href="leggi_news.asp?id=<%=RS("id")% di <b><%=RS("autore")%></b> - <%=RS("data")%>

</tr<% COMPLETA LA VISUALIZZAZIONE DEI TITOLI DELLE NEWS E CHIUDE L'

CONNESSIONE ' AL DATABASE iRecordsShown = iRecordsShownRS.MoveNext oop L

%> </table> <% End If S.Close R

Set RS = Nothing Conn.Close

><center> %<%

T' MOS' DATO C' For x=1 to

Page 25: [E-Book ITA] Creare Un Sito in ASP - Aranzulla

© Salvatore Aranzulla – Trucchi, consigli e suggerimenti per il tuo portale in ASP! http://salvatore-aranzulla.splinder.it – http://www.hardwaremax.it

Pagina 25 di 162

="Verdana" size="2">[ <b> <a ref="archivio_news.asp?page=<%=x%>&order=<%=

LEncode(strOrderBy) %>"><%=x%></a></b> ]</font> %

modo abbiamo finito le pagine per la visualizzazione delle news, passiamo

delle pagine per l’amministratore per la gestione delle mo una cartella “admin” e creiamo adesso per il momento due file (che

inseriti in questa cartella…):

sp (Che identifica l’utente come amministratore) ione_News.asp (Per la gestione delle news)

I DATI INSERITI NEI CAMPI DI LOGIN SONO ESATTI

MMINISTRATORE = "admin"

assword = "admin"

rname")) = Lcase(username) and uest.Form("password")) = Lcase(password) then

%> <font facehServer.UR<next %> </body> </html> In questo all’amministrazione!

Creazione pagine di amministrazione news Passiamo ora alla creazionenews! Creiaandranno

• Index.a• Gest

Ecco il codice della pagina “index.asp”: <% ' CONTROLLA SE ' USERNAME Ausername ' PASSWORD AMMINISTRATORE p IF Lcase(Request.Form("useLcase(Req' I DATI SONO ESATTI E SI VIENE IDENTIFICATI COME AMMINISTRATORE ' E PORTATI NELLA PAGINA "GESTIONE_NEWS.ASP" session("amministratore") = true Response.Redirect "Gestione_News.asp" End if %> <html> <head>

Page 26: [E-Book ITA] Creare Un Sito in ASP - Aranzulla

© Salvatore Aranzulla – Trucchi, consigli e suggerimenti per il tuo portale in ASP! http://salvatore-aranzulla.splinder.it – http://www.hardwaremax.it

Pagina 26 di 162

STIONE NEWS</title> /head>

p align="center">&nbsp;</p> "center"><b><font size="4" face="Verdana">Gestione

ews!</font></b></p>

able border="0" cellpadding="0" cellspacing="0" width="39%">

"50%"><font face="Verdana" size="2">Username:</font></td> <td width="50%"><input type="text" name="username" size="20"></td>

"50%"><font face="Verdana" size="2">Password:</font></td> "password"

"></td> </tr>

%" colspan="2" height="5"> </td>

> <td width="100%" colspan="2">

put type="submit" value="Invia" name="B1"><input

</table>

/form>

/html>

“Gestione_News.asp”, verranno visualizzati le ultime 50 ews e con un click sarà possibile cancellarle (pagina “Elimina_news.asp”) o

a_news.asp”), inoltre viene inserito un link alla pagina _News.asp”, per aggiungere una nuova news:

session("amministratore")<>true then

<title>GE< <body> <<p align=N<form method="POST" action="index.asp"> <div align="center"> <center> <t <tr> <td width= </tr> <tr> <td width= <td width="50%"><input type="password" name=size="20 <tr> <td width="100 </tr> <tr <p align="center"><intype="reset" value="Reimposta" name="B2"></td> </tr> </center> </div> <<p align="center">&nbsp;</p> </body> < Ecco il codice della pagina nmodificarle (pagina “Modific“Aggiungi <% ' CONTROLLA SE SI E' IDENTIFICATI IFResponse.Redirect "index.asp" End IF %>

Page 27: [E-Book ITA] Creare Un Sito in ASP - Aranzulla

© Salvatore Aranzulla – Trucchi, consigli e suggerimenti per il tuo portale in ASP! http://salvatore-aranzulla.splinder.it – http://www.hardwaremax.it

Pagina 27 di 162

e> >

y>

" face="Verdana">&gt; Gestione /p>

!-- #include file = "../adovbs.inc" -->

ERO DI NEWS PER PAGINA

lse uest.QueryString("page"))

f

SO DEL DATABASE B = "driver={Microsoft Access Driver (*.mdb)};dbq=" & server.mappath("/mdb-

er.CreateObject("ADODB.Connection") onn.Open url_DB

er.CreateObject("ADODB.Recordset")

A RICHIESTA AL DATABASE ECT * FROM News ORDER BY " & strOrderBy & " DESC;"

sql, conn, adOpenKeyset e = iPageSize

e = iPageSize

Count = RS.PageCount geCurrent = iPageCount

nt = 1

NESSUNA NEWS INSERITA -> VIENE VISUALIZZATO UN MESSAGGIO CHE INFORMA

MENO UNA NEWS NEL DB

<html> <head> <title>GESTIONE NEWS</titl</head <bod <p align="left"><b><font size="4News!</font></b><<<% ' NUMiPageSize = 50 If Request.QueryString("page") = "" TheniPageCurrent = 1 EiPageCurrent = CInt(ReqEnd I If Request.QueryString("order") = "" Then strOrderBy = "id" Else strOrderBy = Request.QueryString("order") End If ' PERCORurl_Ddatabase/database.mdb") Set Conn = Servc Set RS = Serv ' FA Lsql = "SEL RS.OpenRS.PageSiz RS.CacheSiz iPageIf iPageCurrent > iPageCount Then iPaIf iPageCurrent < 1 Then iPageCurre ' CHE NON E' PRESENTE ' NEM

Page 28: [E-Book ITA] Creare Un Sito in ASP - Aranzulla

© Salvatore Aranzulla – Trucchi, consigli e suggerimenti per il tuo portale in ASP! http://salvatore-aranzulla.splinder.it – http://www.hardwaremax.it

Pagina 28 di 162

s nte!</font></b></p>

lse

sShown = 0

SE INVECE SONO PRESENTI NEWS

table border="0" cellpadding="0" cellspacing="0" width="100%">

VISUALIZZA I TITOLI DELLE NEWS

umero = numero + 1

<tr> a" size="2"><%=numero%>.</font></td>

d width="172%"><font face="Verdana" size="2"><a %=RS("id")%>"><b><%=RS("Titolo")%></b></a>

t face="Verdana" size="2"><a ref="Elimina_news.asp?id=<%=RS("id")%>">Cancella</a></font></td>

COMPLETA LA VISUALIZZAZIONE DEI TITOLI DELLE NEWS E CHIUDE LA

ecordsShown = iRecordsShown + 1

>

e et RS = Nothing

DELLE PAGINE DATO CHE VERRANNO MOSTRATI

If iPageCount = 0 Then %><hr> <p align="center"><b><font size="2" face="Verdana">Nessuna newprese<hr><% E RS.AbsolutePage = iPageCurrent iRecord ' %> <<% ' Do While iRecordsShown < iPageSize And Not RS.EOF n%> <td width="7%"><font face="Verdan <thref="Modifica_news.asp?id=< di <b><%=RS("autore")%></b> - <%=RS("data")%></font></td> <td width="19%"><fonh </tr> <% ' CONNESSIONE ' AL DATABASE iRRS.MoveNext Loop %</table> <% End If RS.ClosSConn.Close %><center><% ' MOSTRA IL NUMERO ' ' IN QUESTO ESEMPIO 50 NEWS PER PAGINA For x=1 to iPageCount %>

Page 29: [E-Book ITA] Creare Un Sito in ASP - Aranzulla

© Salvatore Aranzulla – Trucchi, consigli e suggerimenti per il tuo portale in ASP! http://salvatore-aranzulla.splinder.it – http://www.hardwaremax.it

Pagina 29 di 162

font face="Verdana" size="2">[ <b> <a

erBy) %>"><%=x%></a></b> ]</font> %

<font face="Verdana" size="2"><a href="Aggiungi_news.asp">Aggiungi a

></font></b></p>

ota è lo stesso codice della precedente pagina “archivio_news.asp”, pportunamente modificata per l’amministrazione.

one delle news:

lude file = "../adovbs.inc" -->

r (*.mdb)};dbq=" & server.mappath("/mdb-database.mdb")

ect("ADODB.Recordset") LECT * FROM NEWS WHERE ID = " & Request.QueryString("id") &""

pen SQL, Conn, adOpenStatic, adLockOptimistic

S E' PRESENTE, LA CANCELLA E AGGIORNA IL DB

e e

AMMINISTRATORE NELLA PAGINA "GESTIONE_NEWS.ASP"

Redirect "Gestione_news.asp" >

<href="Gestione_news.asp?page=<%=x%>&order=<%= Server.URLEncode(strOrd<next %> </center> <p><b>nuovnews</a </body> </html> Come si no Ecco il codice della pagina “Elimina_news.asp”, per l’eliminazi <!-- #inc<% ' PERCORSO DEL DATABASE url_DB = "driver={Microsoft Access Drivedatabase/ Set Conn = Server.CreateObject("ADODB.Connection") conn.Open url_DB Set RecSet = Server.CreateObjSQL = "SERecSet.O ' CONTROLLA SE LA NEWS E' REALMENTE ESISTENTE If RecSet.Eof = False Then ' LA NEWRecSet.Delete RecSet.Update End IF RecSet.ClosConn.ClosSet Conn = Nothing Set RecSet = Nothing ' PORTA L' Response.%

Page 30: [E-Book ITA] Creare Un Sito in ASP - Aranzulla

© Salvatore Aranzulla – Trucchi, consigli e suggerimenti per il tuo portale in ASP! http://salvatore-aranzulla.splinder.it – http://www.hardwaremax.it

Pagina 30 di 162

a _news.asp”:

true then e.Redirect "index.asp"

F

html>

TIONE NEWS</title> /head>

body>

>&gt; Aggiungi News</font></b></p> method="POST" action="News_DB.asp?tipo=aggiungi">

g="0" cellspacing="0" width="100%">

nt face="Verdana" size="2">Titolo news:</font></td> <td width="81%"><font face="Verdana" size="2"><input type="text"

<tr> ntenuto

s="7" name="contenuto" d>

tr>

:</font></td> face="Verdana" size="2"><input type="text"

"autore" size="20"></font></td> tr> r>

" colspan="2"><font face="Verdana" size="2"><input pe="submit" value="Aggiungi news" name="B1"><input type="reset"

</table>

p><a href="Gestione_news.asp"><font face="Verdana" size="2"><b>Torna alla

Vediamo adesso come aggiungere una nuova news, ecco la pagin“Aggiungi <% ' CONTROLLA SE SI E' IDENTIFICATI IF session("amministratore")<>ResponsEnd I%> < <head> <title>GES< < <p><b><font face="Verdana" size="4"<form <table border="0" cellpaddin <tr> <td width="19%"><fo name="titolo" size="20"></font></td> </tr> <td width="19%"><font face="Verdana" size="2">Conews:</font></td> <td width="81%"><textarea rowcols="53"></textarea></t </ <tr> <td width="19%"><font face="Verdana" size="2">Autore news <td width="81%"><font name= </ <t <td width="100%tyvalue="Reimposta" name="B2"></font></td> </tr> </form> <Gestione delle news</b></font></a></p> </body> </html>

Page 31: [E-Book ITA] Creare Un Sito in ASP - Aranzulla

© Salvatore Aranzulla – Trucchi, consigli e suggerimenti per il tuo portale in ASP! http://salvatore-aranzulla.splinder.it – http://www.hardwaremax.it

Pagina 31 di 162

gina “News_DB.asp”, che verrà utilizzata per

CONTROLLA SE SI E' IDENTIFICATI then

esponse.Redirect "index.asp"

html>

EWS</title> /head>

p><b><font face="Verdana" size="4">&gt; Gestione News</font></b></p> .inc" -->

EL DATABASE rosoft Access Driver (*.mdb)};dbq=" & server.mappath("/mdb-

ase/database.mdb")

TROLLA SE TUTTI I CAMPI SONO STATI COMPILATI equest("autore")) = 0 or Len(Request("titolo")) = 0 or

contenuto")) = 0 then ATI!

hr>

hr>

lse OMPILATI

one = Request.QueryString("tipo")

ecSet = Server.CreateObject("ADODB.Recordset")

Y AL DATABASE

zione = "aggiungi" then E AGGIUNGERE LA NEWS

ELECT * FROM NEWS" lse

Come si nota il modulo porta alla paaggiungere ma anche per modificare le news, ecco il suo codice: <% ' IF session("amministratore")<>trueREnd IF %> < <head> <title>GESTIONE N< <body> <<!-- #include file = "../adovbs<% ' PERCORSO Durl_DB = "driver={Micdatab Set Conn = Server.CreateObject("ADODB.Connection") conn.Open url_DB ' CONIF Len(RLen(Request("' CAMPI NON COMPIL%> <<p align="center"><font face="Verdana" size="4"><b>Campi non compilati!</b></font></p> <<% E' CAMPI C ' RICEVE L'OPERAZIONE DA SVOLGERE (AGGIUNGERE/MODIFICARE NEWS) operazi Set R ' IN BASE ALL'OPERAZIONE CREA LA QUER IF opera' DEVSQL = "Se

Page 32: [E-Book ITA] Creare Un Sito in ASP - Aranzulla

© Salvatore Aranzulla – Trucchi, consigli e suggerimenti per il tuo portale in ASP! http://salvatore-aranzulla.splinder.it – http://www.hardwaremax.it

Pagina 32 di 162

DIFICARE LA NEWS HERE ID = " & Request.Querystring("id") &""

ecSet.Open SQL, Conn, adOpenStatic, adLockOptimistic

n

SE SI AGGIUNGE LA NEWS INSERISCE LA DATA CORRENTE

AGGIORNA E CHIUDE IL DB

et.Close

eguita ente!</b></font></p>

= Nothing

e_news.asp"><font face="Verdana" size="2"><b>Torna alla

re la

.Redirect "index.asp"

' DEVE MOSQL = "SELECT * FROM NEWS WEnd IF R ' OPERAZIONE : AGGIUNGI NEWS IF operazione = "aggiungi" theRecSet.Addnew ' RecSet("data") = date() End IF RecSet("titolo") = Request.Form("titolo") RecSet("autore") = Request.Form("autore") RecSet("contenuto") = Replace(Request.Form("contenuto"), chr(13), "<br>") ' RecSet.Update RecSSet RecSet = Nothing %> <hr> <p align="center"><font face="Verdana" size="4"><b>Operazione escorrettam<hr> <% End IF Conn.Close Set Conn %> <p><a href="GestionGestione delle news</b></font></a></p> </body> </html> Creiamo adesso la pagina “Modifica_news.asp”, con un modulo per modificanews: <% ' CONTROLLA SE SI E' IDENTIFICATI IF session("amministratore")<>true then ResponseEnd IF %> <html>

Page 33: [E-Book ITA] Creare Un Sito in ASP - Aranzulla

© Salvatore Aranzulla – Trucchi, consigli e suggerimenti per il tuo portale in ASP! http://salvatore-aranzulla.splinder.it – http://www.hardwaremax.it

Pagina 33 di 162

head> TIONE NEWS</title>

/head>

body> #include file = "../adovbs.inc" -->

DEL DATABASE icrosoft Access Driver (*.mdb)};dbq=" & server.mappath("/mdb-

ase/database.mdb")

Set RecSet = Server.CreateObject("ADODB.Recordset") ' PRELEVA I DATI DELLA NEWS SELEZIONATA SQL = "SELECT * FROM NEWS WHERE ID = " & Request.QueryString("id") &"" RecSet.Open SQL, Conn, adOpenStatic, adLockOptimistic ' PASSA ALLA PAGINA "NEWS_DB.ASP" INOLTRE L'ID DELLA NEWS SELEZIONATA %> <p><b><font face="Verdana" size="4">&gt; Modifica News</font></b></p> <form method="POST" action="News_DB.asp?tipo=modifica&id=<%=RecSet("id")%>"> <table border="0" cellpadding="0" cellspacing="0" width="100%"> <tr> <td width="19%"><font face="Verdana" size="2">Titolo news:</font></td> <td width="81%"><font face="Verdana" size="2"><input type="text" name="titolo" size="20" value="<%=RecSet("titolo")%>"> - <b><%=RecSet("data")%></b></font></td> </tr> <tr> <td width="19%"><font face="Verdana" size="2">Contenuto news:</font></td> <td width="81%"><textarea rows="7" name="contenuto" cols="53"><%=Replace(RecSet("contenuto"), "<br>", chr(13))%></textarea></td> </tr> <tr> <td width="19%"><font face="Verdana" size="2">Autore news:</font></td> <td width="81%"><font face="Verdana" size="2"><input type="text" name="autore" size="20" value="<%=RecSet("autore")%>"></font></td> </tr> <tr> <td width="100%" colspan="2"><font face="Verdana" size="2"><input type="submit" value="Modifica news" name="B1"><input type="reset" value="Reimposta" name="B2"></font></td> </tr> </table> </form> <p><a href="Gestione_news.asp"><font face="Verdana" size="2"><b>Torna alla Gestione delle news</b></font></a></p>

<<title>GES< <<!-- <% ' PERCORSOurl_DB = "driver={Mdatab Set Conn = Server.CreateObject("ADODB.Connection") conn.Open url_DB

Page 34: [E-Book ITA] Creare Un Sito in ASP - Aranzulla

© Salvatore Aranzulla – Trucchi, consigli e suggerimenti per il tuo portale in ASP! http://salvatore-aranzulla.splinder.it – http://www.hardwaremax.it

Pagina 34 di 162

</html> <% RecSet.Close

>

ome detto precedentemente tutti i dati del modulo vengono poi passati alla pagina “Ne s

</body>

Conn.Close Set Conn = Nothing % C

w _DB.asp”, che aggiornerà in questo caso i dati della news.

Page 35: [E-Book ITA] Creare Un Sito in ASP - Aranzulla

© Salvatore Aranzulla – Trucchi, consigli e suggerimenti per il tuo portale in ASP! http://salvatore-aranzulla.splinder.it – http://www.hardwaremax.it

Pagina 35 di 162

Segnala sito ad un amico!

di sponsorizzazione è il passa parola, vediamo come creare no script ASP per permettere ai visitatori del nostro sito di segnalarlo a loro amici...

a sua realizzazione richiede la creazione di due pagine:

• Segnala.asp, nella quale appare un modulo con il messaggio che verrà inviato n i dati dell’utente e quelli dell’amico.

• Segnala_Invia.asp, che invierà l’e-mail e ringrazierà il nostro utente per la segnalazione.

Ecco il codice della pagina “Segnala.asp”: <html> <head> <title>SEGNALA SITO</title> </head> <body> <p><b><font face="Verdana" size="4">&gt; Segnala ad un amico</font></b></p>

<table border="0" cellpadding="0" cellspacing="0" width="100%">

<td width="20%" bgcolor="#D3DFE4"><font face="Verdana" size="2">Tua

<td width="80%" bgcolor="#D3DFE4"><input type="text" name="mittente"

<td width="20%" bgcolor="#D3DFE4"><font face="Verdana" size="2">E-mail amico:</font></td>

size="20"></td>

<tr>

size="2">Testo:</font></td> <td width="80%" bgcolor="#D3DFE4"><textarea rows="7" name="testo"

">IL MIO SITO è un portale creato grazie ai consigli sull'ASP di Salvatore ranzulla

/td>

Capitolo 3

Una delle principali forme u L

e che dovrà essere compilato co

<form method="POST" action="Segnala_Invia.asp">

<tr>

E-mail:</font></td>

size="20"></td> </tr> <tr>

<td width="80%" bgcolor="#D3DFE4"><input type="text" name="destinatario"

</tr>

<td width="20%" bgcolor="#D3DFE4"><font face="Verdana"

cols="43Ahttp://www.sito.it</textarea>< </tr> <tr>

Page 36: [E-Book ITA] Creare Un Sito in ASP - Aranzulla

© Salvatore Aranzulla – Trucchi, consigli e suggerimenti per il tuo portale in ASP! http://salvatore-aranzulla.splinder.it – http://www.hardwaremax.it

Pagina 36 di 162

<td width="100%" colspan="2" bgcolor="#D3DFE4"><input type="submit" egnala sito!" name="B1"></td>

tr> </table>

p>&nbsp;</p>

/html>

di semplice codice HTML, il tutto creerà un modulo con vari campi (Tua Email,

value="S </ </form> < </body> < Si tratta

Email Amico e Testo del messaggio):

L’unica cosa da modificare in questa pagina è il messaggio che verrà inviato all’amico

el nostro sito e il nostro indirizzo,

he:

me="testo" cols="43">IL MIO SITO è un portale creato grazie SP di Salvatore Aranzulla

isitatore potrà modificare il messaggio, ad esempio aggiungendo

ote, links o altro.

Segnala_Invia.asp”, ecco il suo codice:

d> GNALA SITO</title>

del visitatore: inseriamo una descrizione d

modificando le seguenti rig

<textarea rows="7" naai consigli sull'Ahttp://www.sito.it</textarea>

In qualsiasi modo il v

altre n

Il modulo viene inviato alla pagina “

<html> <<

heatitle>SE

</head>

Page 37: [E-Book ITA] Creare Un Sito in ASP - Aranzulla

© Salvatore Aranzulla – Trucchi, consigli e suggerimenti per il tuo portale in ASP! http://salvatore-aranzulla.splinder.it – http://www.hardwaremax.it

Pagina 37 di 162

body> <%

' CONTROLLA PRIMA SE TUTTI I CAMPI SONO STATI COMPILATI CORRETTAMENTE

IF Instr(Request.Form("mittente"), "@") = 0 or Instr(Request.Form("mittente"), ".") = 0 or Instr(Request.Form("destinatario"), "@") = 0 or Instr(Request.Form("destinatario"), "@") = 0 or Request.Form("testo") = "" then ' NON TUTTI I CAMPI SONO STATI COMPILATI %> <hr> <p align="center"><font face="Verdana" size="4"><b>Compila tutti i campi!</b></font></p> <hr> <% ' ALTRIMENTI ELSE ' SI IMPOSTA PER INVIARE L'EMAIL DI SEGNALAZIONE: ' UN OGGETTO PER L'EMAIL DI SEGNALAZIONE oggetto = "Segnalazione sito" Set Email = CreateObject("CDONTS.NewMail") ' MITTENTE Email.From = Request.Form("mittente") ' DESTINATARIO Email.To = Request.Form("destinatario") ' OGGETTO Email.Subject = oggetto ' FORMATO EMAIL (FORMATO: TESTO) Email.MailFormat = 1 ' TESTO EMAIL Email.Body = Request.Form("testo") Email.Send Set Email = Nothing %> <hr> <p align="center"><font face="Verdana" size="4"><b>Grazie per averci segnalato ai tuoi amici!</b></font></p> <hr> <% END IF %> </body>

<

Page 38: [E-Book ITA] Creare Un Sito in ASP - Aranzulla

© Salvatore Aranzulla – Trucchi, consigli e suggerimenti per il tuo portale in ASP! http://salvatore-aranzulla.splinder.it – http://www.hardwaremax.it

Pagina 38 di 162

Basterà quindi inserire nelle pagine del nostro sito il link alla pagina “Segnala.asp”

nostri visitatori il nostro sito ai loro amici!

</html>

per far segnalare ai

Page 39: [E-Book ITA] Creare Un Sito in ASP - Aranzulla

© Salvatore Aranzulla – Trucchi, consigli e suggerimenti per il tuo portale in ASP! http://salvatore-aranzulla.splinder.it – http://www.hardwaremax.it

Pagina 39 di 162

Capitolo 4

I sondaggi i utenti, per scoprire le

e il tutto in ASP! si può dividere in:

eazione del database

per gestire il sondaggio

del database

cess, versione 2000

ccess e selezioniamo la creazione di un database vuoto:

Può essere alcune volte necessario fare dei sondaggi ai nostrloro abitudini e le loro preferenze, vediamo come gestirLa creazione dello script per il sondaggio

• Cr• Creazione pagina per inserimento/visualizzazione dei risultati dei sondaggi • Pagine

Creazione Per la creazione del database ho usato il famoso Microsoft Ac(presente nel pacchetto Microsoft Office). Avviamo A

Quindi diamo un nome al nostro database, che conterrà i voti degli salviamolo col nome di “database.mdb”.

utenti, e

uindi una tabella in visualizzazione struttura: Creiamo q

rrà il voto dell’utente: ... con il seguente campo, che conte

• Voto – Tipo campo: Testo

a della creazione della

a ”, un contatore, se si vuole si può anche lasciare, comunque non verrà

Chiudiamo la creazione della tabella (con la X in alto a destrtabella) e, rispondendo affermativamente alle domande che ci verranno poste, salviamola col nome di “Sondaggio”. Verrà creata in automatico da Access anche lcolonna “ID

.utilizzata

Page 40: [E-Book ITA] Creare Un Sito in ASP - Aranzulla

© Salvatore Aranzulla – Trucchi, consigli e suggerimenti per il tuo portale in ASP! http://salvatore-aranzulla.splinder.it – http://www.hardwaremax.it

Pagina 40 di 162

ne pagina per inserimento/visualizzazione dei risultati dei

il nostro sondaggio multiplo avrà un massimo di odulo attraverso il quale sarà possibile dare la

erenza:

Creaziosondaggi Iniziamo innanzitutto stabilendo che

poste. Creiamo quindi il mcinque rispropria pref

cco il suo codice html:

on="Sondaggio_Vai.asp"> rder="0" cellpadding="0" cellspacing="0" width="24%">

<tr> idth="100%" bgcolor="#C3D3DB" colspan="2">

="Verdana" "2">Sondaggio</font></b></td>

pan="2" bgcolor="#EDF1F3"><font face="Verdana" ize="2">Ti

<tr> e="1"><input

o" name="voto"></font></td> 1F3"><font face="Verdana" size="1">Si,

moltissimo</font></td>

erdana" size="1"><input pe="radio" value="secondo" name="voto"></font></td>

F1F3"><font face="Verdana" size="1">Si, per t></td>

<tr> a" size="1"><input

lue="terzo" name="voto"></font></td> ="89%" bgcolor="#EDF1F3"><font face="Verdana"

">No</font></td>

E <form method="POST" acti <table bo <td w <p align="center"><b><font facesize= </tr> <tr> <td width="100%" colss piace programmare in ASP?</font></td> </tr> <td width="11%" bgcolor="#EDF1F3"><font face="Verdana" siztype="radio" value="prim <td width="89%" bgcolor="#EDF </tr> <tr> <td width="11%" bgcolor="#EDF1F3"><font face="Vty <td width="89%" bgcolor="#ED lavoro</fon </tr> <td width="11%" bgcolor="#EDF1F3"><font face="Verdantype="radio" va <td widthsize="1

Page 41: [E-Book ITA] Creare Un Sito in ASP - Aranzulla

© Salvatore Aranzulla – Trucchi, consigli e suggerimenti per il tuo portale in ASP! http://salvatore-aranzulla.splinder.it – http://www.hardwaremax.it

Pagina 41 di 162

<tr> a" size="1"><input

/font></td> erdana" size="1">No, ma

sono obbligato</font></td>

<td width="11%" bgcolor="#EDF1F3"><font face="Verdana" size="1"><input alue="quinto" name="voto"></font></td>

td width="89%" bgcolor="#EDF1F3"><font face="Verdana" size="1">Odio

tr>

td width="100%" colspan="2" bgcolor="#EDF1F3"><font face="Verdana" "1"><input type="submit" value="Vota!" name="B1"></font></td>

1F3"> <p align="center"><font face="Verdana" size="1"><a

ref="Sondaggio_Vai.asp">Voti

</tr>

ome si vede i dati, vengono inviati da questo modulo alla pagina à il risultato al database e visualizzerà i risultati

reato un “pulsante di opzione”, che in base alla sposta scelta ha un valore differente (primo, secondo, terzo, quarto e quinto).

te un link sempre alla pagina “Sondaggio_Vai.asp”, per la isualizzazione diretta dei risultati.

assiamo adesso alla pagina “Sondaggio_Vai.asp”. Ecco il suo codice:

head>

!-- #INCLUDE FILE="adovbs.inc" -->

PERCORSO DEL DATABASE =" & server.mappath("/mdb-

et Conn = Server.CreateObject("ADODB.Connection")

</tr> <td width="11%" bgcolor="#EDF1F3"><font face="Verdantype="radio" value="quarto" name="voto">< <td width="89%" bgcolor="#EDF1F3"><font face="V </tr> <tr> type="radio" v <l'ASP</font></td> </ <tr> <size= </tr> <tr> <td width="100%" colspan="2" bgcolor="#EDF h sondaggio</a></font></td> </table> </form> C“Sondaggio_Vai.asp”, che aggiungercomplessivi del sondaggio. Viene criInfine è presenv P <html> <<title>SONDAGGI</title> </head> <body> <<% ' url_DB = "driver={Microsoft Access Driver (*.mdb)};dbqdatabase/database.mdb") Sconn.Open url_DB

Page 42: [E-Book ITA] Creare Un Sito in ASP - Aranzulla

© Salvatore Aranzulla – Trucchi, consigli e suggerimenti per il tuo portale in ASP! http://salvatore-aranzulla.splinder.it – http://www.hardwaremax.it

Pagina 42 di 162

APRE LA CONNESSIONE AL DATABASE PER AGGIUNGERE IL VOTO OTANDO)

Request.Form("voto") <> "" Then

et RecSet = Server.CreateObject("ADODB.Recordset")

AGGIUNGE IL VOTO AL DATABASE

oto")

DATABASE E CHIUDE LA CONNESSIONE ecSet.Update ecSet.Close

RE SE CI SONO VOTI

QL = "SELECT Count(*) FROM Sondaggio" , adLockOptimistic

NON CI SONO VOTI 0 then

>

CI SONO VOTI:

p><b><font face="Verdana" size="4">Ecco i risultati del sondaggio &quot;Ti piace

et RecSet = Server.CreateObject("ADODB.Recordset")

en SQL, Conn, adOpenStatic, adLockOptimistic

umero_voti_primo = RecSet(0)

STA

' ' (SE SI STA VIF SSQL = "SELECT * FROM Sondaggio" RecSet.Open SQL, Conn, adOpenStatic, adLockOptimistic ' RecSet.Addnew RecSet("voto") = Request.Form("v ' AGGIORNA ILRREnd IF ' APRE LA CONNESSIONE AL DATABASE PER CONTROLLA Set RecSet = Server.CreateObject("ADODB.Recordset") SRecSet.Open SQL, Conn, adOpenStatic ' IF RecSet(0) = RecSet.Close %<p><b><font face="Verdana" size="4">Nessun voto presente!</font></b></p><% ' Else %> <programmare in ASP?&quot;:</font></b></p> <table border="0" cellpadding="2" width="93%"> <% ' PRELEVIAMO IL NUMERO DEI VOTI ALLA PRIMA RISPOSTA SSQL = "SELECT COUNT(*) FROM Sondaggio where voto = 'primo'" RecSet.Op ' RESTITUISCE IL NUMERO DEI VOTI n RecSet.Close ' PRELEVIAMO IL NUMERO DEI VOTI ALLA SECONDA RISPO

Page 43: [E-Book ITA] Creare Un Sito in ASP - Aranzulla

© Salvatore Aranzulla – Trucchi, consigli e suggerimenti per il tuo portale in ASP! http://salvatore-aranzulla.splinder.it – http://www.hardwaremax.it

Pagina 43 di 162

et RecSet = Server.CreateObject("ADODB.Recordset") to = 'secondo'"

et.Open SQL, Conn, adOpenStatic, adLockOptimistic

ecSet(0)

IAMO IL NUMERO DEI VOTI ALLA TERZA RISPOSTA

T(*) FROM Sondaggio where voto = 'terzo'"

voti_terzo = RecSet(0)

ecordset") ELECT COUNT(*) FROM Sondaggio where voto = 'quarto'"

Open SQL, Conn, adOpenStatic, adLockOptimistic

I VOTI

kOptimistic

RESTITUISCE IL NUMERO DEI VOTI _voti_quinto = RecSet(0)

oti_totale = int(numero_voti_primo + numero_voti_secondo + ro_voti_terzo + numero_voti_quarto + numero_voti_quinto)

SSO CHE ABBIAMO IL NUMERO DEI VOTI PER OGNI RISPOSTA CENTUALE DEI VOTI

SSQL = "SELECT COUNT(*) FROM Sondaggio where voRecS ' RESTITUISCE IL NUMERO DEI VOTI numero_voti_secondo = R RecSet.Close ' PRELEV Set RecSet = Server.CreateObject("ADODB.Recordset") SQL = "SELECT COUNRecSet.Open SQL, Conn, adOpenStatic, adLockOptimistic ' RESTITUISCE IL NUMERO DEI VOTI numero_ RecSet.Close ' PRELEVIAMO IL NUMERO DEI VOTI ALLA QUARTA RISPOSTA Set RecSet = Server.CreateObject("ADODB.RSQL = "SRecSet. ' RESTITUISCE IL NUMERO DEnumero_voti_quarto = RecSet(0) RecSet.Close ' PRELEVIAMO IL NUMERO DEI VOTI ALLA QUINTA RISPOSTA Set RecSet = Server.CreateObject("ADODB.Recordset") SQL = "SELECT COUNT(*) FROM Sondaggio where voto = 'quinto'" RecSet.Open SQL, Conn, adOpenStatic, adLoc ' numero RecSet.Close ' SOMMA VOTI numero_vnume ' ADE' CREIAMO LA PER

Page 44: [E-Book ITA] Creare Un Sito in ASP - Aranzulla

© Salvatore Aranzulla – Trucchi, consigli e suggerimenti per il tuo portale in ASP! http://salvatore-aranzulla.splinder.it – http://www.hardwaremax.it

Pagina 44 di 162

e_primo = FormatPercent((numero_voti_primo / numero_voti_totale), 1) ercentuale_secondo = FormatPercent((numero_voti_secondo / numero_voti_totale),

ntuale_terzo = FormatPercent((numero_voti_terzo / numero_voti_totale), 1) quarto = FormatPercent((numero_voti_quarto / numero_voti_totale), 1)

FormatPercent((numero_voti_quinto / numero_voti_totale), 1)

VA LA PARTE INTERA DELLA PERCENTUALE CHE CORRISPONDERA' AL NUMERO I PIXEL

ntuale_primo, 1, 2))*2 arra_secondo = (Mid(percentuale_secondo, 1, 2))*2

barra_ tuale_terzo, 1, 2))*2 bar _barra_ 2 VISUALIZZA QUINDI I GRAFICI E LE PERCENTUALI

<td width="24%" bgcolor="#E3EBEE"><font face="Verdana" size="2">Si, moltissimo</font></td>

E"><font face="Verdana" size="2"><img order="0" src="images/01.jpg" width="<%=barra_primo%>" height="10">

voro</font></td>

%=percentuale_secondo%>%</font></td> < >

<tr> <td width=

<td width="76%" bgcolor="#E3EBEE"><font face="Verdana" size="2"><img border="0" src="images/03.jpg" width="<%=barra_terzo%>" height="10"> - <%=percentuale_terzo%>%</font></td> </tr> <tr> <td width="24%" bgcolor="#E3EBEE"><font face="Verdana" size="2">No, ma sono obbligato</font></td> <td width="76%" bgcolor="#E3EBEE"><font face="Verdana" size="2"><img border="0" src="images/04.jpg" width="<%=barra_quarto%>" height="10"> - <%=percentuale_quarto%>%</font></td> </tr> <tr> <td width="24%" bgcolor="#E3EBEE"><font face="Verdana" size="2">Odio l'ASP</font></td>

percentualp1) percepercentuale_percentuale_quinto = ' TROD' DELLA BARRA DEL GRAFICO (L'IMMAGINE) E LA MOLTIPLICA PER DUE (ALTRIMENTI LE BARRE SARANNO MOLTO PICCOLE) barra_primo = (Mid(perceb

terzo = (Mid(percenra quarto = (Mid(percentuale_quarto, 1, 2))*2

quinto = (Mid(percentuale_quinto, 1, 2))*

' %> <tr>

<td width="76%" bgcolor="#E3EBEb - <%=percentuale_primo%>%</font></td> </tr> <tr> <td width="24%" bgcolor="#E3EBEE"><font face="Verdana" size="2">Si, per la <td width="76%" bgcolor="#E3EBEE"><font face="Verdana" size="2"><img border="0" src="images/02.jpg" width="<%=barra_secondo%>" height="10"> - < /tr

"24%" bgcolor="#E3EBEE"><font face="Verdana"

size="2">No</font></td>

Page 45: [E-Book ITA] Creare Un Sito in ASP - Aranzulla

© Salvatore Aranzulla – Trucchi, consigli e suggerimenti per il tuo portale in ASP! http://salvatore-aranzulla.splinder.it – http://www.hardwaremax.it

Pagina 45 di 162

d width="76%" bgcolor="#E3EBEE"><font face="Verdana" size="2"><img ra_quinto%>" height="10"> -

%=percentuale_quinto%>%</font></td>

<tr> ><font face="Verdana"

voti totali:</b></font></td> <td width="76%" bgcolor="#C3D3DB"><font face="Verdana"

nd IF

>

% e

t = Nothing >

a notare è la creazione dei grafici a barra, per la loro realizzazione ci servono cinque ato 01.jpg, 02.jpg, 03.jpg, 04.jpg e 05.jpg) che

ranno avere le

el zza di 10 pixel (anche se poi la larghezza verrà data dallo script in base

re differente

<tborder="0" src="images/02.jpg" width="<%=bar< </tr> <td width="24%" bgcolor="#C3D3DB"size="2"><b>Numero size="2"><b><%=numero_voti_totale%></b></font></td> </tr> </table> <% E%> <p>&nbsp;</p> </body </html> <Conn.ClosSet Conn = Nothing Set RecSe% Dimmagini (che noi abbiamo chiamabbiamo inserito dentro la cartella “images”. Queste immagini dovseguenti caratteristiche:

• Altezza di 10 pix• Larghe

alla percentuale e al numero di risposte) • Colo

E’ possibile comunque scaricate il tutto dal mio sito http://salvatore-aranzulla.splinder.it

re sondaggi molto spesso e quindi di dover cancellare, dopo aver , i risultati del precedente sondaggio dal nostro database, può risultare

ano, ma perché non creare uno elli i precedenti dati? Vediamo come!

due file (che verranno inseriti in

Pagine per gestire il sondaggio Può capitare di fapreso notaun’operazione molto lunga e noiosa se eseguita a mscript che canc Creiamo una cartella “admin” e creiamo adesso questa cartella):

Page 46: [E-Book ITA] Creare Un Sito in ASP - Aranzulla

© Salvatore Aranzulla – Trucchi, consigli e suggerimenti per il tuo portale in ASP! http://salvatore-aranzulla.splinder.it – http://www.hardwaremax.it

Pagina 46 di 162

x.asp (Che identifica l’utente come amministratore) ne_Sondaggio.asp (Per eliminare i dati del sondaggio dal database)

ice della pagina “index.asp”:

• Inde• Gestio

Ecco il cod

Page 47: [E-Book ITA] Creare Un Sito in ASP - Aranzulla

© Salvatore Aranzulla – Trucchi, consigli e suggerimenti per il tuo portale in ASP! http://salvatore-aranzulla.splinder.it – http://www.hardwaremax.it

Pagina 47 di 162

I DATI INSERITI SONO ESATTI

NAME AMMINISTRATORE e = "admin"

RE dmin"

Lcase(Request.Form("username")) = Lcase(username) and

RATORE STIONE_SONDAGGIO.ASP"

esponse.Redirect "Gestione_Sondaggio.asp"

f

le> >

n="center">&nbsp;</p>

thod="POST" action="index.asp">

v align="center"> ter>

rder="0" cellpadding="0" cellspacing="0" width="39%">

><font face="Verdana" size="2">Username:</font></td> <td width="50%"><input type="text" name="username" size="20"></td>

<td width="50%"><font face="Verdana" size="2">Password:</font></td> width="50%"><input type="password" name="password"

ize="20"></td>

"100%" colspan="2" height="5"> </td>

</tr> <tr> <td width="100%" colspan="2"> <p align="center"><input type="submit" value="Invia" name="B1"><input type="reset" value="Reimposta" name="B2"></td>

<% ' CONTROLLA SE ' USERusernam ' PASSWORD AMMINISTRATOpassword = "a IFLcase(Request.Form("password")) = Lcase(password) then ' I DATI SONO ESATTI E SI VIENE IDENTIFICATI COME AMMINIST' E PORTATI NELLA PAGINA "GE session("amministratore") = true R End i%> <html> <head> <title>GESTIONE SONDAGGIO</tit</head <body> <p alig<p align="center"><b><font size="4" face="Verdana">Gestione Sondaggio!</font></b></p><form me <di <cen <table bo <tr> <td width="50%" </tr> <tr> <td s </tr> <tr> <td width=

Page 48: [E-Book ITA] Creare Un Sito in ASP - Aranzulla

© Salvatore Aranzulla – Trucchi, consigli e suggerimenti per il tuo portale in ASP! http://salvatore-aranzulla.splinder.it – http://www.hardwaremax.it

Pagina 48 di 162

</center> </div> </form>

"center">&nbsp;</p>

cco invece il codice della pagina “Gestione_Sondaggio.asp”:

CONTROLLA SE SI E' IDENTIFICATI IF session("amministratore")<>true then Response.Redirect "index.asp" End IF %> <html>

itle> /head>

body><p><b><font size="4" face="Verdana">&gt; Cancella dati ggio!</font></b></p>

%

yString("operazione")

cess Driver (*.mdb)};dbq=" & server.mappath("/mdb-ase/database.mdb")

RRENTE operazione = "cancella" then

et RecSet = Server.CreateObject("ADODB.Recordset") ELECT * FROM Sondaggio"

tic, adLockOptimistic

CONTROLLA SE ESISTONO DEI DATI NEL DATABASE .Eof = False Then

</tr> </table>

<p align= </body> </html> E<% '

<head> <title>GESTIONE NEWSLETTER</t< <sonda <!-- #INCLUDE FILE="../adovbs.inc" --> <' LEGGE QUELLO CHE DEVE FARE operazione = Request.Quer ' PERCORSO DEL DATABASE url_DB = "driver={Microsoft Acdatab Set Conn = Server.CreateObject("ADODB.Connection") conn.Open url_DB ' OPERAZIONE: CANCELLA I DATI DEL SONDAGGIO COIF SSQL = "SRecSet.Open SQL, Conn, adOpenSta ' If RecSet ' CANCELLA TUTTI I DATI Do Until RecSet.Eof

Page 49: [E-Book ITA] Creare Un Sito in ASP - Aranzulla

© Salvatore Aranzulla – Trucchi, consigli e suggerimenti per il tuo portale in ASP! http://salvatore-aranzulla.splinder.it – http://www.hardwaremax.it

Pagina 49 di 162

ecSet.Delete

nd IF

UDE LA CONNESSIONE

.Close

STIONE_SONDAGGIO?OPERAZIONE=OK" RRA' VISUALIZZATO UN MESSAGGIO DI OPERAZIONE

TAMENTE

azione=ok"

hr> ign="center"><font face="Verdana" size="3">Sei sicuro di voler cancellare i

ati del sondaggio corrente?<br> ggio.asp?operazione=cancella">Si,

razione = "ok" then >

p align="center"><font face="Verdana" size="3">Operazione eseguita

%

onn.Close = Nothing

et RecSet = Nothing

to, si potranno far cancellare tutti i dati del sondaggio a “Sondaggio_Vai.asp”, precedentemente creata) con un

emplice click!

RRecSet.Update RecSet.Movenext Loop E ' CHIRecSet.Close Conn ' TI PORTA NELLA PAGINA "GE' DOVE VE' COMPIUTA CORRET Response.Redirect "Gestione_Sondaggio.asp?oper ElseIF operazione = "" then %> <<p ald<b><a href="Gestione_Sondacancellali!</a></b></font></p> <hr> <% ElseIF ope%<hr> <correttamente!</font></p> <hr> <End IF CSet ConnS%> <p align="center">&nbsp;</p> </body> </html> Con questa pagina, appuncorrente (visibili dalla pagins

Page 50: [E-Book ITA] Creare Un Sito in ASP - Aranzulla

© Salvatore Aranzulla – Trucchi, consigli e suggerimenti per il tuo portale in ASP! http://salvatore-aranzulla.splinder.it – http://www.hardwaremax.it

Pagina 50 di 162

Sito multi lingua over creare un sito in più lingue (ad esempio italiano e inglese) e

i di dover creare il doppio delle pagine (pagine sito in italiano e pagine sito in é non affidarci al nostro ASP per dimezzare le pagine e creare allo

o tempo un sito multi lingua? Utilizzeremo in questa lezione le Session.

mo innanzitutto una pagina che ci permetta di scegliere la lingua del sito:

Capitolo 5

Può capitare di dquindinglese), ma... perchstess Creia

Si tratta di una semplice pagina con due link (Italiano:

p?lingua=italiano”; Inglese: “lingua.asp?lingua=inglese”), che

sp” che imposterà la lingua alle pagine:

% QUERYSTRING

))

A SESSION COL VALORE PASSATO ession("lingua") = lingua

TA L'UTENTE NELL'HOME PAGE DEL SITO IN ASP (AD ESEMPIO INDEX.ASP) Redirect "index.asp"

>

questo modo abbiamo creato le basi del nostro sistema multi lingua, adesso

multi lingua dovrà essere strutturata così:

<h l <head> <title>SIT tle> </head> <body> <% ' SI RICHEDE LA LINGUA lingua = session("lingua")

“lingua.aspuntano alla pagina “lingua.asp” Ecco il codice della pagina “lingua.a <' RICHIEDE LA LINGUA DALLA lingua = Lcase(Request.QueryString("lingua" ' IMPOSTA Ls ' PORResponse.% Invediamo come creare le pagine multi lingua. Una pagina

tm >

O MULTI LINGUA</ti

Page 51: [E-Book ITA] Creare Un Sito in ASP - Aranzulla

© Salvatore Aranzulla – Trucchi, consigli e suggerimenti per il tuo portale in ASP! http://salvatore-aranzulla.splinder.it – http://www.hardwaremax.it

Pagina 51 di 162

A SESSION E' UGUALE A ITALIANO O E' VUOTA

' VIENE VISUALIZZATA LA PARTE IN ITALIANO

"italiano" or lingua = "" then >

... ALTRIMENTI LA PARTE IN INGLESE

> WE S<%' SE LAIN QUESTA PAGINA, PORTA L'UTENTE IN QUESTA STESSA PAGINA, PERO' CON LA SESSION

"italiano"

lse

nd IF

/body>

ssion, verrà visualizzata la parte inglese o la arte in italiano della pagina.

e si deve invece tradurre la pagina in più lingue si può preferire:

title>SITO MULTI LINGUA</title> /head>

ngua = session("lingua")

VUOTA IMPOSTA L’ITALIANO lingua = "" then

' ----------------------------------

' SE LA LINGUA DELL'

IF lingua =%SITO ITALIANO <% ' elseIF lingua = "inglese" then %

B ITE ENGLISH

LINGUA SELEZIONATA NON E' PRESENTE ' ' ' "LINGUA" IMPOSTATA CON IL VALORE DI E session("lingua") = "italiano" Response.Redirect "pagina_due_lingue.asp" E%> < </html> In questo modo in base al valore della sep S <html> <head> << <body> <% ' SI RICHEDE LA LINGUA li ' SE LA LINGUA E’IFlingua = "italiano" end if

Page 52: [E-Book ITA] Creare Un Sito in ASP - Aranzulla

© Salvatore Aranzulla – Trucchi, consigli e suggerimenti per il tuo portale in ASP! http://salvatore-aranzulla.splinder.it – http://www.hardwaremax.it

Pagina 52 di 162

elect Case lingua

ase "italiano":

e "inglese": >

":

ITO FRANCESE

>

na, porta l’utente nella stessa pagina, con la session

End Select

----------------------------------

La variabile da esaminare viene passata tramite Select Case lingua

la

S C%> SITO ITALIANO <% Cas%WEB SITE ENGLISH <% Case "francese%>S<% Case "tedesco": %Sito tedesco <% Case else: ' Se la lingua che si è scelto non ' esiste in questa pagi' ' "lingua" impostata su "italiano" session("lingua") = "italiano" Response.Redirect "pagina_piu_lingue.asp"

' %>

/body> < </html> In questo caso abbiamo, quindi, utilizzato un costrutto “Case Select” e non molte

te fra loro. Il funzionamento del costrutto “Case Select” è molto condizioni concatenasemplice:

•• Poi è come se venissero fatte delle condizioni:

o Se il valore della variabile è uguale a italiano (Case "italiano") visualizza il sito italiano ecc…

o Se la lingua (Case else) selezionata non è presente si viene riportati nelstessa pagina, con la session “lingua” impostata a “italiano”

Page 53: [E-Book ITA] Creare Un Sito in ASP - Aranzulla

© Salvatore Aranzulla – Trucchi, consigli e suggerimenti per il tuo portale in ASP! http://salvatore-aranzulla.splinder.it – http://www.hardwaremax.it

Pagina 53 di 162

apitolo 6

o come realizzarlo in ASP utilizzando il componente AdRotator.

ei banner Creazione pagina per portare l’utente sul sito del banner

zione dei banner utilizzando il componente AdRotator, occorre di testo con i dati dei banner, che poi verranno prelevati a

e dall’oggetto AdRotator (che si collegherà a questo file).

file di testo che conterà i dati dei banner dovrà avere la seguente struttura:

BANNER EIGHT ALTEZZA BANNER

RDO BANNER

RL SITO BANNER 1

NER 1

TESTO CHE APPARIRA' AL PASSAGGIO DEL MOUSE – BANNER 2 PERCENTUALE DI APPARIZIONE DEL BANNER 2 Questo file noi lo abbiamo chiamato “banner.txt”. Di seguito un file “banner.txt” di esempio: REDIRECT ads.asp WIDTH 468 HEIGHT 60

C

Rotazione banner Può capitare di dover creare un sistema di rotazione banner per il nostro sito. Vediam a realizzazione di questo script si può dividere in: L

• Creazione file con i dati dei banner • Creazione pagina per la visualizzazione d•

Creazione file con i dati dei banner Per eseguire la rotadapprima creare un file rotazion Il REDIRECT ads.asp WIDTH LARGHEZZA HBORDER DIMENSIONE BO * URL IMMAGINE BANNER 1 UTESTO CHE APPARIRA' AL PASSAGGIO DEL MOUSE – BANNER 1 PERCENTUALE DI APPARIZIONE DEL BANNER DEL BAN URL IMMAGINE BANNER 2 URL SITO BANNER 2

Page 54: [E-Book ITA] Creare Un Sito in ASP - Aranzulla

© Salvatore Aranzulla – Trucchi, consigli e suggerimenti per il tuo portale in ASP! http://salvatore-aranzulla.splinder.it – http://www.hardwaremax.it

Pagina 54 di 162

http://localhost/banner/banner1.gif

ww.sito1.it isitaci!:D

ttp://www.sito2.it Il sito 50

banner, come si nota fin dall’inizio del file “banner.txt”, hanno la lunghezza di 468 un bordo di 0 pixel.

ue sono i banner inseriti a rotazione, questi hanno una probabilità di apparizione pari

sorizzare due prodotti in uno stesso sito, a dare maggiore importanza alla sponsorizzazione di uno rispetto all’altro. In questo

o venga ponsorizzato di più.

poche parole quindi la prima parte del file (quella prima dell’asterisco) serve a

e banner, sito banner, testo che

ppare posizionandosi sopra il banner, probabilità di apparizione).

Creazione pagina per la visualizzazione dei banner

n il seguente codice:

<%et AdRotator = Server.CreateObject("MSWC.AdRotator")

ONE)

ei banner

!-- #include file = "banner.asp" -->

BORDER 0 *

http://wV50 http://localhost/banner/banner2.gif h

sui PC!

I pixel, la larghezza di 60 pixel e Dal 50 % delle visualizzazioni (numero 50). La probabilità di apparizione è molto importante ad esempio se si vogliono sponmcaso aumenteremo la probabilità di apparizione al prodotto che vogliams

Indefinire i dati dei banner (altezza, larghezza e dimensione bordo). Nella seconda partinvece sono presenti i dati dei banner (url immagine a

Creiamo adesso una pagina che chiameremo “banner.asp” co

S' PRELEVA UN BANNER CASUALMENTE DAL FILE BANNER.TXT (DANDO MAGGIORE IMPORTANZA AI BANNER CON UNA MAGGIORE PROBABILITA' DI VISUALIZZAZI' E LO VISUALIZZA Response.Write(AdRotator.GetAdvertisement("banner.txt")) %> Questa pagina non fa altro che creare l’oggetto AdRotator, collegarsi al file d(banner.txt) e visualizzare un banner. Per visualizzare nelle pagine del nostro sito i banner, nel punto in cui vogliamo farli visualizzare, basterà includere questa pagina, inserendo semplicemente: <

Page 55: [E-Book ITA] Creare Un Sito in ASP - Aranzulla

© Salvatore Aranzulla – Trucchi, consigli e suggerimenti per il tuo portale in ASP! http://salvatore-aranzulla.splinder.it – http://www.hardwaremax.it

Pagina 55 di 162

l’utente nel sito del Rotator, infatti, crea un link, in questo caso, alla pagina “ads.asp” (pagina

sto

stro sito/ads.asp?url=http://sito del banner&image=immagine del banner

quindi creare la pagina “ads.asp”, che preleverà l’url passato e porterà co il suo codice:

A QUERYSTRING "URL"

E NEL ITO DEL BANNER

ssibile integrazione di questo script è con lo script per la visualizzazione di un questo caso si

se.Redirect(url)

sp?url=" & url)

questo modo sopra il sito del banner verrà visualizzato un frame, che ricorda sito esterno al nostro.

si deve tenere conto delle statistiche dei banner isualizzazioni, click e altro), per i quali esistono soluzioni migliori.

Pagine per portare l’utente sul sito del banner Lo script non è ancora completo, manca infatti la pagina che portabanner. Adspecificata nel primo rigo del nostro file banner.txt “REDIRECT ads.asp”) di quetipo: http://no Dobbiamo l’utente nel sito del banner. Ec <% ' PRELEVA L'URL DEL SITO PASSATO DALLurl = Request.QueryString("url") ' SE LA QUERYSTRING "URL" CONTIENE UN VALORE (L'URL) PORTA L'UTENTSIF url <> "" Then Response.Redirect(url) End IF%> Una poframe sopra i siti esterni al nostro (un altro tutorial di questo libro), in modificherà la riga: Respon Con: Response.Redirect("http://nostro sito/sito_esterno.a Inall’utente che sta visitando un Questo è comunque un sistema di rotazione banner molto semplice, che consiglio di usare solo in siti in cui non (v

Page 56: [E-Book ITA] Creare Un Sito in ASP - Aranzulla

© Salvatore Aranzulla – Trucchi, consigli e suggerimenti per il tuo portale in ASP! http://salvatore-aranzulla.splinder.it – http://www.hardwaremax.it

Pagina 56 di 162

7

Creare una newsletter una newsletter per ricordare ai nostri utenti le

erite nel nostro sito. dividere in:

Creazione del database Pagine per la registrazione/eliminazione dalla newsletter

zione Database

, versione 2000 ente nel pacchetto Microsoft Office).

Capitolo

Vediamo in questa lezione come creareultime novità insLa sua costruzione si può

• • • Pagine per l’amministratore del sito

Crea Per la creazione del database ho usato il famoso Microsoft Access(pres Avviamo Access e selezioniamo la creazione di un database vuoto:

Quindi diamo un nome al nostro

molo col nome di “database.mdbdatabase, che conterrà le e-mail degli utenti, e

”. salvia Creiamo quindi una tabella in visualizzazione struttura:

... con il seguente campo, che conterrà le e-mail degli utenti:

po: Testo

eazione della tabella (con la X in alto a destra della creazione della ndendo affermativamente alle domande che ci verranno poste,

me di “Email_Newsletter”. Verrà creata in automatico da Access la colonna “ID”, un contatore, se si vuole si può anche lasciare, comunque non

ne per la registrazione/eliminazione dalla newsletter

• Email – Tipo cam

Chiudiamo la crtabella) e, rispo

mola col nosalviaanche verrà utilizzata.

Pagi

Page 57: [E-Book ITA] Creare Un Sito in ASP - Aranzulla

© Salvatore Aranzulla – Trucchi, consigli e suggerimenti per il tuo portale in ASP! http://salvatore-aranzulla.splinder.it – http://www.hardwaremax.it

Pagina 57 di 162

er la registrazione/cancellazione degli utenti si deve creare un modulo da inserire rie pagine del nostro sito, con un campo di testo in cui inserire la propria e-

ail e sotto due scelte: iscrivimi/cancellami. Ecco il nostro codice HTML:

od="POST" action="Newsletter_Vai.asp"> font face="Verdana" size="2">E-mail: <input type="text" name="email"

ize="20"><br> "iscrivimi" name="operazione" checked>Iscrivimi<input

"radio" value="cancellami" name="operazione">Cancellami put type="submit" value="Invia" name="B1"></font></p>

>

gina “Newsletter_Vai.asp”, ecco il suo codice:

l>

d> title>NEWSLETTER</title>

!-- #INCLUDE FILE="adovbs.inc" -->

AMENTE

IF Len(Request.Form("email")) > 0 then Instr(Request.Form("email"), "@") = 0

hen

<p icor t

hr>

IL COMPILATA CORRETTAMENTE E SI PROCEDE...

PERCORSO DEL DATABASE ss Driver (*.mdb)};dbq=" & server.mappath("/mdb-

Pnelle vam <form meth <p><s <input type="radio" value=type= <in</form I dati verranno inviati alla pa <htm <hea<</head> <body> <<% ' VERIFICA CHE IL CAMPO EMAIL SIA STATO COMPILATO CORRETT

IF Instr(Request.Form("email"), ".") = 0 or T ' EMAIL NON COMPILATA CORRETTAMENTE %>

hr> < al gn="center"><b><font size="4" face="Verdana">E-mail non re ta!</font></b></p>

<<% lse E

' EMA mail = Replace(Request.Form("email"), "'", "''") e

' url_DB = "driver={Microsoft Acce

db") database/database.m Set Conn = Server.CreateObject("ADODB.Connection") conn.Open url_DB ' APRE LA CONNESSIONE AL DATABASE Set RecSet = Server.CreateObject("ADODB.Recordset")

Page 58: [E-Book ITA] Creare Un Sito in ASP - Aranzulla

© Salvatore Aranzulla – Trucchi, consigli e suggerimenti per il tuo portale in ASP! http://salvatore-aranzulla.splinder.it – http://www.hardwaremax.it

Pagina 58 di 162

QL = "SELECT * FROM Email_Newsletter where email = '"& email &"'" tatic, adLockOptimistic

LEGGE L'OPERAZIONE DA SVOLGERE (AGGIUNGERE O ELIMINARE) ione = Request.Form("operazione")

TE: RecSet.Eof then

E L'EMAIL AL DB

ione = "iscrivimi" then ecSet.Addnew

<font size="4" face="Verdana">Grazie per esserti ont></b></p>

nter"><b><font size="4" face="Verdana">E-mail già nt></b></p>

A L'UTENTE operazione = "cancellami" then

lete ecSet.Update

SRecSet.Open SQL, Conn, adOpenS ' operaz ' SE ESISIF ' IN BASE ALL'OPERAZIONE: ' AGGIUNG IF operazRRecSet("email") = email RecSet.Update %> <hr> <p align="center"><b>registrato!</f<hr> <% ElseIF operazione = "cancellami" then ' EMAIL INESISTENTE! NON PUO' CANCELLARE NULLA, QUINDI: %> <hr> <p align="center"><b><font size="4" face="Verdana">E-mail non presente nel nostro database!</font></b></p> <hr> <% end if ' SE ESISTE: Else ' EMAIL GIA' REGISTRATA! IF operazione = "iscrivimi" then %> <hr> <p align="ceregistrata!</fo<hr> <% End IF ' CANCELLIFRecSet.DeR%> <hr>

Page 59: [E-Book ITA] Creare Un Sito in ASP - Aranzulla

© Salvatore Aranzulla – Trucchi, consigli e suggerimenti per il tuo portale in ASP! http://salvatore-aranzulla.splinder.it – http://www.hardwaremax.it

Pagina 59 di 162

ign="center"><b><font size="4" face="Verdana">E-mail cancellata stato con noi!</font></b></p>

ose

>

ign="center"><b><font size="4" face="Verdana">E-mail non

%

/body>

l file "adovbs.inc", /salvatore-aranzulla.splinder.it

<p alcorrettamente! <br>Grazie per essere<hr> <% End IF End IF RecSet.ClConn.Close End IF ' EMAIL NON COMPILATA! Else %<hr> <p alcorretta!</font></b></p> <hr> <End IF %> < </html> Il codice è tutto commentato, come si nota viene incluso iscaricabile dal mio sito http:/ !

i la adesso due file (che

amministratore) • Gestione_Newsletter.asp (Per l’invio dei messaggi)

cco il codice di “index.asp”:

CONTROLLA SE I DATI DI LOGIN INSERITI SONO CORRETTI

PASSWORD AMMINISTRATORE

Pagine per l’amministratore del sito Passiamo ora alla creazione delle pagine per l’amministratore, per inviare agli utentnostra newsletter! Creiamo una cartella “admin” e creiamodovranno essere inseriti in questa cartella):

• Index.asp (Con la schermata per identificarsi come

E <% ' ' USERNAME AMMINISTRATORE username = "admin" ' password = "admin"

Page 60: [E-Book ITA] Creare Un Sito in ASP - Aranzulla

© Salvatore Aranzulla – Trucchi, consigli e suggerimenti per il tuo portale in ASP! http://salvatore-aranzulla.splinder.it – http://www.hardwaremax.it

Pagina 60 di 162

d se(password) then

I DATI SONO ESATTI E SI VIENE IDENTIFICATI COME AMMINISTRATORE NA "GESTIONE_NEWSLETTER.ASP"

") = true ione_Newsletter.asp"

nd if

head> WSLETTER</title>

/head>

nbsp;</p> p align="center"><b><font size="4" face="Verdana">Gestione

/b></p> OST" action="index.asp">

align="center"> <center>

le border="0" cellpadding="0" cellspacing="0" width="39%"> <tr>

h="50%"><font face="Verdana" size="2">Username:</font></td> dth="50%"><input type="text" name="username" size="20"></td>

<td width="50%"><font face="Verdana" size="2">Password:</font></td> name="password"

"20"></td> tr>

height="5"> </td>

/tr> tr>

<td width="100%" colspan="2"> <p align="center"><input type="submit" value="Invia" name="B1"><input

ble> center>

m> ign="center">&nbsp;</p>

IF Lcase(Request.Form("username")) = Lcase(username) anLcase(Request.Form("password")) = Lca' ' E PORTATI NELLA PAGI session("amministratoreResponse.Redirect "Gest E%> <html> <<title>GESTIONE NE< <body> <p align="center">&<Newsletter!</font><<form method="P <div <tab <td widt <td wi </tr> <tr> <td width="50%"><input type="password"size= </ <tr> <td width="100%" colspan="2" < < type="reset" value="Reimposta" name="B2"></td> </tr> </ta </ </div></for<p al </body>

Page 61: [E-Book ITA] Creare Un Sito in ASP - Aranzulla

© Salvatore Aranzulla – Trucchi, consigli e suggerimenti per il tuo portale in ASP! http://salvatore-aranzulla.splinder.it – http://www.hardwaremax.it

Pagina 61 di 162

aggi agli

LLA SE SI E' IDENTIFICATI

sp"

>GESTIONE NEWSLETTER</title>

t; Invia

./adovbs.inc" --> %

EVE FARE t.QueryString("tipo")

DEL DATABASE = "driver={Microsoft Access Driver (*.mdb)};dbq=" & server.mappath("/mdb-

ase/database.mdb")

ection") Open url_DB

RAZIONE = INVIA IL MESSAGGIO DI NEWSLETTER one = "invia" then

ONNESSIONE AL DATABASE E PRELEVA LE EMAIL DELLA NEWSLETTER

er.CreateObject("ADODB.Recordset") "SELECT * FROM Email_Newsletter" Open SQL, Conn, adOpenStatic, adLockOptimistic

n

IRIZZO EMAIL NOSTRO "[email protected]"

ecset.eof

</html> Ecco il codice della pagina “Gestione_Newsletter.asp”, per l’invio dei messiscritti della nostra newsletter: <% ' CONTROIF session("amministratore")<>true then Response.Redirect "index.aEnd IF %> <html> <head> <title</head> <body><p><b><font size="4" face="Verdana">&gnewsletter!</font></b></p> <!-- #INCLUDE FILE=".<' LEGGE QUELLO CHE Doperazione = Reques ' PERCORSOurl_DBdatab Set Conn = Server.CreateObject("ADODB.Connconn. ' OPEIF operazi ' VERIFICA CHE I CAMPI SIANO STATI COMPILATI IF Request("oggetto") <> "" and Request("testo") <> "" then ' APRE LA C Set RecSet = ServSQL =RecSet. IF not RecSet.Eof the ' INDmittente = Do until R

Page 62: [E-Book ITA] Creare Un Sito in ASP - Aranzulla

© Salvatore Aranzulla – Trucchi, consigli e suggerimenti per il tuo portale in ASP! http://salvatore-aranzulla.splinder.it – http://www.hardwaremax.it

Pagina 62 di 162

PRELEVA IL TESTO DEL MESSAGGIO DA INVIARE

PRELEVA L'OGGETTO DEL MESSAGGIO DA INVIARE ("oggetto")

IO ct("CDONTS.NewMail")

mail.To = destinatario

il.Subject = oggetto

L'EMAIL E..

op

nd If

.close = Nothing

nn = Nothing

ter"><font face="Verdana" size="4"><b>Messaggio inviati

ttamente!</b></font></p>

>

ti i /p>

' PRELEVA L'EMAIL DELL'UTENTE DAL NOSTRO DATABASE destinatario = RecSet("email") ' testo = Request.Form("testo") ' oggetto = Request.Form ' INVIA IL MESSAGGSet email = CreateObjeemail.From = mittenteeema ' FORMATO EMAIL email.BodyFormat = 1 email.MailFormat = 1 email.Body = testo ' INVIA email.Send Set email = nothing ' PASSA AVANTI... RecSet.Movenext lo E RecSet.Close ConnSet RecSet Set Co ' VISUALIZZA UN MESSAGGIO DI CONFERMA: %> <hr><p align="cencorre<hr> <%Else %<hr> <p align="center"><font face="Verdana" size="4"><b>Compila tutcampi!</b></font><<hr> <%

Page 63: [E-Book ITA] Creare Un Sito in ASP - Aranzulla

© Salvatore Aranzulla – Trucchi, consigli e suggerimenti per il tuo portale in ASP! http://salvatore-aranzulla.splinder.it – http://www.hardwaremax.it

Pagina 63 di 162

form method="POST" action="Gestione_Newsletter.asp?tipo=invia">

<td width="26%"><font face="Verdana" size="2">Oggetto messaggio:</font></td> <td width="74%"><font face="Verdana" size="2"><input type="text" name="oggetto" size="20"></font></td> </tr> <tr> <td width="26%"><font face="Verdana" size="2">Testo messaggio:</font></td> <td width="74%"><font face="Verdana" size="2"><textarea rows="6" name="testo" cols="67"></textarea></font></td> </tr> <tr> <td width="26%"><font face="Verdana" size="2">Numero iscritti:</font></td> <% ' CONTA GLI ISCRITTI ALLA NEWSLETTER Set RecSet = Server.CreateObject("ADODB.Recordset") SQL = "SELECT Count(*) FROM Email_Newsletter" RecSet.Open SQL, Conn, adOpenStatic, adLockOptimistic ' CONTA GLI ISCRITTI IF not RecSet.Eof then Iscritti = RecSet(0) Else Iscritti = 0 End if %> <td width="74%"><b><font face="Verdana" size="2"><%=Iscritti%></font></b></td> <% RecSet.Close %> </tr> <tr> <td width="100%" colspan="2"><input type="submit" value="Invia Newsletter!" name="B1"><input type="reset" value="Reimposta" name="B2"></td> </tr> </table> </form> <p>&nbsp;</p> <% End IF Conn.Close Set Conn = Nothing Set RecSet = Nothing

End IF Else %> < <table border="0" cellpadding="0" cellspacing="0" width="100%"> <tr>

Page 64: [E-Book ITA] Creare Un Sito in ASP - Aranzulla

© Salvatore Aranzulla – Trucchi, consigli e suggerimenti per il tuo portale in ASP! http://salvatore-aranzulla.splinder.it – http://www.hardwaremax.it

Pagina 64 di 162

</html> Per l’invio dei messaggi viene utilizzato l’oggarte dei server che supportano l’ASP. I messaggi così inviati possono essere solo in

uale

' FORMATO EMAIL email.BodyFormat = 1

In: ' FORMemail.email. est.Form("formato")

<tr> /td>

CONTA GLI ISCRITTI ALLA NEWSLETTER

*) FROM Email_Newsletter" ecSet.Open SQL, Conn, adOpenStatic, adLockOptimistic

SCRITTI

critti = RecSet(0)

idth="74%"><b><font face="Verdana" "2"><%=Iscritti%></font></b></td>

ecSet.Close

. Inseriamo:

%> </body>

etto CDONTS, presente nella maggior pformato testo (il più preferito), sarà quindi impossibile utilizzare il codice HTML. Possiamo però modificare questo script affinché invii messaggi sia in formato testche HTML. Vediamo come! Trasformiamo le righe:

email.MailFormat = 1

ATO EMAIL BodyFormat = Request.Form("formato") MailFormat = Requ

E poi, prima della riga che mostra il numero degli iscritti, quindi di: <td width="26%"><font face="Verdana" size="2">Numero iscritti:</font><<% ' Set RecSet = Server.CreateObject("ADODB.Recordset") SQL = "SELECT Count(R ' CONTA GLI I IF not RecSet.Eof then IsElse Iscritti = 0 End if %> <td wsize=<% R%> </tr> ..

Page 65: [E-Book ITA] Creare Un Sito in ASP - Aranzulla

© Salvatore Aranzulla – Trucchi, consigli e suggerimenti per il tuo portale in ASP! http://salvatore-aranzulla.splinder.it – http://www.hardwaremax.it

Pagina 65 di 162

lected value="1">Testo</option> n value="0">HTML</option>

</select></td>

questo modo, selezionando il formato delle e-mail dall’amministrazione, si potranno essaggi in formato HTML, che messaggi in formato testuale.

<tr> <td width="26%"><font face="Verdana" size="2">Formato e-mail:</font></td> <td width="74%"><select size="1" name="formato"> <option se <optio </tr> Ininviare sia m

Page 66: [E-Book ITA] Creare Un Sito in ASP - Aranzulla

Capitolo 8

© Salvatore Aranzulla – Trucchi, consigli e suggerimenti per il tuo portale in ASP! http://salvatore-aranzulla.splinder.it – http://www.hardwaremax.it

Pagina 66 di 162

Frame soe

l nostro, o un sito esterno al

nostro e che gli consenta di ritornare al nostro sito con un semplice click!

pra i siti esterni Tenere l’utente più allungo in un sito web è l’obiettivo che si pongono la maggior partdei webmaster, analizziamo un trucco per fare ciò: inseriamo nei siti esterni aun frame (una “barra”) che ricorda all’utente che sta visitand

Ecco un esempio di frame sopra i siti esterni al nostro:

Per la realizzazione di questo

script ASP occorrono due pagine:

• La pagina superiore, quindi la barra del nostro sito (il frame) k che punta al

nostro sito e un banner il sito

esterno (sotto)

arà da frame superiore (la barra del nostro sito), salviamola

In questa parte consiglio di inserire il logo del sito web, un lin

• La pagina dove verrà visualizzata la nostra barra (sopra) e

Realizzata la pagina che fcon il nome di “superiore.asp”.

Page 67: [E-Book ITA] Creare Un Sito in ASP - Aranzulla

© Salvatore Aranzulla – Trucchi, consigli e suggerimenti per il tuo portale in ASP! http://salvatore-aranzulla.splinder.it – http://www.hardwaremax.it

Pagina 67 di 162

irettamente al sito web esterno.

na frame):

mo al suo interno:

rl")="" then e non è stato passato nessun indirizzo porta l’utente nel sito "http://il nostro sito"

d if

head>

ameset framespacing="1" border="0" rows="21%,*" frameborder="0">

String("url")%>" scrolling="auto" oresize target="_self">

<p>La pagina corrente utilizza i frame. Questa caratteristica non è supportata dal browser in uso.</p> </body> </noframes> </frameset> </html> Come si nota viene creata un pagina con due frame, nella parte superiore viene inserita la pagina “superiore.asp” (il frame creato precedentemente) al quale viene passato l’url del sito esterno, nella parte inferiore vi sarà invece il sito esterno, il cui url viene prelevato sempre dalla querystring “url”. Salviamo questa pagina con il nome di “sito_esterno.asp”. Adesso il nostro script ASP è completo, vediamo come usarlo! Nei prossimi link esterni al nostro sito ricordatevi di creare un link di questo tipo: http://vostro sito web/sito_esterno.asp?url= indirizzo del sito esterno

In questa pagina andrà anche inserito un link che permetta di eliminare il frame, puntando il visitatore d

Nel codice HTML della pagina della parte superiore inseriamo, per fare apparire questo link (Elimi <a href="<%=Request.QueryString("url")%>" target="_top">Elimina frame</a> Adesso creiamo una pagina ASP vuota e inseria <% IF Request.QueryString("u' SResponse.Redirect "http://il nostro sito" en%> <html> <head> <title>Mio Sito Web</title> </ <fr <frame name="superiore" src="superiore.asp?url=<%=Request.Queryn <frame name="inferiore" src="<%=Request.QueryString("url")%>"> <noframes> <body>

Page 68: [E-Book ITA] Creare Un Sito in ASP - Aranzulla

© Salvatore Aranzulla – Trucchi, consigli e suggerimenti per il tuo portale in ASP! http://salvatore-aranzulla.splinder.it – http://www.hardwaremax.it

Pagina 68 di 162

ttp://www.sitoweb.com/sito_esterno.asp?url=http://www.hardwaremax.it Il funzionamentesterno alla paiene passato alla pagina “superiore.asp”, per creare il link per eliminare la barra

superiore, e utilizzato per visualizzare il sito web esterno nel frame inferiore.

Ad esempio: h

o dello script ASP è abbastanza semplice, viene passato l’url del sito gina “sito_esterno.asp” tramite la querystring “url”, da qui l’url

v

Page 69: [E-Book ITA] Creare Un Sito in ASP - Aranzulla

© Salvatore Aranzulla – Trucchi, consigli e suggerimenti per il tuo portale in ASP! http://salvatore-aranzulla.splinder.it – http://www.hardwaremax.it

Pagina 69 di 162

si questo articolo creeremo un piccolo contatore per visualizzare il numero di Utenti

e visualizzare questi dati anche in una semplice pagina HTML!

rio utilizzare il file “Global.asa”. Esso risulta tenti connessi ad un sito, determinate attività, in questo

ndividere il numero di Utenti connessi al sito.

lla cartella principale del sito (detta root). Se il nostro sito ad esempio è http://salvatore-aranzulla.splinder.it

Capitolo 9

Utenti connes Inconnessi contemporaneamente sulle pagine del nostro sito e vedremo com

Per creare questo contatore è necessautile per condividere fra gli Ucaso, ad esempio, per co

Questo file dovrà essere posizionato ne, il global.asa dovrà

ttp://salvatore-aranzulla.splinder.itessere posizionato in h e non in una sotto cartella di questo.

Ecco il codice del global.asa per conteggiare gli Utenti connessi al proprio sito:

<SCRIPT LANGUAGE="VBSCRIPT" RUNAT=SERVER> Sub Application_OnStart() Application("Utenti_n") = 0 End Sub

Sub Session_OnStart() Application("Utenti_n") = Application("Utenti_n") + 1 End Sub

Sub Session_OnEnd() Application("Utenti_n") = Application("Utenti_n") – 1 End Sub

</SCRIPT>

A questo punto, per visualizzare il numero di Utenti connessi al nostro sito, in una pagina dinami (pagina

bbiamo utilizzato tre funzioni di Global.asa:

non

ca

ASP), basta semplicemente inserire:

Utenti connessi: <b><%=Application("Utenti_n")%></b>

Per realizzare il contatore a Application_OnStart() – imposta a zero il numero degli Utenti connessi, quandoc’è nessun utente online Session_OnStart() – si è collegato un utente e aumenta di uno il numero degli Utenti connessi

Page 70: [E-Book ITA] Creare Un Sito in ASP - Aranzulla

© Salvatore Aranzulla – Trucchi, consigli e suggerimenti per il tuo portale in ASP! http://salvatore-aranzulla.splinder.it – http://www.hardwaremax.it

Pagina 70 di 162

i è disconnesso dal sito un utente, decrementa di uno il numero

Vediamo ora come far visualizzare in una pagina HTML il numal sito. ome sappiamo, ovviamente, NON si può utilizzare del codice ASP in una semplice

e li

tenti connessi nelle nostre pagine HTML.

meremo “Utenti_online_html.asp”. Ecco il odice di questa pagina:

ocument.write("Utenti connessi: <b><%=Application("Utenti_n")%>")

gisce con ASP per prelevare il umero di Utenti connessi.

getto di javascript che utilizzeremo per scrivere a video “Utenti si: numero Utenti connessi”

tre pagine HTML, inseriremo invece semplicemente:

LANGUAGE='JavaScript' SRC='http://SITO .asp'></SCRIPT>

errà così richiamto il codice javascript generato dinamicamente nella pagina online_html.asp” e tramite l’oggetto document e la sua funzione write

visualizzato il numero di Utenti connessi al nostro sito. Semplice, no?

Session_OnEnd() – sdegli Utenti connessi.

ero degli Utenti connessi

Cpagina statica. Come fare quindi? Creeremo una pagina ASP che genererà del codicjavascript in base agli Utenti connessi e questa pagina visualizzerà il numero degU Creiamo quindi una pagina ASP che chiac d Si tratta di semplice codice JavaScript, che interan Document.write è l’ogconnes Nelle nos <SCRIPT WEB/Utenti_online_html V“Utenti_verrà

Page 71: [E-Book ITA] Creare Un Sito in ASP - Aranzulla

© Salvatore Aranzulla – Trucchi, consigli e suggerimenti per il tuo portale in ASP! http://salvatore-aranzulla.splinder.it – http://www.hardwaremax.it

Pagina 71 di 162

sito

b, realizzato in ASP, nelle varie agine che lo compongono e di dover aggiornare in seguito l’impostazione delle

: usare le Sub Routine, ediamo come e cosa sono!

. Creiamo innanzitutto una pagina di templates (di modello) per le altre, ndo uno spazio in cui far apparire i contenuti delle varie pagine

cui si deve far apparire il contenuto delle varie pagine seriamo:

ostraPagina()%>

esto modo richiameremo la sub routine che imposteremo nelle altre pagine del ati al posto di MostraPagina() il contenuto delle varie

e!

ere impostate così:

% Sub MostraPagina() %> Contenuto della pagina <% End Sub %> <!-- #include file="tema.asp" --> In questo modo imposteremo dentro la sub routine MostraPagina il contenuto html delle varie pagine, che verrà poi mostrato a video dalla pagina “tema.asp”, inclusa nella varie pagine future del nostro sito! Basterà quindi in seguito modificare l’impostazione di tema.asp per cambiare anche tutte le altre pagine! Perfezioniamo il tutto

In questo modo abbiamo realizzato lo script ASP per mantenere la grafica uniforme nelle varie pagine del nostro sito, si può perfezionare il tutto facendo anche cambiare il titolo alle pagine che in questo caso avrebbero il titolo della pagina “tema.asp”. Inseriamo fra i tag HTML <title> e </title>:

<%=Titolo%>

Capitolo 10

Tema uguale per le pagine del nostro

Può capitare di dover ripetere la grafica di un sito weppagine e la grafica: un lavoraccio per chi ha realizzato le singole pagine, inserendo in ogni pagina la grafica del sito!

Ritrovandomi in questa situazione ho pensato ad una soluzionev 1lascia2. Nel punto inin <%M In qunostro sito e verranno visualizzpagin 3. Salvate adesso la pagina con il nome di “tema.asp” 4. Le nuove pagine del nostro sito dovranno ess <

Page 72: [E-Book ITA] Creare Un Sito in ASP - Aranzulla

© Salvatore Aranzulla – Trucchi, consigli e suggerimenti per il tuo portale in ASP! http://salvatore-aranzulla.splinder.it – http://www.hardwaremax.it

Pagina 72 di 162

gina (tema.asp):

% IF titolo = "" then titolo = "Inserisci qua un titolo in caso che la pagina

>

%

SuCo n

% End Sub %>

er capire meglio...

E all’inizio di questa pa

<

non abbia un titolo" end if % Le prossime pagine dovranno invece essere organizzate in questo modo:

<titolo = "TITOLO DELLA PAGINA"

b MostraPagina() %> nte uto della pagina

<<!-- #include file=”tema.asp” -->

P

Lo schema di una pagina modello del nostro sito potrebbe essere:

Nella parte superiore inserire logo, link principali e banner del sito, nelle parti lla parte

pyright del sito ed eventuali contatti, nella parte centrale invece vengono

odificherà quindi solo la parte centrale del nostro file modello con il delle varie pagine, mentre le altre parti resteranno così come sono. In

laterali è possibile invece inserire altri link e altri informazioni varie, nebassa il coinseriti i contenuti delle pagine del nostro sito ed è qua che verrà inserito <%MostraPagina()%>

Lo script mcontenuto questo modo basterà appunto modificare il file di tema per modificare la grafica di tutte le pagine. Geniale come idea, o no?

Page 73: [E-Book ITA] Creare Un Sito in ASP - Aranzulla

© Salvatore Aranzulla – Trucchi, consigli e suggerimenti per il tuo portale in ASP! http://salvatore-aranzulla.splinder.it – http://www.hardwaremax.it

Pagina 73 di 162

lo 11

Più pagine in una i dover creare un sito con molte pagine, ma... perché non utilizzare

creare tutto il sito in un’unica pagina (o almeno buona parte di esso)?

er creare più pagine in una, si può ricorrere al costrutto If – Then – Else, cioè e condizioni, vediamo come!

è strutturata una pagina che contiene più pagine:

pagina = "" then

nd if

head>

pagina = "home" then

% lseIf pagina = "chisiamo" then

>

%

"pagina_con_piu_pagine.asp?pagina=home"

> dy>

Capito

Può capitare dl’ASP per Putilizzare l Ecco come <% pagina = Lcase(Request.QueryString("pagina")) IFpagina="home" e%> <html> <<title>Mio Sito</title> </head> <body> <% If%> Pagina di home! <E%> Pagina chi siamo! <% elseIF pagina = "azienda" then %Pagina azienda! <Else Response.Redirect end if %</bo </html>

Page 74: [E-Book ITA] Creare Un Sito in ASP - Aranzulla

© Salvatore Aranzulla – Trucchi, consigli e suggerimenti per il tuo portale in ASP! http://salvatore-aranzulla.splinder.it – http://www.hardwaremax.it

Pagina 74 di 162

sato alla pagina, amite la query string “pagina”, che contiene il nome della pagina da visualizzare.

e non è stato passato alcun valore, la variabile “pagina” assumerà il valore di

ubito dopo il tag html <body> vi sono le condizioni per visualizzare le varie pagine in

o”

me” pagina=home), così verrà visualizzata l’home page del sito.

. altre pagine

ltro nome della pagina" then

to pagina!

. altre pagine o fine (End IF)

isualizzare le pagine basta richiamare “la pagina con più pagine” passando il empio

ine.asp?pagina=chisiamo

Come si vede, all’inizio della pagina, viene richiesto il valore pastr S“home”. Sbase al valore che ha assunto la variabile “pagina”. Se il valore è uguale ad “home” visualizza l’home page, se è uguale a “chisiamvisualizza la pagina chi siamo e via dicendo. Se il nome della pagina passato non esiste si viene riportati nella stessa pagina, però viene passato il valore “ho(? Per inserire nuove pagine: <% .. ElseIf pagina = "a%> Contenu<% ..%> Per vnome della pagina da visualizzare, ad eshttp://sito/pagina_con_piu_pag

Page 75: [E-Book ITA] Creare Un Sito in ASP - Aranzulla

© Salvatore Aranzulla – Trucchi, consigli e suggerimenti per il tuo portale in ASP! http://salvatore-aranzulla.splinder.it – http://www.hardwaremax.it

Pagina 75 di 162

Sezioni riservate Può es nate sezioni e farle visuali d esempio agli amministratori del sito. Ved m Du o

• proteggere una sezione ad un solo utente • proteggere una sezione a più utenti

una sezione ad un solo utente

mplice: infatti è quella che abbiamo tilizzato fino ad ora per riservare l’amministrazione degli script del libro solo agli

Vediamo come fare!

html>

head> <title>SEZIONI RISERVATE</title>

/head>

body> <p<p i " size="3"><b>Sezioni Riservate - Solo un utente<form sp"> <div align="center">

<center> <table border="0" width="51%" cellspacing="0" cellpadding="0">

d> e="Verdana" size="2"><input type="text"

ame="username" size="20"></font></td> </tr>

<tr> ana" size="2">Password:</font></td>

<td width="66%"><font face="Verdana" size="2"><input type="password" name="password" size="20"></font></td>

Capitolo 12

sere necessario in un sito web proteggere determizzarle solo agli utenti registrati o solo a

ia o come fare il tutto in ASP!

e s no i problemi (... e le relative soluzioni) che analizzeremo:

Problema 1: Proteggere La soluzione a questo problema è molto seuamministratori.

Creiamo innanzitutto una pagina in cui inserire username e password per identificarsi: < <

< <

>&nbsp;</p> al gn="center"><font face="Verdana

</b></font></p> method="POST" action="verifica.a

<tr> <td width="34%"><font face="Verdana" size="2">Username:</font></t <td width="66%"><font facn

<td width="34%"><font face="Verd

Page 76: [E-Book ITA] Creare Un Sito in ASP - Aranzulla

© Salvatore Aranzulla – Trucchi, consigli e suggerimenti per il tuo portale in ASP! http://salvatore-aranzulla.splinder.it – http://www.hardwaremax.it

Pagina 76 di 162

lspan="2"> <p align="center"><input type="submit" value="Invia" name="B1"><input

set" value="Reimposta" name="B2"></td> </tr>

>

/form>

/body>

si nota il modulo (con due campi: username, in cui inserire l’username nte, e password, in cui inserire la password) punta alla pagina “verifica.asp”,

icazione.

codice della pagina “verifica.asp”:

ME DELL'UTENTE DELLA SEZIONE RISERVATA

EZIONE RISERVATA rd = "admin"

TTO UN CONTROLLO FRA I DATI PRECEDENTEMENE INSERITI E QUELLI CHE ABBIAMO MESSO QUI SOPRA

Lcase(Request("username")) = Lcase(username) and Lcase(Request("password"))

N "IDENTIFICATO" CON IL VALORE DI TRUE E SI VIENE PORTATI NELLA PAGINA PROTETTA

ession("Identificato") = True

UTENTE ESATTO ’UTENTE NELLA PAGINA RISERVATA A LUI

esponse.Redirect "protetta.asp"

lse

</tr> <tr> <td width="100%" co type="re </table </center> </div> < < </html> Come dell’utein cui avverrà il controllo dei dati inseriti e l’eventuale identif Ecco il <% ' USERNAUsername = "admin" ' PASSWORD DELL'UTENTE DELLA SPasswo ' VIENE FA' IF= Lcase(password) then ' DATI ESATTI... ' VIENE IMPOSTATA LA SESSIO' ' (CHE NOI ABBIAMO CHIAMATO "PROTETTA.ASP") S ' ' PORTA L' (PROTETTA.ASP) R E ' ALTRIMENTI (DATI NON CORRETTI)

Page 77: [E-Book ITA] Creare Un Sito in ASP - Aranzulla

© Salvatore Aranzulla – Trucchi, consigli e suggerimenti per il tuo portale in ASP! http://salvatore-aranzulla.splinder.it – http://www.hardwaremax.it

Pagina 77 di 162

ECEDENTE PAGINA _UNO.ASP")

irect "login_uno.asp"

a come creare le nostre pagine riservate per questo utente!

e e sta cercando di aprire la pagina, è identificato oppure meno:

SION "IDENTIFICATO" E' DIVERSA DA TRUE (NON IDENTIFICATO) PORTATI NELLA PAGINA DI LOGIN

edirect "login_uno.asp"

esempio una pagina protetta sarà:

% ("Identificato") <> True then

esponse.Redirect "login_uno.asp"

>

title>Sezioni Riservate</title>

"center"><b><font size="3" face="Verdana">Pagina rotetta!</font></b></p>

iù utenti

' SI VIENE PORTATI NELLA PR' DI LOGIN (CHE NOI ABBIAMO CHIAMATO "LOGIN Response.Red End IF %> Vediamo or Dobbiamo noi inserire all’inizio delle nostre pagine protette (ovviamente, con estensione .ASP), semplicemente queste righe, che fanno un controllo per vedere sl’utente, ch <% ' VIENE FATTO UN CONTROLLO: ' SE LA SES' SI VIENE IF Session("Identificato") <> True then ' NON LOGGATO Response.REnd IF %> Quindi ad <IF SessionREnd IF %<html> <head> <</head> <body> <p align=p </body> </html>

Problema 2: Proteggere una sezione a p

Page 78: [E-Book ITA] Creare Un Sito in ASP - Aranzulla

© Salvatore Aranzulla – Trucchi, consigli e suggerimenti per il tuo portale in ASP! http://salvatore-aranzulla.splinder.it – http://www.hardwaremax.it

Pagina 78 di 162

rare gli utenti del nostro sito iservate.

• Creazione DataBase (DB)

ne pagine per l’invio di password smarrite • Creazione pagine per l’identificazione

• Modifica dati utenti istrativa per la gestione di tutto lo script

er la creazione del database ho usato il famoso Microsoft Access, versione 2000

e vuoto:

Vediamo come creare invece ora un sistema per far registe farli accedere a sezioni a loro r La creazione dello script si articolerà in:

• Creazione pagine per la registrazione (e la sua attivazione) • Creazio

• Esempio di sezione riservata

• Creazione parte ammin

Creazione DataBase (DB) P(presente nel pacchetto Microsoft Office). Avviamo Access e selezioniamo la creazione di un databas

Quindi diamo un nome al nostro database, che conterrà i dati degli utenti e salviamolo ol nome di “database.mdb”.

ne struttura:

c Creiamo quindi una tabella in visualizzazio

... con i seguenti campi:

tore • Username - Tipo Campo: Testo

rd - Tipo Campo: Testo po: Testo

• Attivo – Tipo Campo: Numerico

• Id – Tipo Campo: Conta

• Passwo• Email - Tipo Cam

Page 79: [E-Book ITA] Creare Un Sito in ASP - Aranzulla

Chiudiamo la creazione della tabella (con la X in alto a destra della creazione della

amente alle domande che ci verranno poste,

e opzioni dello script (Registrazione, amato questa pagina

title>SEZIONI RISERVATE</title>

body>

p>&nbsp;</p> dana" size="3"><b>Sezioni

/font></p>

<p align="left"><b><font size="2" face="Verdana"><a ref="registrati1.asp">Registrati</a></font></b></li>

<p align="left"><b><font size="2" face="Verdana"><a

"2" face="Verdana"><a

persa...</a></font></b></li>

tabella) e, rispondendo affermativtenti”. salviamola col nome di “U

Creazione pagine per la registrazione Prima di tutto creiamo una pagina con tutte lLogin, Invio password smarrita). Abbiamo chi“sezioni_riservate.asp”: <html> <head> <</head> < <<p align="center"><font face="VerRiservate</b><<ul> <li> h <li> href="login.asp">Login</a></font></b></li> <li> <p align="left"><b><font size=href="pwd_persa1.asp">Password </ul>

© Salvatore Aranzulla – Trucchi, consigli e suggerimenti per il tuo portale in ASP! http://salvatore-aranzulla.splinder.it – http://www.hardwaremax.it

Pagina 79 di 162

Page 80: [E-Book ITA] Creare Un Sito in ASP - Aranzulla

© Salvatore Aranzulla – Trucchi, consigli e suggerimenti per il tuo portale in ASP! http://salvatore-aranzulla.splinder.it – http://www.hardwaremax.it

Pagina 80 di 162

/html>

ersi link (registrati1.asp, che conterrà la pagina con un odulo per l’inserimento dei dati per registrarsi, login.asp, una pagina con un

r accedere alle pagine sword persa), andiamo a

rà semplicemente un modulo in cui inserire i dati er registrarsi, che punterà alla pagina “registrati2.asp”:

ni Riservate - t></p>

od="POST" action="registrati2.asp"> <div align="center"> <center>

width="76%" cellspacing="0" cellpadding="0"> tr>

td width="20%"><font face="Verdana" size="2">Username:</font></td>

r> <td width="20%"><font face="Verdana" size="2">Password:</font></td>

d width="80%"><input type="text" name="password" size="20"></td> </tr>

tr> <td width="20%"><font face="Verdana" size="2">E-mail:</font></td>

name="email" size="20"></td> /tr> r>

pe="submit" value="Invia" name="B1"><input reset" value="Reimposta" name="B2"></p></td>

/tr> le>

center>

p align="left">&nbsp;</p>

</body> < Come si nota ci sono divmmodulo in cui inserire il proprio username e password periservate, e pwd_persa1.asp, per richiedere la propria pascreare tutte queste pagine! La pagina “registrati1.asp”, conterp <html> <head> <title>SEZIONI RISERVATE</title> </head> <body> <p>&nbsp;</p> <p align="center"><font face="Verdana" size="3"><b>SezioRegistrati</b></fon<form meth <table border="0" < < <td width="80%"><input type="text" name="username" size="20"></td> </tr> <t <t < <td width="80%"><input type="text" < <t <td width="100%" colspan="2"> <p align="center"><input tytype=" < </tab </ </div> </form> <

Page 81: [E-Book ITA] Creare Un Sito in ASP - Aranzulla

© Salvatore Aranzulla – Trucchi, consigli e suggerimenti per il tuo portale in ASP! http://salvatore-aranzulla.splinder.it – http://www.hardwaremax.it

Pagina 81 di 162

dice della pagina che riceve i dati (registrati2.asp):

title>SEZIONI RISERVATE</title>

;</p>

egistrati</b></font></p> -->

%

ARE IL PROBLEMA "SQL INJECTION"

sername = Replace(Request.Form("username"), "'", "''") assword"), "'", "''")

mail = Request.Form("email")

CONTROLLA INNANZITUTTO SE TUTTI I CAMPI SONO STATI COMPILATI

ord <> "" and Instr(email, "@") > 0 and Instr(email, ") > 0 then

CORRETTAMENTE

mappath("/mdb-

ction") onn.Open url_DB

reateObject("ADODB.Recordset") me = '" & username &"'"

mistic

ERNAME INSERITO E' GIA' STATO USATO

f Then

RNAME GIA' USATO

</body> </html> Ecco il co <html> <head> <</head> <body> <p>&nbsp<p align="center"><font face="Verdana" size="3"><b>Sezioni Riservate - R<!-- #include file = "adovbs.inc" <' VENGONO SOSTITUITI GLI APICI (') CON DUE APICI ('') ' PER EVIT upassword = Replace(Request.Form("pe ' ' CORRETTAMENTE IF username <> "" and passw". ' CAMPI COMPILATI ' PERCORSO DEL DATABASE url_DB = "driver={Microsoft Access Driver (*.mdb)};dbq=" & server.database/database.mdb") Set Conn = Server.CreateObject("ADODB.Connec Set RecSet = Server.CSQL = "SELECT * FROM Utenti where usernaRecSet.Open SQL, Conn, adOpenStatic, adLockOpti ' CONTROLLA SE L'US IF Not RecSet.Eo ' USE

Page 82: [E-Book ITA] Creare Un Sito in ASP - Aranzulla

© Salvatore Aranzulla – Trucchi, consigli e suggerimenti per il tuo portale in ASP! http://salvatore-aranzulla.splinder.it – http://www.hardwaremax.it

Pagina 82 di 162

IF...)

True

ALTRIMENTI ... USERNAME NON USATO VARIABILE "USATO" SU FALSE

sato = False

Chiude la connessione al DB

et RecSet = Nothing

FA LA CONDIZIONE PER VERIFICARE SE L'USERNAME

o = True then

ign="center"><b><font face="Verdana" size="2">Username inserito già in /font></b></p>

hr>

ZIONE...

ecSet = Server.CreateObject("ADODB.Recordset") SELECT * FROM Utenti Order By ID Desc"

ecSet.Open SQL, Conn, adOpenStatic, adLockOptimistic

ecSet.Addnew

et("username") = username ("password") = password

CE NEL DB NEL CAMPO "ATTIVO" IL VALORE 0 INDICA CHE LA REGISTRAZIONE NON E' STATA ANCORA ATTIVATA,

I, DOPO AVER IMMESSO I DATI NEL DB, VERRA' INVIATA ALL'UTENTE EMAIL (TRAMITE L'OGGETTO CDONTS) CON UN LINK CHE PUNTA ALLA PAGINA

ASP", PER ATTIVARE L'ACCOUNT. ’ATTIVAZIONE NON E' POSSIBILE

ACCEDERE ALLE SEZIONI RISERVATE DEL NOSTRO SITO...

' IMPOSTA LA VARIABILE "USATO" SU TRUE' (IN MODO DA POTER FAR DOPO UN CONTROLLO usato = Else ' ' IMPOSTA LA uEnd IF ' RecSet.Close S ' ' IMMESSO E' GIA' STATO USATO... IF usat ' USERNAME GIA' USATO. %> <hr> <p aluso!<<<% Else ' NICK NON USATO... ' PROCEDE ALLA SUA REGISTRA Set RSQL = "R R RecSRecSetRecSet("email") = email ' INSERIS' CHE' INFATT' UNA' "ATTIVA.' SENZA L'

Page 83: [E-Book ITA] Creare Un Sito in ASP - Aranzulla

© Salvatore Aranzulla – Trucchi, consigli e suggerimenti per il tuo portale in ASP! http://salvatore-aranzulla.splinder.it – http://www.hardwaremax.it

Pagina 83 di 162

NELLA PAGINA "ATTIVA.ASP" VERRA' POI TRASFORMATO LO ZERO (0)

ONTROLLO ORRETTI

Rec e ' CH UecSet

A L'ID DELL'UTENTE APPENA INSERITO:

t = Server.CreateObject("ADODB.Recordset") e username = '" & username & "' and password

en SQL, Conn, adOpenStatic, adLockOptimistic

)

SO DAL DB)

qui sotto"

& "Lo staff di Mio sito!" & chr(13) "http://www.sitomio.it"

= CreateObject("CDONTS.NewMail")

ect = "[MIO SITO] ATTIVA LA REGISTRAZIONE!" y = testo d

' ' ' IN UNO (1) E SARA' POSSIBILE QUINDI ACCEDERE ALLE SEZIONI RISERVATE ' DEL NOSTRO SITO. ' ' ABBIAMO INSERITO QUESTO SISTEMA DI CPER VERIFICARE CHE I DATI INSERITI SIANO C'

S t("attivo") = 0

I DE LA CONNESSIONE AL DB .Update R

RecSet.Close Set RecSet = Nothing ' PRELEV Set RecSeSQL = "SELECT ID FROM Utenti Wher

sword &"'" = '" & pasecSet.OpR

= RecSet("ID"ID

RecSet.Close Set RecSet = Nothing Conn.Close

othing Set Conn = N

ALL'UTENTE PER ATTIVARE L'ACCOUNT ' INVIA L'EMAIL ' (COME SI NOTA VIENE FATTO UN LINK DI QUESTO TIPO: ' HTTP://WWW.SITOMIO.IT/ATTIVA.ASP?ID=ID PRECEDENTEMENTE PRE

[email protected]" mittente = "mia testo = "Caro utente," & chr(13) testo = testo & "per attivare la registrazione al nostro sito, fai click sul link& chr(13)

to & "http://www.sitomio.it/attiva.asp?ID=" & id &"" & chr(13) & chr(13) testo = testesto = testotesto = testo & Set email email.From = mittente mail.To = email e

email.Subjmail.Bode

email.Sen

Page 84: [E-Book ITA] Creare Un Sito in ASP - Aranzulla

© Salvatore Aranzulla – Trucchi, consigli e suggerimenti per il tuo portale in ASP! http://salvatore-aranzulla.splinder.it – http://www.hardwaremax.it

Pagina 84 di 162

> hr>

"center"><b><font face="Verdana" size="2">Ti è stata inviata una email er confermare la registrazione!</font></b></p>

LATI CORRETTAMENTE

erdana" size="2">Compila tutti i dati ttamente!</font></b></p>

%

>

la pagina “attiva.asp” che, come scritto fra i commenti del recedente listato, serve per attivare la registrazione:

html>

</title> /head>

!-- #include file = "adovbs.inc" -->

PRELEVA L'ID PASSATO TRAMITE LA QUERY STRING (ATTIVA.ASP?ID=XX)

= Request.QueryString("ID")

LORE E SE QUESTO E' UN

(SERVE PROPRIO A QUESTO LA FUNZIONE "ISNUMERIC")

c(ID) then

Set email = nothing %<<p align=p<hr> <% End IF Else ' DATI NON COMPI%> <hr> <p align="center"><b><font face="Vcorre<hr> <End IF %</body> </html> Provvediamo ora a crearep < <head> <title>SEZIONI RISERVATE< <body> <p>&nbsp;</p> <p align="center"><font face="Verdana" size="3"><b>Sezioni Riservate - Registrati</b></font></p> <<% ' ID ' CONTROLLA INNANZITUTTO SE E' STATO PASSATO UN VANUMERO ' IF ID <> "" and IsNumeri ' TUTTO OK...

Page 85: [E-Book ITA] Creare Un Sito in ASP - Aranzulla

© Salvatore Aranzulla – Trucchi, consigli e suggerimenti per il tuo portale in ASP! http://salvatore-aranzulla.splinder.it – http://www.hardwaremax.it

Pagina 85 di 162

CORSO DEL DATABASE (*.mdb)};dbq=" & server.mappath("/mdb-

r.CreateObject("ADODB.Connection") en url_DB

ject("ADODB.Recordset") QL = "SELECT * FROM Utenti where ID = " & ID &" and attivo = 0"

QL, Conn, adOpenStatic, adLockOptimistic

CONTROLLA SE L'UTENTE ESISTE REALMENTE

en UTENTE ESISTENTE

E IMPOSTA LA VARIAIBILE "ATTIVATO" SU TRUE

ecSet("attivo") = 1

lse ENTE

IMPOSTA LA VARIAIBILE "ATTIVATO" SU FALSE

et RecSet = Nothing

g

PER VERIFICARE SE L'ATTIVAZIONE E' MENO

AZIONE AVVENUTA CORRETTAMENTE

n="center"><b><font face="Verdana" size="2">Attivazione avvenuta ttamente! Da ora puoi accedere alle sezioni riservate agli utenti i!</font></b></p>

hr>

' PERurl_DB = "driver={Microsoft Access Driver database/database.mdb") Set Conn = Serveconn.Op Set RecSet = Server.CreateObSRecSet.Open S ' IF Not RecSet.Eof Th' ' MODIFICA IL VALORE DI ATTIVO DA 0 A 1 ' RAttivato = True RecSet.Update E' ALTRIMENTI ... UTENTE NON ESIST' Attivato = False End IF ' Chiude la connessione al DB RecSet.Close S Conn.Close Set Conn = Nothin ' FA LA CONDIZIONE' AVVENUTA O IF Attivato = True then ' ATTIV%> <hr> <p aligcorreiscritt<<% Else

Page 86: [E-Book ITA] Creare Un Sito in ASP - Aranzulla

© Salvatore Aranzulla – Trucchi, consigli e suggerimenti per il tuo portale in ASP! http://salvatore-aranzulla.splinder.it – http://www.hardwaremax.it

Pagina 86 di 162

ORRETTO...)

ign="center"><b><font face="Verdana" size="2">Registrazione inesistente o ata!</font></b></p>

hr>

nd IF

ign="center"><b><font face="Verdana" size="2">Errore! Attivazione zione fallita!</font></b></p>

> </body>

arrite

passare alla creazione delle schermate di login, provvediamo a creare il istema per l’invio della password smarrita.

e:

• Pwd_persa1.asp, con un modulo in cui inserire l’username dell’utente di cui si le ricordare la password

• Pwd_persa2.asp, che provvederà ad inviare la password dell’utente l specificato nella registrazione

“pwd_persa1.asp”, si tratta di un modulo in cui inserire a password via email, il modulo passa

persa2.asp”:

' L'ATTIVAZIONE ERA GIA' STATA FATTA (.. O L'ID PASSATO NON E' C%> <hr> <p algià attiv<<% E Else ' DATI NON CORRETTI %> <hr> <p alregistra<hr><% End IF %

</html>

Creazione pagine per l’invio di password sm Prima di s Questa parte sarà composta da due pagin

vuo

all’indirizzo emai Ecco il codice della paginal’username dell’utente di cui si vuole re-inviata li dati alla pagina “pwd_ <html> <head> <title>SEZIONI RISERVATE</title> </head> <body> <p>&nbsp;</p>

Page 87: [E-Book ITA] Creare Un Sito in ASP - Aranzulla

© Salvatore Aranzulla – Trucchi, consigli e suggerimenti per il tuo portale in ASP! http://salvatore-aranzulla.splinder.it – http://www.hardwaremax.it

Pagina 87 di 162

enter"><b><font face="Verdana" size="3">Sezioni Riservate - Password t></b></p>

rsa2.asp">

order="0" width="61%" cellspacing="0" cellpadding="0">

="50%"><font face="Verdana" size="2">Username :</font></td> width="50%"><input type="text" name="username" size="20"></td>

<tr> idth="100%" colspan="2">

<p align="center"><input type="submit" value="Invia password" "><input type="reset" value="Reimposta" name="B2"></p></td>

</tr>

</div>

p align="left">&nbsp;</p>

/html>

cco invece il codice della pagina che riceve i dati, “pwd_persa2.asp”:

d>

/head>

oni Riservate - Password ersa</font></b></p>

% ERNAME INSERITO

sername"), "'", "''")

O SE E' STATO PASSATO UN VALORE, CIOE' VERIFICA CHE IL CAMPO USERNAME NON SIA VUOTO

then

<p align="cPersa</fon<form method="POST" action="pwd_pe <div align="center"> <center> <table b <tr> <td widthdell'utente <td </tr> <td w name="B1 </table> </center> </form>< </body> < E <html> <hea<title>SEZIONI RISERVATE</title> < <body> <p>&nbsp;</p> <p align="center"><b><font face="Verdana" size="3">SeziP<!-- #include file = "adovbs.inc" --> <' PRELEVA L'US Username = Replace(Request.Form("u ' CONTROLLA INNANZITUTT' IF Username <> ""

Page 88: [E-Book ITA] Creare Un Sito in ASP - Aranzulla

© Salvatore Aranzulla – Trucchi, consigli e suggerimenti per il tuo portale in ASP! http://salvatore-aranzulla.splinder.it – http://www.hardwaremax.it

Pagina 88 di 162

(*.mdb)};dbq=" & server.mappath("/mdb-

et Conn = Server.CreateObject("ADODB.Connection")

QL = "SELECT * FROM Utenti where username = '" & username &"' and attivo = 1" tic, adLockOptimistic

TE ESISTE REALMENTE

IL E PASSWORD) E IMPOSTA LA VARIAIBILE "Presente" SU TRUE

= RecSet("email")

lse N ESISTENTE

TA LA VARIAIBILE "Presente" SU FALSE

nd IF

al DB

RE SE L'UTENTE E' ESISTENTE O MENO

PROVVEDE ALL'INVIO DELL'EMAIL CON I DATI PERSI

nte = "[email protected]"

' TUTTO OK... ' PERCORSO DEL DATABASE url_DB = "driver={Microsoft Access Driverdatabase/database.mdb") Sconn.Open url_DB Set RecSet = Server.CreateObject("ADODB.Recordset") SRecSet.Open SQL, Conn, adOpenSta ' CONTROLLA SE L'UTEN IF Not RecSet.Eof Then ' UTENTE ESISTENTE ' PRELEVA I SUOI DATI (USERNAME, EMA' Password = RecSet("password") Email Presente = True E' ALTRIMENTI ... UTENTE NO' IMPOS Presente = False E ' Chiude la connessione RecSet.CloseSet RecSet = Nothing Conn.Close Set Conn = Nothing ' FA LA CONDIZIONE PER VERIFICA IF Presente = True then ' UTENTE PRESENTE: ' ' UTILIZZANDO L'OGGETTO CDONTS mitte

Page 89: [E-Book ITA] Creare Un Sito in ASP - Aranzulla

© Salvatore Aranzulla – Trucchi, consigli e suggerimenti per il tuo portale in ASP! http://salvatore-aranzulla.splinder.it – http://www.hardwaremax.it

Pagina 89 di 162

"ecco i dati della tua registrazione a MIO SITO:" & chr(13) & chr(13) = testo & "Username: " & username & "" & chr(13)

testo & "Password: " & password & "" & chr(13) & chr(13)

.sitomio.it"

mail = CreateObject("CDONTS.NewMail") om = mittente

mail.To = email .Subject = "[MIO SITO] RE-INVIO PASSWORD PERSA!"

mail.Body = testo

ail = nothing

n="center"><b><font face="Verdana" size="2">Ti è stata inviata una email password persa!</font></b></p>

UTENTE NON ESISTENTE >

<hr> e="Verdana" size="2">Utente non

sistente!</font></b></p>

CAMPO "USERNAME" VUOTO (NON COMPILATO CORRETTAMENTE)

hr> ign="center"><b><font face="Verdana" size="2">Campo "username"

hr>

/html>

reazione pagine per l’identificazione

testo = "Caro utente," & chr(13) testo = testo &testotesto =testo = testo & "Lo staff di Mio sito!" & chr(13) testo = testo & "http://www Set eemail.Freemaileemail.Send Set em%> <hr> <p aligcon la<hr> <% Else ' %

<p align="center"><b><font face<hr> <% End IF Else ' %> <<p alvuoto!</font></b></p> <<% End IF %> </body> <

C

Page 90: [E-Book ITA] Creare Un Sito in ASP - Aranzulla

© Salvatore Aranzulla – Trucchi, consigli e suggerimenti per il tuo portale in ASP! http://salvatore-aranzulla.splinder.it – http://www.hardwaremax.it

Pagina 90 di 162

uanto riguarda l’identificazione, iniziamo creando la pagina “login.asp”, nella erire il proprio username e password:

title>SEZIONI RISERVATE</title>

p align="center"><b><font face="Verdana" size="3">Sezioni Riservate - t></b></p>

thod="POST" action="verifica.asp"> <div align="center">

<td width="50%"><font face="Verdana" size="2">Username:</font></td> "username" size="20"></td>

</tr> tr>

sword:</font></td> <td width="50%"><input type="password" name="password"

width="100%" colspan="2"> <p align="center"><input type="submit" value="Login" name="B1"><input

</p></td>

</table>

m>

"left">&nbsp;</p>

riti verranno inviati alla pagina “verifica.asp”, che ha il compito di verificare dati inseriti e quello di identificare (se i dati sono esatti) l’utente:

head>

Per qquale ins <html> <head> <</head> <body> <p>&nbsp;</p> <Login</fon<form me <center> <table border="0" width="61%" cellspacing="0" cellpadding="0"> <tr> <td width="50%"><input type="text" name= < <td width="50%"><font face="Verdana" size="2">Pas size="20"></td> </tr> <tr> <td type="reset" value="Reimposta" name="B2"> </tr> </center> </div></for<p align= </body> </html> I dati insei <html> <<title>SEZIONI RISERVATE</title> </head>

Page 91: [E-Book ITA] Creare Un Sito in ASP - Aranzulla

© Salvatore Aranzulla – Trucchi, consigli e suggerimenti per il tuo portale in ASP! http://salvatore-aranzulla.splinder.it – http://www.hardwaremax.it

Pagina 91 di 162

body>

bsp;</p>

nclude file = "adovbs.inc" -->

RITI

sername = Replace(Request.Form("username"), "'", "''") = Replace(Request.Form("password"), "'", "''")

CONTROLLA INNANZITUTTO SE E' STATO PASSATO UN VALORE, CIOE' VERIFICA assword" NON SIANO VUOTI

IF e TUTTO OK...

PERCORSO DEL DATABASE B = "driver={Microsoft Access Driver (*.mdb)};dbq=" & server.mappath("/mdb-

.CreateObject("ADODB.Connection") onn.Open url_DB

rdset") 1" SERVE

PER VERIFICARE SE L'UTENTE HA ATTIVATO LA SUA

O RISULTERA' INESISTENTE E NON POTRA' ACCEDERE ALLE SEZIONI RISERVATE DEL SITO...

M Utenti where username = '" & username &"' and password =

& password & "' and attivo = 1"

CONTROLLA SE L'UTENTE ESISTE

ME, CON IL SUO USERNAME

name lse

ESISTENTE ' IMPOSTA LA SESSION "LOGGATO" CON

< <p>&n<p align="center"><b><font face="Verdana" size="3">Sezioni Riservate - Login</font></b></p> <!-- #i<% ' PRELEVA L'USERNAME E LA PASSWORD INSE UPassword ' ' CHE I CAMPI "Username" e "P

Us rname <> "" and Password <> "" then

' ' url_Ddatabase/database.mdb") Set Conn = Serverc Set RecSet = Server.CreateObject("ADODB.Reco' COME SI NOTA, LA PARTE "... AND ATTIVO =' ' REGISTRAZIONE, IN CASO CONTRARIO ' ESS'

SQL = "SELECT * FRO'"RecSet.Open SQL, Conn, adOpenStatic, adLockOptimistic ' IF Not RecSet.Eof Then ' UTENTE ESISTENTE ' IMPOSTA DUE SESSION:' - LOGGATO, CON IL VALORE DI TRUE ' - USERNA Session("Loggato") = True Session("Username") = UserE' ALTRIMENTI ... UTENTE NON

Page 92: [E-Book ITA] Creare Un Sito in ASP - Aranzulla

© Salvatore Aranzulla – Trucchi, consigli e suggerimenti per il tuo portale in ASP! http://salvatore-aranzulla.splinder.it – http://www.hardwaremax.it

Pagina 92 di 162

ORE DI FALSE

Loggato") = False nd IF

ecSet.Close t = Nothing

O

PAGINA PROTETTA

edirect "protetta_home.asp"

NON

SERNAME" E "PASSWORD" VUOTI >

p align="center"><b><font face="Verdana" size="2">Compila correttamente tutti i

% F

/body>

' IL VAL Session("E ' Chiude la connessione al DB RSet RecSe Conn.Close Set Conn = Nothing ' FA LA CONDIZIONE PER VERIFICARE SE L'UTENTE E' STAT' IDENTIFICATO O MENO IF Session("Loggato") = True then ' UTENTE IDENTIFICATO... ' PORTA L'UTENTE NELLA ' CHE NOI ABBIAMO CHIAMATO "PROTETTA_HOME.ASP" Response.R Else ' DATI NON CORRETTI (UTENTE INESISTENTE - USERNAME/PASSWORDCORRETTI)%> <hr> <p align="center"><b><font face="Verdana" size="2">Username/Password non corretti!</font></b></p> <hr> <% End IF Else ' CAMPI "U%<hr> <campi!</font></b></p> <hr> <End I%> <</html>

Page 93: [E-Book ITA] Creare Un Sito in ASP - Aranzulla

© Salvatore Aranzulla – Trucchi, consigli e suggerimenti per il tuo portale in ASP! http://salvatore-aranzulla.splinder.it – http://www.hardwaremax.it

Pagina 93 di 162

questo punto, una volta inseriti i dati di identificazione, se questi sono corretti si p”, che sarà riservata solo agli iscritti

sta pagina, spieghiamo come devono essere create le l cui accesso deve essere riservato solo agli utenti...

e dovranno essere fatte le pagine riservate solo agli utenti registrati:

TIFICATO (LOGGATO)

("Loggato") = False and Session("Username") = "" then NON LOGGATO

ATO" = FALSE E LA SESSION "USERNAME" NON HA NESSUN

INA LOGIN.ASP

>

er"><b><font face="Verdana" size="3">Sezioni Riservate - Pagina

ollo (IF … Then) per è identificato, in caso contrario si verrà portati nella pagina di

(LOGGATO)

False and Session("Username") = "" then

Esempio di sezione riservata Averrà portati nella pagina “protetta_home.asdel sito. Prima di vedere il codice di quepagine i Ecco com <% ' VERIFICHIAMO SE L'UTENTE E' IDEN IF Session' UTENTE' (SESSION "LOGGVALORE) ' PORTA L'UTENTE NELLA PAG' PER FARLO IDENTIFICARE Response.Redirect "login.asp" End IF %<html> <head> <title>SEZIONI RISERVATE</title> </head> <body> <p>&nbsp;</p><p align="centProtetta</font></b></p> </body> </html> In questo modo all’inizio della pagina viene fatto un contrverificare se l’utentelogin (“login.asp”). Ecco il codice della pagina “protetta_home.asp”: <% ' VERIFICHIAMO SE L'UTENTE E' IDENTIFICATO IF Session("Loggato") =

Page 94: [E-Book ITA] Creare Un Sito in ASP - Aranzulla

© Salvatore Aranzulla – Trucchi, consigli e suggerimenti per il tuo portale in ASP! http://salvatore-aranzulla.splinder.it – http://www.hardwaremax.it

Pagina 94 di 162

UTENTE NON LOGGATO GGATO" = FALSE E LA SESSION "USERNAME" NON HA NESSUN

LLA PAGINA LOGIN.ASP PER FARLO IDENTIFICARE

ct "login.asp" nd IF

html>

head>

body>

p>&nbsp;</p> ="center"><b><font face="Verdana" size="3">Sezioni Riservate - Area

ersonale</font></b></p>

p align="left"><b><font face="Verdana" size="3">Benvenuto on("Username")%> <%' VISUALIZZA IL NOME DELL'UTENTE

/p>

<b><font face="Verdana" size="2"><a href="cambia_password1.asp">Cambia

ref="esci.asp">Esci</a></font></b></li>

l>

Cambia_password1.asp, per far cambiare all’utente la propria password Esci.asp, per far uscire l’utente dall’area riservata

cco il codice della pagina “esci.asp”, per uscire dalla sezione riservata:

ELLA TUTTE LE SESSION

TA L'UTENTE NELLA PAGINA PRINCIPALE

' ' (SESSION "LOVALORE) ' PORTA L'UTENTE NE' Response.RedireE%> < <<title>SEZIONI RISERVATE</title> </head> < <<p alignp <<i><%=Sessi%></i></font></b>< <ul> <li> Password</a></font></b></li> <li> <b><font face="Verdana" size="2"><a h</ul> </body> </htm Come si nota ci sono due link:

• •

E <% ' CANC Session.Abandon ' POR

Page 95: [E-Book ITA] Creare Un Sito in ASP - Aranzulla

© Salvatore Aranzulla – Trucchi, consigli e suggerimenti per il tuo portale in ASP! http://salvatore-aranzulla.splinder.it – http://www.hardwaremax.it

Pagina 95 di 162

TO (IN QUESTO CASO PORTA L'UTENTE NELLA PAGINA "SEZIONI_RISERVATE.ASP")

esponse.Redirect "sezioni_riservate.asp"

o invece alla creazione della pagina “cambia_password1.asp”, per far iare la password all’utente:

IAMO SE L'UTENTE E' IDENTIFICATO (LOGGATO)

("Loggato") = False and Session("Username") = "" then UTENTE NON LOGGATO (SESSION "LOGGATO" = FALSE E LA SESSION "USERNAME" NON HA NESSUN

PORTA L'UTENTE NELLA PAGINA LOGIN.ASP

esponse.Redirect "login.asp"

head>

y>

p align="center"><b><font face="Verdana" size="3">Sezioni Riservate - Cambia

" action="cambia_password2.asp"> <div align="center">

"61%" cellspacing="0" cellpadding="0"> <tr>

ia

</tr>

ize="2">Nuova assword:</font></td>

' DEL SI' R%>

Modifica dati utenti Passiamcamb <% ' VERIFICH IF Session' ' VALORE) ' ' PER FARLO IDENTIFICARE REnd IF %> <html> <<title>SEZIONI RISERVATE</title> </head> <bod <p>&nbsp;</p> <Password</font></b></p> <form method="POST <center> <table border="0" width= <td width="50%"><font face="Verdana" size="2">Vecchpassword:</font></td> <td width="50%"><input type="password" name="password1" size="20"></td> <tr> <td width="50%"><font face="Verdana" sP

Page 96: [E-Book ITA] Creare Un Sito in ASP - Aranzulla

© Salvatore Aranzulla – Trucchi, consigli e suggerimenti per il tuo portale in ASP! http://salvatore-aranzulla.splinder.it – http://www.hardwaremax.it

Pagina 96 di 162

td width="50%"><input name="password2" size="20"></td> /tr>

<td width="100%" colspan="2">

align="center"><input type="submit" value="Modifica" name="B1"><input "></p></td>

</table> er>

</div>

password2.asp”:

IAMO SE L'UTENTE E' IDENTIFICATO (LOGGATO)

ATO" = FALSE E LA SESSION "USERNAME" NON HA NESSUN

ENTIFICARE

Redirect "login.asp"

I RISERVATE</title>

;</p> p align="center"><b><font face="Verdana" size="3">Sezioni Riservate - Cambia

/font></b></p>

PRELEVA LE PASSWORD INSERITE

WORD

< < <tr> <ptype="reset" value="Reimposta" name="B2 </tr> </cent </form> </body> </html> I dati inseriti in questa pagina verranno passati alla pagina “cambia_ <% ' VERIFICH IF Session("Loggato") = False and Session("Username") = "" then ' UTENTE NON LOGGATO ' (SESSION "LOGGVALORE) ' PORTA L'UTENTE NELLA PAGINA LOGIN.ASP ' PER FARLO ID Response.End IF %> <html> <head> <title>SEZION</head> <body> <p>&nbsp<Password< <!-- #include file = "adovbs.inc" --> <% ' Password1 = Replace(Request.Form("password1"), "'", "''") ' (LA PASSVECCHIA)

Page 97: [E-Book ITA] Creare Un Sito in ASP - Aranzulla

© Salvatore Aranzulla – Trucchi, consigli e suggerimenti per il tuo portale in ASP! http://salvatore-aranzulla.splinder.it – http://www.hardwaremax.it

Pagina 97 di 162

orm("password2"), "'", "''") ' (LA PASSWORD NUOVA)

TROLLA INNANZITUTTO SE E' STATO PASSATO UN VALORE, CIOE' VERIFICA AMPI PASSWORD NON SIANO STATI LASCIATI VUOTI

rd1 <> "" and Password2 <> "" then

K...

SO DEL DATABASE rl_DB = "driver={Microsoft Access Driver (*.mdb)};dbq=" & server.mappath("/mdb-

ecSet = Server.CreateObject("ADODB.Recordset") re username = '" & session("username") &"' and

password1 & "'" ecSet.Open SQL, Conn, adOpenStatic, adLockOptimistic

DATI PASSATI SONO ESATTI

DATI ESATTI

ABILE TTI" SU TRUE

("password") = password2 ecSet.Update

lse

TI NON ESATTI IMPOSTA LA VARIABILE

nd IF

B

et RecSet = Nothing

Password2 = Replace(Request.F ' CON' CHE I C IF Passwo ' TUTTO O ' PERCORudatabase/database.mdb") Set Conn = Server.CreateObject("ADODB.Connection") conn.Open url_DB Set RSQL = "SELECT * FROM Utenti whepassword = '" &R ' CONTROLLA SE I IF Not RecSet.Eof Then ' ' CAMBIA LA PASSWORD ' E IMPOSTA LA VARI' "ESA RecSetR Esatti = True E ' ALTRIMENTI ... DA' ' "ESATTI" SU FALSE Esatti = False E ' Chiude la connessione al D RecSet.Close S Conn.Close

Page 98: [E-Book ITA] Creare Un Sito in ASP - Aranzulla

© Salvatore Aranzulla – Trucchi, consigli e suggerimenti per il tuo portale in ASP! http://salvatore-aranzulla.splinder.it – http://www.hardwaremax.it

Pagina 98 di 162

ATA A NON E' ESATTA

True then

ign="center"><b><font face="Verdana" size="2">Password aggiornata

orrettamente!</font></b></p>

lse

SWORD INSERITA NON ESATTA

na" size="2">La Password inserita non è

hr>

F

tutti i /font></b></p>

%

y>

nalmente terminato la parte utente del nostro script!

zione parte amministrativa per la gestione di tutto lo script

tta la parte amministrativa del nostro script per la

Set Conn = Nothing ' FA LA CONDIZIONE PER SCEGLIERE QUALE MESSAGGIO MOSTRARE UTENTE: ' - LA PASSWORD E' STATA MODIFIC' - LA PASSWORD INSERIT IF Esatti = ' PASSWORD CAMBIATA... %> <hr><p alc<hr> <% E ' PAS%> <hr><p align="center"><b><font face="Verdaesatta!</font></b></p> <<% End I Else ' CAMPI PASSWORD VUOTI %> <hr> <p align="center"><b><font face="Verdana" size="2">Compila correttamentecampi!<<hr><End IF %> </bod </html> Abbiamo fi

Crea Partiamo a questo punto a creare turegistrazione.

Page 99: [E-Book ITA] Creare Un Sito in ASP - Aranzulla

© Salvatore Aranzulla – Trucchi, consigli e suggerimenti per il tuo portale in ASP! http://salvatore-aranzulla.splinder.it – http://www.hardwaremax.it

Pagina 99 di 162

da qui, dovranno essere inseriti in una nuova cartella che emo e che chiameremo “admin”, quindi avremo <cartella nostro sito>/admin/

n modulo per lle registrazioni:

TROLLA SE SONO STATI INSERITI DATI NEI DUE CAMPI GIN (USERNAME E PASSWORD)

NAME AMMINISTRATORE sername = "admin"

PASSWORD AMMINISTRATORE "admin"

Lcase(Request.Form("username")) = Lcase(username) and

ession("amministratore") = true

title>GESTIONE REGISTRAZIONI</title>

body>

estione egistrazioni!</font></b></p>

x.asp">

<center> "39%">

"50%"><font face="Verdana" size="2">Username:</font></td> d width="50%"><input type="text" name="username" size="20"></td>

</tr>

th="50%"><font face="Verdana" size="2">Password:</font></td> <td width="50%"><input type="password" name="password"

<tr>

Tutti i file citati partendocreer Di seguito il codice della prima pagina “index.asp”, che contiene uidentificarsi come amministratore del sito ed entrare nella gestione de <% ' CON' DI LO ' USERu ' password = IFLcase(Request.Form("password")) = Lcase(password) then ' I DATI SONO ESATTI E SI VIENE IDENTIFICATI COME AMMINISTRATORE ' E PORTATI NELLA PAGINA "GESTIONE_REGISTRAZIONI.ASP" sResponse.Redirect "Gestione_registrazioni.asp" End if %> <html> <head> <</head> < <p align="center">&nbsp;</p> <p align="center"><b><font size="4" face="Verdana">GR<form method="POST" action="inde <div align="center"> <table border="0" cellpadding="0" cellspacing="0" width= <tr> <td width= <t <tr> <td wid size="20"></td> </tr>

Page 100: [E-Book ITA] Creare Un Sito in ASP - Aranzulla

© Salvatore Aranzulla – Trucchi, consigli e suggerimenti per il tuo portale in ASP! http://salvatore-aranzulla.splinder.it – http://www.hardwaremax.it

Pagina 100 di 162

/tr> <tr>

type="submit" value="Invia" name="B1"><input pe="reset" value="Reimposta" name="B2"></td>

/tr>

ign="center">&nbsp;</p>

/body>

cco il codice della pagina “Gestione_registrazioni.asp”, nella quale vengono ti gli utenti registrati:

CATI COME AMMINISTRATORE

sp" nd IF

body>

p align="left"><font size="4" face="Verdana"><b>&gt; Gestione t></p>

ign="left"><font size="2" face="Verdana">Ecco gli utenti registrati al

DI UTENTI PER PAGINA

ent = 1

t.QueryString("order") = "" Then

<td width="100%" colspan="2" height="5"> </td> < <td width="100%" colspan="2"> <p align="center"><input ty < </table> </center> </div> </form><p al < </html> Evisualizza <% ' CONTROLLA SE SI E' IDENTIFIIF Session("Amministratore") <> True Then Response.Redirect "index.aE%> <html> <head> <title>GESTIONE REGISTRAZIONI</title> </head> < <Registrazioni!</b></fon<p alsito:</font></p> <p align="left"><!-- #include virtual = "/adovbs.inc" --> <% ' NUMEROiPageSize = 50 If Request.QueryString("page") = "" Then iPageCurrElse iPageCurrent = CInt(Request.QueryString("page")) End If If Reques

Page 101: [E-Book ITA] Creare Un Sito in ASP - Aranzulla

© Salvatore Aranzulla – Trucchi, consigli e suggerimenti per il tuo portale in ASP! http://salvatore-aranzulla.splinder.it – http://www.hardwaremax.it

Pagina 101 di 162

y = "id"

DEL DATABASE th("/mdb-

b")

DODB.Recordset")

CHIESTA AL DATABASE LECT * FROM Utenti ORDER BY " & strOrderBy & " DESC;"

ize = iPageSize

ize = iPageSize

geCurrent > iPageCount Then iPageCurrent = iPageCount geCurrent < 1 Then iPageCurrent = 1

E VISUALIZZATO UN MESSAGGIO CHE

ENTE! iPageCount = 0 Then

p align="center"><b><font size="2" face="Verdana">Nessun utente to!</font></b></p>

hr>

geCurrent

E SONO PRESENTI DEGLI UTENTI.. >

rder="0" cellpadding="0" cellspacing="0" width="100%"> % VISUALIZZA L'USERNAME DELL'UTENTE

umero = numero + 1

size="2"><%=numero%>.</font></td>

strOrderBElse strOrderBy = Request.QueryString("order") End If ' PERCORSOurl_DB = "driver={Microsoft Access Driver (*.mdb)};dbq=" & server.mappadatabase/database.md Set Conn = Server.CreateObject("ADODB.Connection") conn.Open url_DB Set RS = Server.CreateObject("A ' FA LA RIsql = "SE RS.Open sql, conn, adOpenKeyset RS.PageS RS.CacheS iPageCount = RS.PageCount If iPaIf iPa ' NESSUN UTENTE REGISTRATO -> VIENINFORMA CHE NON E' REGISTRATO ' NEMMENO UN UTIf%><hr> <registra<<% Else RS.AbsolutePage = iPaiRecordsShown = 0 ' SE INVEC%<table bo<' Do While iRecordsShown < iPageSize And Not RS.EOF n%> <tr> <td width="7%"><font face="Verdana"

Page 102: [E-Book ITA] Creare Un Sito in ASP - Aranzulla

© Salvatore Aranzulla – Trucchi, consigli e suggerimenti per il tuo portale in ASP! http://salvatore-aranzulla.splinder.it – http://www.hardwaremax.it

Pagina 102 di 162

ce="Verdana" size="2"><a odifica_utente.asp?id=<%=RS("id")%>"><b><%=RS("Username")%></b>

t></td> idth="19%"><font face="Verdana" size="2"><a

ref="Elimina_utente.asp?id=<%=RS("id")%>">Cancella</a></font></td>

ecordsShown = iRecordsShown + 1 ext

oop

f

><center>

PAGINE, DATO CHE VERRANNO MOSTRATI

font face="Verdana" size="2">[ <b> <a x%>&order=<%=

r.URLEncode(strOrderBy) %>"><%=x%></a></b> ]</font>

ter>

/body>

delle registrazioni, come si nota, vi sono due nk: uno alla pagina “Modifica_utente.asp”, con un modulo per modificare i dati

utente.asp”, per eliminare la registrazione di un utente dal ostro sito.

cco il codice della pagina “Elimina_utente.asp”, per eliminare un utente:

<td width="172%"><font fahref="M</fon <td wh </tr> <% iRRS.MoveNL%> </table> <% End IRS.Close Set RS = Nothing Conn.Close %<% ' MOSTRA IL NUMERO DELLE ' ' IN QUESTO ESEMPIO 50 UTENTI PER PAGINA For x=1 to iPageCount %> <href="Gestione_Registrazioni.asp?page=<%=Serve<% Next %> </cen</p> < </html> Nel codice della pagina per la gestionelidell’utente, e “Elimina_n E <!-- #include virtual = "/adovbs.inc" --> <% ' PERCORSO DEL DATABASE

Page 103: [E-Book ITA] Creare Un Sito in ASP - Aranzulla

© Salvatore Aranzulla – Trucchi, consigli e suggerimenti per il tuo portale in ASP! http://salvatore-aranzulla.splinder.it – http://www.hardwaremax.it

Pagina 103 di 162

rl_DB = "driver={Microsoft Access Driver (*.mdb)};dbq=" & server.mappath("/mdb-mdb")

et Conn = Server.CreateObject("ADODB.Connection") Open url_DB

ect("ADODB.Recordset") & Request.QueryString("id") &""

ic, adLockOptimistic

RecSet.Eof = False Then

L'UTENTE E' PRESENTE, LO CANCELLA E AGGIORNA IL DB

te

et.Close lose

nn = Nothing

L'AMMINISTRATORE NELLA PAGINA "GESTIONE_REGISTRAZIONI.ASP" onse.Redirect "Gestione_registrazioni.asp"

>

nte; ecco il codice della

CONTROLLA SE SI E' IDENTIFICATI ("amministratore")<>true then

esponse.Redirect "index.asp"

html>

<head> GISTRAZIONI</title>

/head> <b<!- = "/adovbs.inc" -->

% PERCORSO DEL DATABASE

Driver (*.mdb)};dbq=" & server.mappath("/mdb-atabase/database.mdb")

Set Conn = Server.CreateObject("ADODB.Connection")

udatabase/database. Sconn. Set RecSet = Server.CreateObjSQL = "SELECT * FROM Utenti WHERE ID = "RecSet.Open SQL, Conn, adOpenStat ' CONTROLLA SE L'UTENTE ESISTE If ' RecSet.DeleteRecSet.UpdaEnd IF RecSConn.C Set RecSet = Nothing Set Co ' PORTAResp% Passiamo ora alle due pagine per la modifica dei dati di un utepagina “Modifica_utente.asp”: <% ' IF sessionREnd IF %> <

<title>GESTIONE RE<

ody> - #include virtual

<' url_DB = "driver={Microsoft Accessd

Page 104: [E-Book ITA] Creare Un Sito in ASP - Aranzulla

© Salvatore Aranzulla – Trucchi, consigli e suggerimenti per il tuo portale in ASP! http://salvatore-aranzulla.splinder.it – http://www.hardwaremax.it

Pagina 104 di 162

et RecSet = Server.CreateObject("ADODB.Recordset") ' PRSQL = WHERE ID = " & Request.QueryString("id") &"" RecSet.Open SQL, Conn, adOpenStatic, adLockOptimistic ' C IF Not RecSet.Eof Then %><p odifica Utente</font></b></p> <form method="POST" action="Utente_DB.asp?id=<%=RecSet("id")%>"> <tab adding="0" cellspacing="0" width="100%"> "19%"><font face="Verdana" size="2">Username:</font></td> value= </t >Password:</font></td> "81%"><input type="text" name="password" size="20" val ("password")%>"></td> tr> <talue="<%=RecSet("email")%>"></td> </tr>

<td width="19%"><font face="Verdana" size="2">Utente Attivo/Non

<option <% IF RecSet("attivo") = 1 then%>selected<%end if%>

<option <% IF RecSet("attivo") = 0 then%>selected<%end if%> >

<tr> it" value="Modifica utente"

type="reset" value="Reimposta" name="B2"></td> </tr>

rdana" size="2"><b>Torna lla Gestione delle Registrazioni</b></font></a></p>

TENTE NON ESISTE

conn.Open url_DB S

ELEVA I DATI DELL'UTENTE SELEZIONATO "SELECT * FROM UTENTI

ONTROLLA SE L'UTENTE ESISTE...

><b><font face="Verdana" size="4">&gt; M

le border="0" cellp<tr> <td width= <td width="81%"><input type="text" name="username" size="20"

"<%=RecSet("username")%>"></td> r>

<tr> <td width="19%"><font face="Verdana" size="2" <td width=ue="<%=RecSet</tr> < <td width="19%"><font face="Verdana" size="2">E-mail:</font></td>

d width="81%"><input type="text" name="email" size="20" v <tr> attivo:</font></td> <td width="81%"><select size="1" name="attivo"> value="1">Attivo</option> value="0">Non attivo</option </select></td> </tr> <td width="100%" colspan="2"><input type="submname="B1"><input </table> </form> <p><a href="Gestione_registrazioni.asp"><font face="Vea<% Else ' ALTRIMENTI... L'U

Page 105: [E-Book ITA] Creare Un Sito in ASP - Aranzulla

© Salvatore Aranzulla – Trucchi, consigli e suggerimenti per il tuo portale in ASP! http://salvatore-aranzulla.splinder.it – http://www.hardwaremax.it

Pagina 105 di 162

A L'AMMINISTRATORE NELLA PAGINA PRECEDENTE...

stione_registrazioni.asp"

et.Close onn.Close

et RecSet = Nothing = Nothing

>

dati dell’utente inseriti verranno passati alla pagina “Utente_DB.asp”, che

CATI

sp" nd IF

p><b><font face="Verdana" size="4">&gt; Gestione </b></p>

irtual = "/adovbs.inc" -->

ATABASE = "driver={Microsoft Access Driver (*.mdb)};dbq=" & server.mappath("/mdb-

atabase/database.mdb")

ateObject("ADODB.Connection") onn.Open url_DB

TI I CAMPI SONO STATI COMPILATI CORRETTAMENTE n(Request("username")) = 0 or Len(Request("password")) = 0 or

quest("email")) = 0 or Instr(Request("email"), ".") = 0 or

' PORT' Response.Redirect "Ge End IF RecSC SSet Conn%</body> </html> I provvederà a modificare i dati nel DB: <% ' CONTROLLA SE SI E' IDENTIFIIF session("amministratore")<>true then Response.Redirect "index.aE%> <html> <head> <title>GESTIONE NEWS</title> </head> <body> <Registrazioni</font><!-- #include v<% ' PERCORSO DEL Durl_DBd Set Conn = Server.Crec ' CONTROLLA SE TUTIF LeLen(ReInstr(Request("email"), "@") = 0 then

Page 106: [E-Book ITA] Creare Un Sito in ASP - Aranzulla

© Salvatore Aranzulla – Trucchi, consigli e suggerimenti per il tuo portale in ASP! http://salvatore-aranzulla.splinder.it – http://www.hardwaremax.it

Pagina 106 di 162

I NON COMPILATI CORRETTAMENTE! >

Campi non compilati orrettamente!</b></font></p>

%

CAMPI COMPILATI CORRETTAMENTE

B.Recordset") QL = "SELECT * FROM UTENTI WHERE ID = " & Request.Querystring("id") &""

ockOptimistic

Not RecSet.Eof Then

TENTE...

ecSet.Update

ALTRIMENTI..

RE NELLA PAGINA

esponse.Redirect "Gestione_registrazioni.asp"

ose ecSet = Nothing

et Conn = Nothing

hr> ign="center"><font face="Verdana" size="4"><b>Operazione eseguita

%

>

' CAMP%<hr> <p align="center"><font face="Verdana" size="4"><b>c<hr> <Else ' Set RecSet = Server.CreateObject("ADODSRecSet.Open SQL, Conn, adOpenStatic, adL ' CONTROLLA SE L'UTENTE ESISTE... IF ' UTENTE ESIS RecSet("username") = Replace(Request.Form("username"), "'", "''") RecSet("password") = Replace(Request.Form("password"), "'", "''") RecSet("email") = Replace(Request.Form("email"), "'", "''") RecSet("attivo") = Request.Form("attivo") ' AGGIORNA IL DB R Else ' ' UTENTE NON ESISTENTE... ' PORTA L'AMMINISTRATO' "GESTIONE_REGISTRAZIONI.ASP" R End IF RecSet.Close Conn.ClSet RS%> <<p alcorrettamente!</b></font></p> <hr> <End IF %

Page 107: [E-Book ITA] Creare Un Sito in ASP - Aranzulla

© Salvatore Aranzulla – Trucchi, consigli e suggerimenti per il tuo portale in ASP! http://salvatore-aranzulla.splinder.it – http://www.hardwaremax.it

Pagina 107 di 162

p">Torna alla Gestione delle zioni</a></b></font></p>

/body> </html> Abbiamo terminato così la realizzazione del nostro script. Vediamo ora comunque delle personalizzazioni...

Personalizzazioni

1. Integrazione con la newsletter 2. Pulizia DB 3. Trucchi vari

Integrazione con la newsletter Vediamo come modificare lo script della newsletter per far inviare la newsletter agli iscritti del nostro sito:

1. Apriamo la pagina di gestione della newsletter (“Gestione_Newsletter.asp”) 2. Cerchiamo queste righe: ' APRE LA CONNESSIONE AL DATABASE E PRELEVA LE EMAIL DELLA NEWSLETTER Set RecSet = Server.CreateObject("ADODB.Recordset") SQL = "SELECT * FROM Email_Newsletter" 3. Sostituiamo quindi la riga: SQL = "SELECT * FROM Email_Newsletter" 4. Con questa riga: SQL = "SELECT Email FROM Utenti" 5. In questo modo le email verranno prese direttamente dalla tabella “Utenti”,

che si trova nello stesso DB della newsletter, e riceveranno la newsletter solo gli utenti registrati del sito!

6. Cambiamo inoltre sempre nella pagina “Gestione_newsletter.asp” la riga: SQL = "SELECT Count(*) FROM Email_Newsletter" 7. Con questa: SQL = "SELECT Count(*) FROM Utenti" 8. In questo modo verranno visualizzati accanto alla scritta “Numero iscritti:”, il

numero degli iscritti al nostro sito (... e di conseguenza alla nostra newsletter!)

<p align="left"><font face="Verdana" size="2"><b><a href="Gestione_registrazioni.asRegistra <

Page 108: [E-Book ITA] Creare Un Sito in ASP - Aranzulla

© Salvatore Aranzulla – Trucchi, consigli e suggerimenti per il tuo portale in ASP! http://salvatore-aranzulla.splinder.it – http://www.hardwaremax.it

Pagina 108 di 162

Ogni tanto possiamo fare pulizia nel nostro DB eliminando tutti gli iscritti che non hanno confermato la loro registrazione con questo script:

!-- #include virtual = "/adovbs.inc" -->

rl_DB = "driver={Microsoft Access Driver (*.mdb)};dbq=" & server.mappath("/mdb-

Set Co Connection") con O

.Recordset") QL = "SELECT * FROM UTENTI WHERE ATTIVO = 0"

ecSet.Update RecSet.Movenext

Pulizia_DB.asp”:

h d<ti ></h a

bo y

size="4">&gt; Pulizia DB</font></b></p> clude virtual = "/adovbs.inc" -->

<% ' PERCORSO DEL DATABASE url_DB = "driver={Microsoft Access Driver (*.mdb)};dbq=" & server.mappath("/mdb-database/database.mdb") Set Conn = Server.CreateObject("ADODB.Connection") conn.Open url_DB

Pulizia DB

<<% ' PERCORSO DEL DATABASE udatabase/database.mdb")

nn = Server.CreateObject("ADODB.n. pen url_DB

Set RecSet = Server.CreateObject("ADODBSRecSet.Open SQL, Conn, adOpenStatic, adLockOptimistic Do Until RecSet.Eof RecSet.Delete R

Loop RecSet.Close Set RecSet = Nothing Conn.Close et Conn = Nothing S

%>

oi ad esempio abbiamo creato la pagina “N <html> < ea >

tle GESTIONE REGISTRAZIONI</title> e d>

< d >

p><b><font face="Verdana"<<!-- #in

Page 109: [E-Book ITA] Creare Un Sito in ASP - Aranzulla

© Salvatore Aranzulla – Trucchi, consigli e suggerimenti per il tuo portale in ASP! http://salvatore-aranzulla.splinder.it – http://www.hardwaremax.it

Pagina 109 di 162

Set RecSet = Server.CreateObject("ADODB.Recordset") SQL = "SELECT * FROM UTENTI WHERE ATTIVO = 0" RecSet.Open SQL, Conn, adOpenStatic, adLockOptimistic ' CANCELLA GLI UTENTI CHE NON ' HANNO ATTIVATO LA LORO REGISTRAZIONE... Do Until RecSet.Eof RecSet.Delete RecSet.Update RecSet.Movenext Loop RecSet.Close Set RecSet = Nothing Conn.Close Set Conn = Nothing %> <hr> <p align="center"><font face="Verdana" size="4"><b>Operazione eseguita

“Gestioni_registrazioni.asp”, crivendo nel codice HTML della pagina:

a href="Pulizia_DB.asp">Pulizia DB</a>

a nella cartella ”...

te dopo solo 20 minuti di inattività. uesto significa che se un utente si ferma a leggere una pagina protetta del nostro

er aggirare l’ostacolo, inseriremo nelle nostre pagine protette, al posto di:

<%

correttamente!</b></font></p> <hr> <p><a href="Gestione_registrazioni.asp"><font face="Verdana" size="2"><b>Tornaalla Gestione delle Registrazioni</b></font></a></p> </body> </html> Può essere inserito un link verso questa pagina ins < Ovviamente la pagina “Pulizia_DB.asp” dovrà essere inserit“admin Trucchi vari Di default una session si cancella automaticamenQsito per oltre 20 minuti e poi cerca di aprire un’altra pagina protetta, l’utente non verrà più considerato identificato e gli verrà visualizzata la pagina di login... P

Page 110: [E-Book ITA] Creare Un Sito in ASP - Aranzulla

© Salvatore Aranzulla – Trucchi, consigli e suggerimenti per il tuo portale in ASP! http://salvatore-aranzulla.splinder.it – http://www.hardwaremax.it

Pagina 110 di 162

VERIFICHIAMO SE L'UTENTE E' IDENTIFICATO (LOGGATO)

Session("Loggato") = False and Session("Username") = "" then

(SESSION "LOGGATO" = FALSE E LA SESSION "USERNAME" NON HA NESSUN VA R ' PO T AGINA LOGIN.ASP PER FARLO IDENTIFICARE

esponse.Redirect "login.asp"

>

% sion.Timeout = numero di minuti dopo i quali la session sarà nulla...

CATO (LOGGATO) n("Username") = "" then

' IF' UTENTE NON LOGGATO '

LO E)

R A L'UTENTE NELLA P' REnd IF % Questo: <' Ses' AD ESEMPIO: Session.Timeout = 80 ' VERIFICHIAMO SE L'UTENTE E' IDENTIFIIF Session("Loggato") = False and SessioResponse.Redirect "login.asp" End IF %>

Page 111: [E-Book ITA] Creare Un Sito in ASP - Aranzulla

© Salvatore Aranzulla – Trucchi, consigli e suggerimenti per il tuo portale in ASP! http://salvatore-aranzulla.splinder.it – http://www.hardwaremax.it

Pagina 111 di 162

Creare una chat ri utenti. A questo scopo risulta

ono le possibilità per la sua realizzazione in ASP:

DB) Access

database (DB) Access

soluzione molto scomoda, poiché si dovrebbero richiedere/aggiungere stro database Access continuamente, con i problemi che ne deriverebbero:

zza e spesso blocchi, perché come si sa un database Access supporta massimo e.

luzione che utilizzeremo per la creazione della nostra chat. ome le loro “gemelle” Session, servono per condividere dei dati applicazione in ASP, però a differenza delle Session esse condividono

lobale, fra gli utenti di tutto il sito.

per condividere fra gli utenti del sito i messaggi nnessi.

rà costituita da tre frame, nei quali saranno

sarà una pagina con un modulo in cui inserire i messaggi che, una volta inviati, verranno visualizzati nella chat

, la lista degli utenti connessi alla chat i messaggi della chat

Capitolo 13

In un sito è molto importante comunicare con i propfondamentale la creazione di una chat, Due s

• Utilizzare un database (• Utilizzare le Application

Utilizzare un Si tratta di unadati dal nolente30 utenti contemporaneament

Utilizzare le Application Questa è la soLe Application, call’interno di unadati a livello g Utilizzeremo, appunto, le Applicationella chat e la lista degli utenti cod

Iniziamo a parlare della chat. Essa sa

t: visualizzate le varie parti della cha

• Nel frame inferiore ci

• Nel frame laterale ci sarà, invece• Nel frame centrale ci sa ranno invece

Quindi, questa sarà la chat:

Page 112: [E-Book ITA] Creare Un Sito in ASP - Aranzulla

passare ad analizzare il codice dello script ASP spieghiamo come funziona

i i quali, una volta fatto click sul tasto che conterrà i messaggi della chat.

application sono separati da “@!/”, in modo da oterli formattare in seguito, per la loro visualizzazione.

gni messaggio avrà un formato di questo tipo:

sername Utente</b> Ora : Messaggio@!/

l’application “messaggi” ad esempio sarà:

b>Salvatore</b> - 21.52.28 : ciao a tutti! :D

ame centrale, nel quale verranno visualizzati i messaggi della chat, la stringa eparatrice “@!/” verrà rimpiazzata con un “a capo” (<br>) in questo modo i

aggi verranno visualizzati in modo ordinato. Per l’username in grassetto rovvederanno i tag HTML <b> e </b> (in mezzo ai quali è inserito l’username

renderlo grassetto.

accade per gli username degli utenti connessi in chat, che sono sempre parati da “@!/”. Essi sono contenuti nell’application “Username”, che sarà ad

!/Salvatore@!/Giuseppe

Prima ditecnicamente la chat. Nella parte inferiore verranno inseriti i messaggInvia, verranno inseriti nell’application “Messaggi”Tutti i messaggi inseriti in questap O <b>U Quindi <b>Salvatore</b> - 21.52.33 : proviamo la chat del mio libro! :D@!/< Nel frsmesspdell’utente del messaggio) a La stessa cosa seesempio: @

© Salvatore Aranzulla – Trucchi, consigli e suggerimenti per il tuo portale in ASP! http://salvatore-aranzulla.splinder.it – http://www.hardwaremax.it

Pagina 112 di 162

Page 113: [E-Book ITA] Creare Un Sito in ASP - Aranzulla

© Salvatore Aranzulla – Trucchi, consigli e suggerimenti per il tuo portale in ASP! http://salvatore-aranzulla.splinder.it – http://www.hardwaremax.it

Pagina 113 di 162

proprio.

“cuore” della chat è la pagina “chat.asp”. Questa pagina tuttofare avrà tre funzioni:

n modulo nel quale inserire il proprio username • Effettuare l’identificazione dell’utente in chat

co il suo codice:

title>CHAT</title>

IL SESSION.TIMEOUT A UN MINUTO (1) PER MANTENERE

TENTI CHE ESCONO DALLA CHAT

NE

ELL'UTENTE TERMINERA' E AGGIO

ssion.Timeout = 1

LA CHAT, VIENE NASCOSTO IL TAG "<BODY>" MENTI

ORMATA)

Session("Username") = "" then

d IF

("tipo")

> "" and Session("Loggato_Chat") = True then

E" VRA'

Dopo questa introduzione passiamo al codice vero e Il

• Visualizzare u

• Visualizzare la chat Ec <html> <head> <</head> <% ' IMPOSTA ' ' AGGIORNATA LA LISTA DEGLI U' ' (DOPO OGNI MINUTO CHE LA SESSION' NON VIENE RINNOVATA, LA SESSIO' D' VERRA' VISUALIZZATO UN MESS' CHE INFORMA CHE L'UTENTE E' USCITO ' DALLA CHAT) Se ' SE SI DEVE FAR VISUALIZZARE ' ' (PERCHE' ALTRI' NON VERRANNO VISUALIZZATI ' I FRAME DI CUI ESSA E' F IFResponse.Write "<body>" En ' RICHIEDE L'OPERAZIONE DA FARE Operazione = Request IF Session("Username") < ' LA SESSION "USERNAM' CONTIENE UN VALORE E QUINDI DO' ESSERE VISUALIZZATA LA CHAT...

Page 114: [E-Book ITA] Creare Un Sito in ASP - Aranzulla

© Salvatore Aranzulla – Trucchi, consigli e suggerimenti per il tuo portale in ASP! http://salvatore-aranzulla.splinder.it – http://www.hardwaremax.it

Pagina 114 di 162

LA CHAT E' FORMATA DA TRE FRAME: ENTI CONNESSI

A: UTENTI_CHAT.ASP)

CENTRALE, CON I MESSAGGI DELLA CHAT (PAGINA: CENTRO_CHAT.ASP)

<frameset rows="*,15%"> rame name="Centro" src="centro_chat.asp"> rame name="Inferiore" src="msg_chat.asp">

<body>

O SUPPORTATI

>

ta dal browser in uso.</p>

es> t>

ORE DELLA VARIABILE E" E' "LOGIN" DOVRA'

ESSERE EFFETTUTATO IL LOGIN ARE IN CHAT...

IFICA INNANZITTUTTO AMPO "USERNAME" E' STATO

PILATO CORRETTAMENTE

sername = Request("username")

sername = Replace(Username, "<", "&lt;") ", "&gt;")

' ' - UNO LATERALE, CON GLI UT' (PAGIN' ' - UNO ' ' ' - UNO INFERIORE, CON UN CAMPO DI TESTO ' DOVE INSERIRE I MESSAGGI CHE APPARIRANNO IN CHAT ' (PAGINA: MSG_CHAT.ASP) %> <frameset cols="78%,*"> <f <f </frameset> <frame name="Utenti" src="utenti_chat.asp"> <noframes> <% ' SE NON SON' I FRAME, VISUALIZZA UN MESSAGGIO: % <p>La pagina corrente utilizza i frame. Questa caratteristica non è supporta </body> </nofram</framese <% ElseIF Operazione = "login" then ' SE IL VAL' "OPERAZION' ' PER ENTR ' VER' SE IL C' COM U ' RIMPIAZZA "<" E ">" CON IL LORO ' CORRISPONDENDE CODICE HTML UUsername = Replace(Username, ">

Page 115: [E-Book ITA] Creare Un Sito in ASP - Aranzulla

© Salvatore Aranzulla – Trucchi, consigli e suggerimenti per il tuo portale in ASP! http://salvatore-aranzulla.splinder.it – http://www.hardwaremax.it

Pagina 115 di 162

GLI UTENTI COLLEGATI GONO SALVATI IN UNA APPLICATION

(CHE, COME SI SA, SERVE PER CONDIVIDERE I, DELLE INFORMAZIONI FRA GLI UTENTI

DI UN SITO...)

PER L'USERNAME QUESTI CARATTERI NON

IF I ' USER %><p ali

hr>

b><font size="3" face="Verdana">Username non valido!</font></b>

I UTENTI COLLEGATI IN CHAT SI TROVANO PLICATION "UTENTI")

pplication("utenti"), "@!/" & Username) > 0 then

USERNAME GIA' IN USO...

hr> ign="center">

già in uso!</font></b>

%

lse

ON USATO... UNGE NELLA LISTA DEGLI UTENTI

CONNESSI...

SERIRE UOVO UTENTE, PER EVITARE CONFLITTI...

pplication.Lock

' TUTTI ' VEN' ' DEI DAT' ' OGNI USERNAME E' SEPARATO DAGLI ALTRI ' DA "@!/", QUINDI NEL CONTROLLO ' ' SARANNO AMMESSI

TR M(Username) = "" or Instr(Username, "@!/") > 0 then

NAME NON CORRETTO...

gn="center">&nbsp;</p>

<<p align="center"> <</p><hr> <% Else ' USERNAME CORRETTO ' CONTROLLA SE L'USERNAME E' GIA' IN USO ' (GL' NELL'AP IF Instr(A ' %> <p align="center">&nbsp;</p> <<p al<b><font size="3" face="Verdana">Username</p> <hr> < E ' USERNAME N' LO AGGI' ' ' BLOCCA L'APPLICATION PRIMA DI IN' IL N A

Page 116: [E-Book ITA] Creare Un Sito in ASP - Aranzulla

© Salvatore Aranzulla – Trucchi, consigli e suggerimenti per il tuo portale in ASP! http://salvatore-aranzulla.splinder.it – http://www.hardwaremax.it

Pagina 116 di 162

TI plication("Utenti") = Application("Utenti") & "@!/" & Username

DELL'UTENTE

SESSION CI SARA' UTILE PER FARE APPARIRE L'USERNAME

NTE CHE INSERISCE UN SAGGIO IN CHAT...

on("Username") = Username

SU TRUE

ession("Loggato_Chat") = True

PER FARE QUESTO, INSERISCE

("MESSAGGI"), CHE CONTIENE I AGGI DELLA CHAT

VEDREMO MEGLIO QUESTA APPLICATION

pplication("Messaggi") = "<b>E' entrato in chat <i>" & Username &"</i></b>@!/"

TA L'UTENTE IN CHAT

E

TO UN CONTROLLO ERE SE LA SESSION "USERNAME"

CONTIENE UN VALORE HA (ORA LO HA...) E

E A TRUE,

' AGGIUNGE L'UTENTE NELLA LISTA DEGLI UTENAp ' SBLOCCA L'APPLICATION Application.Unlock ' IMPOSTA LA SESSION "USERNAME" ' CON L'USERNAME' ' QUESTA ' ' DELL'UTE' MES Sessi ' IMPOSTA LA SESSION "LOGGATO_CHAT" ' S ' MOSTRA INOLTRE IN CHAT LA FRASE ' "E' ENTRATO IN CHAT USERNAME" ' ' ' QUESTRA FRASE IN UN'ALTRA APPLICATION ' ' MESS' ' ' NELLE ALTRE PAGINE DELLA CHAT Application.Lock A& Application("Messaggi") Application.Unlock ' POR' ' COME SI NOTA DI SEGUITO, ' LA PAGINA IN CUI SI PORTA L'UTENT' E' QUESTA STESSA! ' ' ALL'INIZIO, SE RICORDATE BENE, VIENE ' FAT' PER VED' ' E SE LO' LA SESSION "LOGGATO_CHAT" E' UGUAL' VIENE VISUALIZZATA LA CHAT...

Page 117: [E-Book ITA] Creare Un Sito in ASP - Aranzulla

© Salvatore Aranzulla – Trucchi, consigli e suggerimenti per il tuo portale in ASP! http://salvatore-aranzulla.splinder.it – http://www.hardwaremax.it

Pagina 117 di 162

Redirect "chat.asp"

SE LA SESSION "USERNAME" NON CONTIENE UN VALORE E LA SESSION "LOGGATO_CHAT"

FALSE, E NON SI DEVE SVOLGERE , VIENE VISUALIZZATA LA FINESTRA

N PER ENTRARE IN CHAT...

p align="center">&nbsp;</p> p align="center"><b><font size="3" face="Verdana">Entra in Chat! -

p>

form method="POST" action="chat.asp?tipo=login">

dding="0" cellspacing="0"> <tr>

face="Verdana" size="2">Username:</font></td> ame="username" size="20"></td>

<p align="center"><input type="submit" value="Invia" name="B1"><input "></p>

</td> /tr>

</center>

%

MOSTRA (O MENO) IL TAG DI CHIUSURA

esponse.Write "</body>"

Response.End IF End IF ' IN CASO CONTRARIO, ' ' NESS' E' UGUALE A' IL LOGIN' DI LOGI Else %> <<Identificazione</font></b></ <div align="center"> <center> < <table border="0" width="309" cellpa <td width="135"><font <td width="170"><input type="text" n </tr> <tr> <td width="305" colspan="2"> type="reset" value="Reimposta" name="B2 < </table> </form> </div> <End IF %> <% ' ' "</BODY>", IN BASE SE DEVE ESSERE VISUALIZZATA ' LA CHAT O DEVE ESSERE ESEGUITA ' UN'ALTRA OPERAZIONE IF Session("Username") = "" then R

Page 118: [E-Book ITA] Creare Un Sito in ASP - Aranzulla

© Salvatore Aranzulla – Trucchi, consigli e suggerimenti per il tuo portale in ASP! http://salvatore-aranzulla.splinder.it – http://www.hardwaremax.it

Pagina 118 di 162

>

ome si nota, in questa pagina (“chat.asp”) vengono fatte diverse condizioni e in base

:

della chat, dove verranno visualizzati i messaggi

lla chat, nella quale verranno visualizzati gli utenti connessi alla chat)

eriore, dove sarà possibile inserirei i messaggi da far visualizzare in chat.

TENTE

A)

on("Username") <> "" and Session("Loggato_Chat") = True Then >

head> le>

/head>

!-- RICA OGNI 4 SECONDI QUESTA PAGINA

ESSAGGI DELLA CHAT

entro_chat.asp'", 4000)

/SCRIPT>

p><font size="2" face="Verdana"><b>La MIA CHAT!</b></font></p>

%

End IF % </html> Cal loro valore verrà la chat, la schermata di login, ecc... I frame che costituiscono la chat sono tre

• Centro_chat.asp (il centropubblicati in chat)

• Utenti_chat.asp (la parte laterale de

• Msg_chat.asp (il frame inf

Partiamo dal frame centrale della chat, che richiama la pagina “Centro_chat.asp”: <% ' VERIFICA SE L'U' E' REGOLARMENTE IDENTIFICATO ' (IN CASO CONTRARIO MOSTRERA' ' UNA PAGINA VUOT IF Sessi%<html> <<title>CHAT - MESSAGGI</tit <<SCRIPT LANGUAGE=Javascript> <// CA// PER VISUALIZZARE I M// IN MODO AGGIORNATO setTimeout("location='c //--> <<body> <<p><font size="2" face="Verdana"> <Session.Timeout = 1

Page 119: [E-Book ITA] Creare Un Sito in ASP - Aranzulla

© Salvatore Aranzulla – Trucchi, consigli e suggerimenti per il tuo portale in ASP! http://salvatore-aranzulla.splinder.it – http://www.hardwaremax.it

Pagina 119 di 162

MOSTRA I MESSAGGI DELLA CHAT ESSAGGI")

ESTI MESSAGGI:

E DEI MESSAGGI N "A CAPO" (<BR>)...

sponse.Write Replace(Application("messaggi"), "@!/", "<br>")

/body>

/html>

d IF

PAGINA PER VISUALIZZARE I MESSAGGI DELLA CHAT

etTimeout("location='centro_chat.asp'", 4000)

/SCRIPT>

tato, serve per far caricare la pagina ogni 4 o da rendere aggiornata la visualizzazione dei messaggi, i quali

erranno quindi richiesti dall’application “Messaggi” ogni 4 secondi...

o gli utenti connessi alla chat nti_chat.asp):

VERIFICA SE L'UTENTE OLARMENTE IDENTIFICATO

CASO CONTRARIO MOSTRERA' GINA VUOTA)

("Username") <> "" and Session("Loggato_Chat") = True Then

>CHAT - UTENTI CONNESSI</title>

' ' (CONTENUTI NELL'APPLICATION "M' ' OVVIAMENTE FORMATTA PRIMA QU' VIENE SOSTITUITO IL SEPARATOR' (@!/) CON U Re%></font></p> < <<% En%> In questa precedente pagina si nota uno Javascript: <SCRIPT LANGUAGE=Javascript> <!-- // CARICA OGNI 4 SECONDI QUESTA//// IN MODO AGGIORNATO s //--> < Questo Javascript, come abbiamo commensecondi, in modv Passiamo ora al frame laterale, nel quale appaion(ute <% ' ' E' REG' (IN ' UNA PA IF Session%> <html> <head> <title<SCRIPT LANGUAGE=Javascript>

Page 120: [E-Book ITA] Creare Un Sito in ASP - Aranzulla

© Salvatore Aranzulla – Trucchi, consigli e suggerimenti per il tuo portale in ASP! http://salvatore-aranzulla.splinder.it – http://www.hardwaremax.it

Pagina 120 di 162

-- A

NATA LA LISTA DEGLI

meout("location='utenti_chat.asp'", 10000)

T>

LICATION "UTENTI"

tenti = Application("utenti")

RIMPIAZZA "<" E ">" CON IL LORO ONDENDE CODICE HTML

Replace(Utenti, ">", "&lt;") i = Replace(Utenti, "<", "&gt;")

CHE SEPARA GLI USERNAME (@!/) VIENE ' R P' QUES N MODO ' FO

><b><font face="Verdana" size="2">Utenti Connessi</font></b></p>

</body>

/html>

i nota pure qua il precedente Javascript per tenere aggiornata la lista degli utenti... k alla pagina “esci_chat.asp”, che serve per far uscire un utente

alla chat. In qualsiasi modo, se l’utente dovesse chiudere la pagina della chat, egli un minuto (Session.TimeOut =

al.asa” che ora analizzeremo...

<!// CARICA OGNI 10 SECONDI QUESTA PAGIN// PER MANTERE AGGIOR// UTENTI... setTi //--> </SCRIP</head> <body> <% ' PRELEVA GLI UTENTI CONNESSI ALLA CHAT ' DALL'APP U ' ' CORRISP Utenti =Utent ' COME SI NOTA LA STRINGA '

IM IAZZATA CON UN "A CAPO" (<BR>), TO PER VISUALIZZARE I

RMATTATO LA LISTA DEGLI UTENTI CONNESSI: Utenti = Replace(Utenti, "@!/", "<br> - ") %> <p<p><font face="Verdana" size="2"><%=Utenti%><br><br><b><a href="esci_chat.asp" target="_top">Esci dalla chat</a></b></font></p>

<<% End IF %> SSi nota inoltre un lindverrebbe ugualmente segnalato uscito dalla chat dopo1) e grazie al file “glob

Page 121: [E-Book ITA] Creare Un Sito in ASP - Aranzulla

© Salvatore Aranzulla – Trucchi, consigli e suggerimenti per il tuo portale in ASP! http://salvatore-aranzulla.splinder.it – http://www.hardwaremax.it

Pagina 121 di 162

RIFICA SE L'UTENTE IDENTIFICATO

NTE DALLA CHAT...

UTENTI CONNESSI E VISUALIZZA UN MESSAGGIO TA FRA I MESSAGGI DELLA CHAT

ession("Loggato_Chat") = False

pplication("Utenti") = Replace(Application("Utenti"), "@!/" & Session("Username"),

("Messaggi") = "<b>E' uscito dalla chat <i>" & Session("Username") "</i></b>@!/" & Application("Messaggi")

'UTENTE NELLA PAGINA CHAT.ASP (VERRA' VISUALIZZATO IL LOGIN)

gina che serve per inserire i messaggi in chat, la pagina

REGOLARMENTE IDENTIFICATO IO MOSTRERA'

OTA)

Loggato_Chat") = True Then

RICHIEDE IL TESTO INSERITO

Request.Form("Messaggio")

CONTROLLA SE DEVE INSERIRE IN CHAT UN MESSAGGIO DELL'UTENTE...

Ecco il codice della pagina “esci_chat.asp”: <% ' VE' E' REGOLARMENTE IF Session("Username") <> "" and Session("Loggato_Chat") = True Then ' DISCONETTE L'UTE' ' TOGLIE L'UTENTE DALLA LISTA ' DEGLI' DI USCI S Application.Lock A"") Application.UnLock Application.Lock Application&Application.UnLock End IF ' PORTA L' Response.Redirect "chat.asp" %> Passiamo infine alla pa“msg_chat.asp”: <% ' VERIFICA SE L'UTENTE ' E' ' (IN CASO CONTRAR' UNA PAGINA VU IF Session("Username") <> "" and Session(" ' ' NEL CAMPO "Messaggio" Messaggio = ' '

Page 122: [E-Book ITA] Creare Un Sito in ASP - Aranzulla

© Salvatore Aranzulla – Trucchi, consigli e suggerimenti per il tuo portale in ASP! http://salvatore-aranzulla.splinder.it – http://www.hardwaremax.it

Pagina 122 di 162

NE

CCA L'APPLICATION PRIMA DI INSERIRE

INFATTI, SE SONO PRESENTI, CON UNO SPAZIO)

LORO TML

aggio = Replace(messaggio, "<", "&lt;")

O INSERITO

ON "MESSAGGI"

ame") & "</b> - " & Time() &" : " Messaggio & "@!/" & Application("Messaggi")

nd IF

title>CHAT - INSERISCI MESSAGGIO</title>

oad="document.forms[0].Messaggio.focus();"> %

PER INSERIRE IL MESSAGGIO

Len(Trim(Messaggio)) > 0 Then IF

' DEVE INSERIRE UN MESSAGGIO: IL CAMPO "Messaggio" CONTIE'

' DEL TESTO ' ' ' BLO' IL NUOVO MESSAGGIO, PER EVITARE CONFLITTI... Application.Lock ' AGGIUNGE IL MESSAGGIO! ' ' TUTTI I MESSAGGI SONO SEPARATI DA "@!/", QUINDI ' DOVREMO EVITARE QUESTI CARATTERI NEL MESSAGGIO (LI SOSTITUIAMO, '

gio, "@!/", " ") Messaggio = Replace(messag

' RIMPIAZZA "<" E ">" CON IL

SPONDENDE CODICE H' CORRI

essMMessaggio = Replace(messaggio, ">", "&gt;") ' ORA RICOSTRUIAMO IL MESSAGGIO: USERNAME (IN GRASSETTO) - ORA : MESSAGGI'

' ' I MESSAGGI DELLA CHAT ' SONO CONTENUTI NELLA APPLICATI' Application("Messaggi") = "<b>" & Session("usern& ' SBLOCCA L'APPLICATION Application.Unlock E%> <html> <head> <</head> <body onl<' MODULO

Page 123: [E-Book ITA] Creare Un Sito in ASP - Aranzulla

© Salvatore Aranzulla – Trucchi, consigli e suggerimenti per il tuo portale in ASP! http://salvatore-aranzulla.splinder.it – http://www.hardwaremax.it

Pagina 123 di 162

HAT

TO INSERITO INA

E PROVVEDERA' A INSERIRLO NELLA APPLICATION "MESSAGGIO", E INIZIALE DI QUESTA PAGINA..)

thod="POST" action="msg_chat.asp"> <table border="0" cellpadding="0" cellspacing="0" width="100%">

<td width="19%"><font face="Verdana" <b>Messaggio:</b></font></td>

td width="81%"><input type="text" name="Messaggio" size="37"> <input "submit" value="Invia" name="B1"></td>

/body>

nd IF %> La precedente pagina come si vede ha due compiti:

• Il primo quello di mostrare il modulo nel quale inserire il messaggio che verrà poi visualizzato in chat

• Quello di inserire il messaggio nell’application Si nota inoltre nell’evento Onload del tag Body un codice Javascript: <body onload="document.forms[0].Messaggio.focus();"> Questo codice Javascript (document.forms[0].Messaggio.focus();) serve per far apparire il cursore di scrittura direttamente nel campo in cui inserire il messaggio che apparirà in chat, così lo si può scrivere direttamente, senza bisogno di cliccargli sopra:

' IN C' ' IL MODULO RIMANDA IL TES' NELLA STESSA PAG' (CH' PART%> <form me <tr> size="2"> <type= </tr> </table> </form> < </html><% E

Come detto precedentemente, per gestire le uscite degli utenti dalla chat dovremo utilizzare il file global.asa, che come sappiamo dovrà essere collocato nella root principale del nostro sito, quindi se abbiamo il sito http://www.miosito.it, il file global.asa dovrà essere inserito in http://www.miosito.it/global.asa Ecco il suo codice: <SCRIPT LANGUAGE="VBSCRIPT" RUNAT=SERVER> Sub Session_OnEnd()

Page 124: [E-Book ITA] Creare Un Sito in ASP - Aranzulla

© Salvatore Aranzulla – Trucchi, consigli e suggerimenti per il tuo portale in ASP! http://salvatore-aranzulla.splinder.it – http://www.hardwaremax.it

Pagina 124 di 162

) <> "" and Session("Loggato_Chat") = True then

pplication("Utenti") = Replace(Application("Utenti"), "@!/" & Session("Username"), "") Application.UnLock Application.Lock pplication("Messaggi") = "<b>E' uscito dalla chat <i>" & Session("Username")

End FEnd u</S R

uesto codice serve appunto per far visualizzare in chat un messaggio che indica che chat e per eliminare l’utente dagli utenti connessi.

uò sorgere un problema se abbiamo messo in pratica quanto detto nell’articolo per e!

nde il codice per la chat e per gli utenti onnessi:

SCRIPT LANGUAGE="VBSCRIPT" RUNAT=SERVER> Sub Application_OnStart() Application("users") = 0 End Sub Sub Session_OnStart()

("users") = Application("users") + 1

at") = True then pplication.Lock

lication("Utenti") = Replace(Application("Utenti"), "@!/" & Session("Username"),

pAp at <i>" & Session("Username") &"< >p

/SCRIPT>

IF Session("Username"Application.Lock A

A&"</i></b>@!/" & Application("Messaggi") Application.UnLock Session("Loggato_Chat") = False

I S b C IPT>

Ql’utente ha abbandonato la Pfar visualizzare gli utenti connessi... come fare ad unire i due global.asa? SemplicQuesto di seguito è il global.asa che comprec <

ApplicationE

nd Sub

Sub Session_OnEnd() Application("users") = Application("users") - 1 IF Session("Username") <> "" and Session("Loggato_ChAApp"") Application.UnLock A plication.Lock

plication("Messaggi") = "<b>E' uscito dalla ch/i </b>@!/" & Application("Messaggi")

plication.UnLock A Session("Loggato_Chat") = False End IF End Sub <

Page 125: [E-Book ITA] Creare Un Sito in ASP - Aranzulla

© Salvatore Aranzulla – Trucchi, consigli e suggerimenti per il tuo portale in ASP! http://salvatore-aranzulla.splinder.it – http://www.hardwaremax.it

Pagina 125 di 162

o script

% uali la session si cancellerà

TIFICATO (LOGGATO)

and Session("Username") = "" then

SE E LA SESSION "USERNAME" NON HA NESSUN ALORE)

ELLA PAGINA LOGIN.ASP PER FARLO IDENTIFICARE

esponse.Redirect "login.asp"

>

ioè in pratica si deve impostare il Session.Timeout, altrimenti la session finirà la sua impostato nello script della chat, per

antenere aggiornata la lista degli utenti).

tanto il contenuto dell’Application. Questa setta.asp”:

TE

E' L'AMMINISTRATORE DELLA CHAT

RNAME AMMINISTRATORE" and ue Then

l>

/head>

Conflitti con altre parti del sito Con la chat che abbiamo creato è sorto un problema: la compatibilità con ldelle registrazioni. Per risolvere questo problema, sopra le pagine riservate agli utenti basterà inserire semplicemente: <Session.Timeout = numero di minuti dopo i q ' VERIFICHIAMO SE L'UTENTE E' IDEN IF Session("Loggato") = False ' UTENTE NON LOGGATO ' (SESSION "LOGGATO" = FALV ' PORTA L'UTENTE N' REnd IF % Cvalidità dopo un minuto (Session.Timeout = 1,m

Strumenti per l’amministratore Può risultare utile “pulire”, eliminare ognipagina (che noi abbiamo chiamato “re <% ' VERIFICA SE L'UTEN' CHE STA RICHIEDENDO LA PAGINA ' IF Session("Username") = "USESession("Loggato_Chat") = Tr%> <htm <head> <title>CHAT - PULIZIA</title> < <body>

Page 126: [E-Book ITA] Creare Un Sito in ASP - Aranzulla

© Salvatore Aranzulla – Trucchi, consigli e suggerimenti per il tuo portale in ASP! http://salvatore-aranzulla.splinder.it – http://www.hardwaremax.it

Pagina 126 di 162

pplication.Lock Application("Messaggi") = "" pplication.UnLock

ter"><b><font face="Verdana">Messaggi resettati!</font></b></p>

%

(NON E' L'AMMINISTRATORE) L'UTENTE NELLA PAGINA

T.ASP

>

<% A

A%> <hr> <p align="cen<hr> </body> </html> <Else ' ALTRIMENTI... ' ' PORTA' CHA Response.Redirect "chat.asp" End IF %

Page 127: [E-Book ITA] Creare Un Sito in ASP - Aranzulla

Capitolo 14

© Salvatore Aranzulla – Trucchi, consigli e suggerimenti per il tuo portale in ASP! http://salvatore-aranzulla.splinder.it – http://www.hardwaremax.it

Pagina 127 di 162

Conta click mo come realizzare un semplice conta click che ci permetta di tenere sotto

click del nostro sito.

azione dello script si può dividere in:

zione pagine per registrare i click • Creazione pagine per l’amministratore

so Microsoft Access, versione 2000 Microsoft Office).

Vediacontrollo i La realizz

• Creazione database • Crea

Creazione Database Per la creazione del database ho usato il famo(presente nel pacchetto Avviamo il Access e selezioniamo la creazione di un database vuoto:

mQuindi dia o un nome al nostro database, che conterrà i nostri dati, e salviamolo col

tabella in visualizzazione struttura:

nome di “database.mdb”.

indi unaCreiamo qu

... con i seguenti campi:

• Id – Tipo Campo: Contatore o Campo: Memo (conterrà l’url) Tipo Campo: Numerico (conterrà i click sul link)

lla (con la X in alto a destra della creazione della bella) e, rispondendo affermativamente alle domande che ci verranno poste,

col nome di “Click”.

• Url - Tipks -• Clic

Chiudiamo la creazione della tabetasalviamola

Page 128: [E-Book ITA] Creare Un Sito in ASP - Aranzulla

© Salvatore Aranzulla – Trucchi, consigli e suggerimenti per il tuo portale in ASP! http://salvatore-aranzulla.splinder.it – http://www.hardwaremax.it

Pagina 128 di 162

tema che creeremo dovrà funzionare in questo modo: ad una pagina pagina o del

database se l’url esiste lick altrimenti verrà aggiunto il nuovo url lla pagina o nel sito dell’indirizzo, quindi

”:

clude file = "adovbs.inc" -->

SO DEL DATABASE driver={Microsoft Access Driver (*.mdb)};dbq=" & server.mappath("/mdb-

reateObject("ADODB.Connection") n url_DB

TRING "URL"

ALMENTE UN URL:

& Request.QueryString("url") &"'" Optimistic

AGGIUNGE PURE IL CLICK

Creazione pagine per registrare i click Il sis(vai_click.asp) viene passata tramite una querystring (url) l’url della sito di cui si vuole contare i click, quindi si farà una verifica sul si aggiornerà semplicemente il numero dei ce il suo primo click, infine si verrà portati nedell’url. Ecco il codice della pagina “Vai_click.asp <!-- #in<% ' PERCORurl_DB = "database/database.mdb") Set Conn = Server.Cconn.Ope Set RecSet = Server.CreateObject("ADODB.Recordset") ' PRELEVA L'URL PASSATO DALLA QUERYS Url = Request.QueryString("url") ' SE E' STATO PASSATO RE IF Url <> "" then SQL = "SELECT * FROM CLICK WHERE URL = '"RecSet.Open SQL, Conn, adOpenStatic, adLock ' CONTROLLA SE L'URL E' PRESENTE If RecSet.Eof = False Then ' L'URL E' PRESENTE ' DEVE QUINDI AGGIORNARE SOLO I CLICK click_attuali = RecSet("clicks") ' AGGIORNA I CLICK NEL DB RecSet("clicks") = click_attuali + 1 Else ' URL NON PRESENTE, LO AGGIUNGE E RecSet.AddnewRecSet("url") = url

Page 129: [E-Book ITA] Creare Un Sito in ASP - Aranzulla

© Salvatore Aranzulla – Trucchi, consigli e suggerimenti per il tuo portale in ASP! http://salvatore-aranzulla.splinder.it – http://www.hardwaremax.it

Pagina 129 di 162

= 1

nd IF

AGGIORNA IL DB E CHIUDE LA CONNESSIONE Update

ecSet.Close nd IF

A L'UTENTE NEL SITO O NELLA PAGINA DELL'URL

nd IF

ntare i click ad una determinata pagina o ad un link dovremo scrivere un link di

ttp://nostro sito/vai_click.asp?url=http://url di cui occorre contare i click

questo modo verranno contati i click su quel determinato url.

reazione pagine per l’amministratore

delle pagine per l’amministratore per la gestione dei click! reiamo una cartella “admin” e creiamo adesso due file (che verranno appunto

link)

INSERITI DATI NEI DUE CAMPI PASSWORD CORRETTI

SWORD AMMINISTRATORE ord = "admin"

ase(Request.Form("username")) = Lcase(username) and

RecSet("clicks") E ' RecSet.RE Conn.Close IF url <> "" then ' PORTResponse.Redirect Url E%> Per coquesto tipo: h In

C Passiamo ora alla creazioneCinseriti in questa cartella):

• Index.asp (Che identifica l’utente come amministratore) • Gestione_Click.asp (Per visualizzare/eliminare i click sui

Ecco il codice della pagina “index.asp”: <% ' CONTROLLA SE SONO STATI' DI LOGIN USERNAME E ' USERNAME AMMINISTRATORE username = "admin" ' PASpassw IF LcLcase(Request.Form("password")) = Lcase(password) then

Page 130: [E-Book ITA] Creare Un Sito in ASP - Aranzulla

© Salvatore Aranzulla – Trucchi, consigli e suggerimenti per il tuo portale in ASP! http://salvatore-aranzulla.splinder.it – http://www.hardwaremax.it

Pagina 130 di 162

GINA "GESTIONE_CLICK.ASP"

head>

/head>

y>

"39%">

nt face="Verdana" size="2">Username:</font></td> width="50%"><input type="text" name="username" size="20"></td>

tr>

"50%"><font face="Verdana" size="2">Password:</font></td> <td width="50%"><input type="password" name="password"

r> <td width="100%" colspan="2" height="5">

d> /tr>

idth="100%" colspan="2">

nter"><input type="submit" value="Invia" name="B1"><input value="Reimposta" name="B2"></td>

table>

p align="center">&nbsp;</p>

dy>

' I DATI SONO ESATTI E SI VIENE IDENTIFICATI COME AMMINISTRATORE ' E PORTATI NELLA PA session("amministratore") = true Response.Redirect "Gestione_Click.asp" End if %> <html> <<title>GESTIONE CLICK</title> < <bod <p align="center">&nbsp;</p> <p align="center"><b><font size="4" face="Verdana">Gestione Click!</font></b></p> <form method="POST" action="index.asp"> <div align="center"> <center> <table border="0" cellpadding="0" cellspacing="0" width= <tr> <td width="50%"><fo <td </ <tr> <td width= size="20"></td> </tr> <t </t < <tr> <td w <p align="cetype="reset" </tr> </ </center> </div> </form> < </bo </html>

Page 131: [E-Book ITA] Creare Un Sito in ASP - Aranzulla

© Salvatore Aranzulla – Trucchi, consigli e suggerimenti per il tuo portale in ASP! http://salvatore-aranzulla.splinder.it – http://www.hardwaremax.it

Pagina 131 di 162

pagina “Gestione_Click.asp”, in questa pagina vengono visualizzati i link con click e accanto un link per eliminare l’url e suoi click dal database:

CONTROLLA SE SI E' IDENTIFICATI COME AMMINISTRATORI IF session("amministratore") <> true then ' NON SI E' L'AMMINISTRATORE ' PORTA L'UTENTE NELLA PAGINA DI LOGIN Response.Redirect "index.asp" End IF %> <html> <head> <title>GESTIONE CLICK</title> </head> <body> <p><b><font face="Verdana" size="4">&gt; Gestione Click</font></b></p> <!-- #INCLUDE FILE="../adovbs.inc" --> <% ' PERCORSO DEL DATABASE url_DB = "driver={Microsoft Access Driver (*.mdb)};dbq=" & server.mappath("/mdb-database/database.mdb") Set Conn = Server.CreateObject("ADODB.Connection") conn.Open url_DB ' LEGGE DALLA QUERYSTRING "OPERAZIONE" ' QUELLO CHE DEVE FARE IF Request.QueryString("operazione") = "elimina" Then ' DEVE CANCELLARE UN URL DAL DB ' APRE LA CONNESSIONE AL DATABASE Set RecSet = Server.CreateObject("ADODB.Recordset") SQL = "SELECT * FROM CLICK WHERE ID = " & Request.QueryString("id") &"" RecSet.Open SQL, Conn, adOpenStatic, adLockOptimistic IF RecSet.Eof = False then ' L'URL E' PRESENTE E LO CANCELLA RecSet.Delete ' AGGIORNA IL DB E CHIUDE LA CONNESSIONE AL DB

Ecco lai loro <% '

Page 132: [E-Book ITA] Creare Un Sito in ASP - Aranzulla

© Salvatore Aranzulla – Trucchi, consigli e suggerimenti per il tuo portale in ASP! http://salvatore-aranzulla.splinder.it – http://www.hardwaremax.it

Pagina 132 di 162

RecSet.Close

ageSize = 25

ageCurrent = 1

String("page")) nd If

hen trOrderBy = "id"

rder")

er.CreateObject("ADODB.Recordset")

rBy & " DESC;"

.Open sql, conn, adOpenKeyset

S.CacheSize = iPageSize

urrent = iPageCount iPageCurrent < 1 Then iPageCurrent = 1

K PRESENTE -> VIENE VISUALIZZATO UN MESSAGGIO CHE INFORMA N E' PRESENTE

NEMMENO UN LINK NEL DB

p align="center"><b><font size="2" face="Verdana">Nessun click presente nel p>

% lse

table border="0" cellpadding="0" cellspacing="0" width="100%"> <tr>

RecSet.Update End IF

End IF ' NUMERO DI LINK PER PAGINA iP If Request.QueryString("page") = "" Then iPElse iPageCurrent = CInt(Request.QueryE If Request.QueryString("order") = "" TsElse strOrderBy = Request.QueryString("oEnd If Set RS = Serv ' FA LA RICHIESTA AL DATABASE sql = "SELECT * FROM CLICK ORDER BY " & strOrde RSRS.PageSize = iPageSize R iPageCount = RS.PageCount If iPageCurrent > iPageCount Then iPageCIf ' NESSUN LINCHE NO' If iPageCount = 0 Then %><hr> <database!</font></b></<hr><E' ALTRIMENTI %> <

Page 133: [E-Book ITA] Creare Un Sito in ASP - Aranzulla

© Salvatore Aranzulla – Trucchi, consigli e suggerimenti per il tuo portale in ASP! http://salvatore-aranzulla.splinder.it – http://www.hardwaremax.it

Pagina 133 di 162

<td width="76%" bgcolor="#C3D3DB" align="center"><font face="Verdana" size="2"><b>Nome

nt></td> <td width="11%" bgcolor="#C3D3DB" align="center"><font face="Verdana"

NK, CON I LORO CLICK

d Not RS.EOF

"center"> ana" size="2"><a href="<%=RS("url")%>"

/font></td> "Verdana"

</td>

size="2"><a ina&amp;id=<%=RS("id")%>"><b>Cance

/td>

ETA LA VISUALIZZAZIONE DEI LINK E CHIUDE LA CONNESSIONE

se

IL NUMERO DELLE PAGINE MOSTRATI

PER PAGINA

geCount

<a

Url</b></fo size="2"><b>Click</b></font></td> <td width="13%" bgcolor="#C3D3DB">&nbsp;</td> </tr>

<% RS.AbsolutePage = iPageCurrent iRecordsShown = 0 ' MOSTRA I LI Do While iRecordsShown < iPageSize An%> <tr>

<td width="76%" align= <p align="left"><font face="Verdtarget = "_blanc"><%=RS("url")%></a>< <td width="11%" align="center"><font face=

size="2"><%=RS("clicks")%></font> <td width="13%" bgcolor="#C3D3DB">

ana" <p align="center"><font face="Verdref="Gestione_Click.asp?operazione=elimh

lla</b></a></font>< </tr> <% COMPL'

' AL DATABASE iRecordsShown = iRecordsShown + 1

.MoveNext RSLoop

> %</table>

% <End If RS.Close et RS = Nothing S

Conn.Clo%><center>

% <' MOSTRA' DATO CHE VERRANNOIN QUESTO ESEMPIO 25 URL '

or x=1 to iPaF

%> <font face="Verdana" size="2">[ <b> href="Gestione_click.asp?page=<%=x%>&order=<%= Server.URLEncode(strOrderBy) %>"><%=x%></a></b> ]</font>

Page 134: [E-Book ITA] Creare Un Sito in ASP - Aranzulla

© Salvatore Aranzulla – Trucchi, consigli e suggerimenti per il tuo portale in ASP! http://salvatore-aranzulla.splinder.it – http://www.hardwaremax.it

Pagina 134 di 162

>

<% next %</body></html>

Page 135: [E-Book ITA] Creare Un Sito in ASP - Aranzulla

© Salvatore Aranzulla – Trucchi, consigli e suggerimenti per il tuo portale in ASP! http://salvatore-aranzulla.splinder.it – http://www.hardwaremax.it

Pagina 135 di 162

Numeri, frasi, immagini e… casuali! zare frasi, immagini o altro, in modo

ale, ad ogni aggiornamento (“reload”) di una pagina.

ro casuale ad ogni reload (aggiornamento, a ASP, per poi passare alle frasi e alle immagini casuali.

er la generazione di un numero casuale, ad ogni giornamento di una pagina in ASP:

UNZIONE PER LA GENERAZIONE

ENTRO IL QUALE RO CASUALE (RANDOM)

_massimo = 5

CASUALE )

E IL NUMERO CASUALE GENERATO

numero = 0 Then 1

IL NUMERO CASUALE ERATO

.Write numero

to semplice. Sulla sua base, creeremo lo script che mostrerà una frase na immagine) ad ogni aggiornamento della nostra pagina ASP.

Capitolo 15

In un sito in ASP può risultare utile far visualizcasu Partiamo da come generare un numecaricamento) di una pagin

Generare un numero random Ecco il semplice script pag <% ' F' DEL NUMERO RANDOM Randomize() ' NUMERO MASSIMO,

RSI IL NUME' DEVE TROVAnumero ' RESTITUISCE IL NUMEROnumero = CInt(numero_massimo * Rnd() ' S' E' UGUALE A ZERO (0), CAMBIA IL VALORE DEL NUMERO CASUALE (0) IN UNO (1) '

IFnumero =End IF ' MOSTRA' CHE E' STATO GEN Response%> Lo script è moliversa (... o ud

Page 136: [E-Book ITA] Creare Un Sito in ASP - Aranzulla

© Salvatore Aranzulla – Trucchi, consigli e suggerimenti per il tuo portale in ASP! http://salvatore-aranzulla.splinder.it – http://www.hardwaremax.it

Pagina 136 di 162

ricamento di una pagina ASP:

()

UMERO MASSIMO, ENTRO IL QUALE

o * Rnd())

= 0 Then

MERI CASUALI...

A QUA INIZIA INVECE IL VERO SCRIPT PER LE FRASI RANDOM:

ase = "Messaggio 2"

3: ase = "Messaggio 3"

DEI NUMERI CASUALI, PER LA VISUALIZZAZIONE DI FRASI RANDOM...

Frasi casuali Ecco, con semplici modifiche al precedente script ASP, come è possibile far visualizzare frasi random (casuali) ad ogni ca <% ' FUNZIONE PER LA GENERAZIONE ' DEL NUMERO RANDOM Randomize ' N' DEVE TROVARSI IL NUMERO CASUALE (RANDOM) numero_massimo = 3 ' RESTITUISCE IL NUMERO CASUALE numero = CInt(numero_massim ' SE IL NUMERO CASUALE GENERATO ' E' UGUALE A ZERO (0), CAMBIA IL VALORE ' DEL NUMERO CASUALE (0) IN UNO (1) IF numeronumero = 1 End IF ' FINO A QUESTO PUNTO ' LO SCRIPT PRECEDENTE E' LO STESSO ' DI QUELLO PER LA GENERAZIONE DEI NU' ' D Select Case numero Case 1: frase = "Messaggio 1" Case 2: fr Casefr End Select ' COMMENTIAMO QUELLO CHE SI E' AGGIUNTO ' ALLO SCRIPT PER LA GENERAZIONE '

Page 137: [E-Book ITA] Creare Un Sito in ASP - Aranzulla

© Salvatore Aranzulla – Trucchi, consigli e suggerimenti per il tuo portale in ASP! http://salvatore-aranzulla.splinder.it – http://www.hardwaremax.it

Pagina 137 di 162

ENTE INSERITO UN COSTRUTTO "Select Case" PER FRASI RANDOM

' ALL'INIZIO DELLO SCRIPT VIENE GENERATO UN NUMERO ' CASUALE, POI QUI, NEL COSTRUTTO "Select Case" ' FATTE DELLE SPECIE DI CONDIZIONI:

SE IL NUMERO GENERATO E' UGUALE A UNO, LA VARIABILE

SE RANDOM DA VISUALIZZARE

NSERIRE UNA NUOVA FRASE RANDOM (CASUALE) DOVREMO AUMENTARE DI UNO (+1) LA VARIABILE

mero_massimo" E INSERIRE NEL SELECT CASE:

frase = "Frase random"

LLA FRASE RANDOM

STRATA LA FRASE RANDOM (CONTENUTA NELLA VARIABILE "FRASE")

esponse.Write Frase

ilizzato per la visualizzazione di consigli, nti nell’home page del nostro sito.

entrano nella sola riga della e fare? Vediamolo subito!

ncatenazione “&_”:

ase = "Salvatore Aranzulla si occupa di programmazione e divulgazione da molti

dice ASP risulta più ordinato.

empio se si vuole ente, inserire:

a ricordare, comunque, è di inserire due virgolette alte ("") al posto di una ("), to un errore.

' E' STATO SEMPLICEM' LA SELEZIONE DELLE'

VENGONO

' ' Case 1: ' frase = "Messaggio 1" ' ' ' FRASE SARA' UGUALE A "Messaggio 1" ' IN QUESTO MODO SI AVRA' LA SELEZIONE DELLA FRA' ' ' QUINDI QUANDO DOVREMO I' ' "Nu' ' Case x: ' ' ' DOVE "x" OCCORRE METTERE IL NUMERO DE' ' VIENE INFINE MO' R%> Questo script, ad esempio, può essere uttrucchi e suggerimePotrebbero esserci delle frasi molto lunghe, che nonvariabile “frase”, comBasterà utilizzare semplicemente la stringa di co franni. "&_ " Egli programma in ASP e in Visual Basic." La frase verrà visualizzata intera, però così il co E’ possibile utilizzare nelle frasi casuali anche i tag HTML, per esinserire un link ad un sito web, basta semplicem frase = "<a href=""http://www.miosito.it"">Mio sito</a>" Daltrimenti verrà genera

Page 138: [E-Book ITA] Creare Un Sito in ASP - Aranzulla

© Salvatore Aranzulla – Trucchi, consigli e suggerimenti per il tuo portale in ASP! http://salvatore-aranzulla.splinder.it – http://www.hardwaremax.it

Pagina 138 di 162

magini casuali

oprattutto simpatico) far visualizzare delle immagini lla pagina ASP (ad esempio nell’home page del sito).

magini casuali (si tratta di una semplice modifica

))

ASUALE GENERATO ORE

ero = 0 Then

RANDOM:

t Case numero

4:

Im Può risultare utile in un sito (ma scasuali ad ogni aggiornamento de Ecco lo script per visualizzare le imallo script per la generazioni di frasi casuali): <% ' FUNZIONE PER LA GENERAZIONE ' DEL NUMERO RANDOM Randomize() ' NUMERO MASSIMO, ENTRO IL QUALE ' DEVE TROVARSI IL NUMERO CASUALE (RANDOM) numero_massimo = 4 ' RESTITUISCE IL NUMERO CASUALE numero = CInt(numero_massimo * Rnd( ' SE IL NUMERO C' E' UGUALE A ZERO (0), CAMBIA IL VAL' DEL NUMERO CASUALE (0) IN UNO (1) IF numnumero = 1 End IF ' FINO A QUESTO PUNTO ' LO SCRIPT PRECEDENTE E' LO STESSO ' DI QUELLO PER LA GENERAZIONE DEI NUMERI CASUALI... ' ' DA QUA INIZIA INVECE IL VERO SCRIPT PER LE IMMAGINI Selec Case 1: img = "1.jpg" Case 2: img = "colline.jpg" Case 3:img = "3.jpg" Caseimg = "4.jpg" End Select

Page 139: [E-Book ITA] Creare Un Sito in ASP - Aranzulla

© Salvatore Aranzulla – Trucchi, consigli e suggerimenti per il tuo portale in ASP! http://salvatore-aranzulla.splinder.it – http://www.hardwaremax.it

Pagina 139 di 162

DEI NUMERI CASUALI, PER LA VISUALIZZAZIONE DELLE IMMAGINI RANDOM... ICEMENTE INSERITO UN COSTRUTTO "Select Case" PER

LA SELEZIONE DELLE IMMAGINI RANDOM

IENE GENERATO UN NUMERO ALE, POI QUI, NEL COSTRUTTO "Select Case" VENGONO

FATTE DELLE SPECIE DI CONDIZIONI:

img = "1.jpg"

SE IL NUMERO GENERATO E' UGUALE A UNO, LA VARIABILE DELL'IMMAGINE) SARA'

UGUALE, IN QUESTO CASO, A "1.jpg" E

RANDOM DA VISUALIZZARE

QUINDI QUANDO DOVREMO INSERIRE UNA NUOVA IMMAGINE RANDOM REMO AUMENTARE DI UNO (+1) LA VARIABILE

"Numero_massimo" E INSERIRE NEL SELECT CASE:

"nome img.estensione"

NUMERO DELL'IMMAGINE RANDOM

DOVE SONO CONTENUTE LE IMMAGINI..

artella = "/img_random/"

VIENE INFINE MOSTRATA L'IMMAGINE

"<IMG ..>" PER VISUALIZZARE L'IMMAGINE...

+ IMMAGINE RANDOM)

>

ript?

' COMMENTIAMO QUELLO CHE SI E' AGGIUNTO ' ALLO SCRIPT PER LA GENERAZIONE ' ' E' STATO SEMPL' ' ' ALL'INIZIO DELLO SCRIPT V' CASU' ' ' Case 1: ' ' ' ' "IMG" (CHE CONTIENE IL NOME' ' IN QUESTO MODO SI AVRA' LA SELEZIONE DELL'IMMAGIN' ' ' ' (CASUALE) DOV' ' ' Case x: ' img =' ' DOVE "x" OCCORRE METTERE IL' ' INSERIRE QUA IL PERCORSO DELLA CARTELLA ' ' (AD ESEMPIO "/IMG_RANDOM/") ' C' ' ' (VIENE IN PRATICA RICOSTRUITO IL TAG ' ' IL PERCORSO DELL'IMMAGINE SARA' UGUALE A ' CARTELLA Response.Write "<img src=""" & CARTELLA & IMG &""">"%

Dove inserire questi sc Per la visualizzazione di immagini/frasi casuali occorrerà inserire questi script nel punto in cui essi devono apparire e fare le opportune modifiche...

Page 140: [E-Book ITA] Creare Un Sito in ASP - Aranzulla

© Salvatore Aranzulla – Trucchi, consigli e suggerimenti per il tuo portale in ASP! http://salvatore-aranzulla.splinder.it – http://www.hardwaremax.it

Pagina 140 di 162

apitolo 16

Parole indesiderate

, nei messaggi pubblici, che l sito.

iazzi le parolacce con

nzione, che abbiamo chiamato _INDESIDERATE”:

DICHIARA L'ARRAY "PAROLACCIA", CHE CONTERRA' LE PAROLE INDESIDERATE

(IN QUESTO CASO IL NUMERO 2) CORRISPONDE

DA SOSTITUIRE, INDI PER OGNI PAROLACCIA DA SOSTITUIRE

CHE INSERIREMO,

PER AGGIUNGERE UNA PAROLA INDESIDERATA

PAROLACCE GIA' INSERITE: ' parolaccia(Numero seguente) = "parolaccia" ' ' RICORDIAMOCI DI INCREMENTARE IL PRECEDENTE NUMERO ' (L'INDICE DELL'ARRAY -> dim parolaccia(X)) ' LE PAROLACCE SONO MESSE _SOLO_ PER FAR FUNZIONARE LA FUNZIONE... ' (IO NON BESTEMIO :P) parolaccia(0) = "vaff" parolaccia(1) = "stronz" parolaccia(2) = "bastardo"

C

Nel nostro sito, con il guestbook, con la chat o altro, può accadere che gli utenti inseriscano della parole indesiderate, delle parolacceverranno visualizzati poi a tutti gli utenti de Per evitare tutto questo, possiamo creare una funzione che rimpdegli asterischi, al momento della loro visualizzazione. Ecco il codice della nostra fu“PAROLE <% Function PAROLE_INDESIDERATE(STRINGA) ' ' ' DA SOSTITUIRE, IN PARTE, CON DEGLI ' ASTERISCHI (*) dim parolaccia(2) ' IL NUMERO INSERITO FRA PARENTESI ' ' AL NUMERO DI PAROLACCE INSERITE ' ' QU' ' DOVREMO INCREMENTARE QUESTO NUMERO ' ' (DA SOSTITUIRE, OVVIAMENTE), SCRIVEREMO SOTTO ' LE

Page 141: [E-Book ITA] Creare Un Sito in ASP - Aranzulla

© Salvatore Aranzulla – Trucchi, consigli e suggerimenti per il tuo portale in ASP! http://salvatore-aranzulla.splinder.it – http://www.hardwaremax.it

Pagina 141 di 162

-> -> -> -> -> -> -> -> -> -> ' DA QUI INIZIA IL VERO CUORE ' DELLA FUNZIONE ' -> -> -> -> -> -> -> -> -> ->

ELLE PAROLE INDESIDERATE

nga) > 0 Then

or x = 0 to Ubound(parolaccia)

E LA STRINGA CON LA QUALE RE SOSTITUITA LA PAROLA INDESIDERATA

LACCIA - ASTERISCHI - ULTIME DUE LETTERE LACCIA,

AD ESEMPIO: STRONZO -> ST***ZO)

sterischi = null

n(Trim(parolaccia(x)))-5 sterischi = asterischi & "*"

LA QUALE VERRA'

_sostituta = Left(parolaccia(x), 2) & asterischi & Right(parolaccia(x), 2)

tringa, parolaccia(x), parola_sostituta)

ext

ONTENUTO ALLE PAROLE INDESIDERATE

LE_INDESIDERATE = Stringa

ta funzione rimpiazzerà in parte le parolacce, cioè al posto della parolaccia prima due sue lettere iniziali, degli asterischi, e le sue due ultime

'

' SE LA LUNGHEZZA DELLA STRINGA PASSATA ' E' MAGGIORE DI 0, EFFETTUA IL CONTROLLO E LE EVENTUALI SOSTITUZIONI D'

IF Len(Stri F ' RICOSTRUISC' DOVRA' ESSE' (PRIMA E SECONDA LETTERA PAROPARO' a For n = 0 to LeaNext ' PAROLA CON ' SOSTITUITA LA PAROLACCIA: arolap

SOSTITUISCE LA PAROLACCIA '

Stringa = Replace(s N ' RILASCIA IL C' "RIPULITO" D PARO End IF End Function %> Quesvisualizzerà: lelettere finali.

Page 142: [E-Book ITA] Creare Un Sito in ASP - Aranzulla

© Salvatore Aranzulla – Trucchi, consigli e suggerimenti per il tuo portale in ASP! http://salvatore-aranzulla.splinder.it – http://www.hardwaremax.it

Pagina 142 di 162

però ci vieta di sostituire completamente la parola con degli asterischi. In questo aso dovremo fare delle modifiche a queste righe:

or n = 0 to Len(Trim(parolaccia(x)))-5 "

PAROLA CON LA QUALE VERRA' TITUITA LA PAROLACCIA:

ft(parolaccia(x), 2) & asterischi & Right(parolaccia(x), 2)

TITUISCE LA PAROLACCIA

Stringa = Replace(stringa, parolaccia(x), parola_sostituta)

ste:

= 0 to Len(Trim(parolaccia(x)))-1

olaccia(x), asterischi)

to punto sorge una domanda: Come utilizzare (cioè richiamare) la funzione?

INDESIDERATE(STRINGA DA PULIRE)%>

re inserita nella pagina nella quale la si

richiamo la funzione nella pagina “pagina.asp”, in questa pagina dovrò inserire il codice della funzione PAROLE_INDESIDERATE. Per velocizzare il tutto creiamo la pagina “parolacce.asp” e inseriamo al suo interno

to della nostra funzione. Collochiamo questa pagina nella cartella nella quale stro sito.

te la seguente riga, all’inizio della pagina zione, per poterla, appunto, utilizzare:

<!-- #INCLUDE FILE="parolacce.asp" -->

Nulla c asterischi = null Fasterischi = asterischi & "*

ext N ' ' SOS parola_sostituta = Le ' SOS

.. che dovranno essere sostituite con que.

asterischi = null For nasterischi = asterischi & "*" Next ' SOSTITUISCE LA PAROLACCIA Stringa = Replace(stringa, par A quesSemplice! asterà scrivere semplicemente: B

<%=PAROLE_ Ovviamente, la nostra funzione dovrà esserichiama. Cioè, se io

il contenuè contenuto il no In questo modo, basterà inserire solamennella quale si vuole utilizzare la nostra fun

Page 143: [E-Book ITA] Creare Un Sito in ASP - Aranzulla

© Salvatore Aranzulla – Trucchi, consigli e suggerimenti per il tuo portale in ASP! http://salvatore-aranzulla.splinder.it – http://www.hardwaremax.it

Pagina 143 di 162

Applichiamo la pulizia delle parole indesiderate al nostro guestbook

(che avviene nella pagina

a che visualizza i messaggi del guestbook:

%=RS("messaggio")%> In: <%=PAROLE_INDESIDERATE(RS("messaggio"))%>

esto modo verrà attivata la funzione di pulizia delle parolacce.

le parole indesiderate alla nostra chat

zza i hat. Includiamo sempre la pagina “parolacce.asp” e trasformiamo la

place(Application("messaggi"), "@!/", "<br>")

Response.Write PAROLE_INDESIDERATE(Replace(Application("messaggi"), "@!/", "<br>")) Abbiamo così risolto il problema delle parole indesiderate!

Nella visualizzazione dei messaggi del nostro GuestBookguestbook.asp) inseriamo all’inizio della pagina il seguente include (che include la pagina “parolacce.asp”, precedentemente creata): <!-- #INCLUDE FILE="parolacce.asp" --> E trasformiamo la rig <

In qu

Applichiamo la pulizia del Interveniamo in questo caso, invece, nella pagina “centro_chat.asp”, che visualimessaggi della criga che visualizza i messaggi della chat: Response.Write Re In:

Page 144: [E-Book ITA] Creare Un Sito in ASP - Aranzulla

© Salvatore Aranzulla – Trucchi, consigli e suggerimenti per il tuo portale in ASP! http://salvatore-aranzulla.splinder.it – http://www.hardwaremax.it

Pagina 144 di 162

Matematica & ASP?

matematica e l’ASP vanno d’accordo, infatti l’ASP è in grado di eseguire operazioni e confronti fra numeri!

Somma <% numero1 = 2 numero2 = 3 Response.Write numero1+numero2 %> Otterremo a video, in questo caso, il numero 5.

Sottrazione <% numero1 = 3 numero2 = 2 Response.Write numero1-numero2 %> Otterremo a video, in questo caso, il numero 1.

Moltiplicazione <% numero1 = 3 numero2 = 2 Response.Write numero1*numero2 %> Occorre stare molto attenti per la moltiplicazione, infatti, occorre sostituire il segno di moltiplicazione (x) con l’asterisco (*). In questo caso, otterremo a video il numero 6. Sottrazione <% numero1 = 3 numero2 = 2

Capitolo 17

Ebbene sì, la

Page 145: [E-Book ITA] Creare Un Sito in ASP - Aranzulla

© Salvatore Aranzulla – Trucchi, consigli e suggerimenti per il tuo portale in ASP! http://salvatore-aranzulla.splinder.it – http://www.hardwaremax.it

Pagina 145 di 162

Response.Write numero1/numero2 %> Anche in questo caso occorre stare molto attenti perché occorre sostituire il segno di divisione (:) con / In questo caso, otterremo a video il numero 1,5. Elevamento a potenza Ebbene sì l’ASP è anche in grado di eseguire l’elevamento a potenza: <% base = 3 esponente = 2 Response.Write base^esponente %>

Espressioni aritmetiche semplici L’ASP è anche in grado di eseguire delle espressioni semplici, anche con le parentesi tonde:

STA E' UNA ESPRESSIONE MOLTO SEMPLICE

MPLESSA (IL TUTTO VIENE POI

capitare però che il risultato di una di queste operazioni sia un numero con la la, per evitare tutto questo e visualizzare solo la parte intera, si usa:

esto caso mostrato a ideo, infatti, il numero 1, per arrotondare, invece, per eccesso si usa:

<% umero1 = 3

... avremo infatti in questo caso mostrato a video il numero 2.

<% ' QUEResponse.Write (5+2)*2 Response.Write "<br>" ' QUESTA E' UNA ESPRESSIONE UN PO' PIU' COELEVATO AL QUADRATO!) Response.Write ((5+2)*2)^2 %> Può virgo <% numero1 = 3 numero2 = 2 Response.Write int(numero1/numero2) %> In questo modo arrotondiamo il numero per difetto, avremo in quv

nnumero2 = 2 Response.Write cint(numero1/numero2) %>

Page 146: [E-Book ITA] Creare Un Sito in ASP - Aranzulla

© Salvatore Aranzulla – Trucchi, consigli e suggerimenti per il tuo portale in ASP! http://salvatore-aranzulla.splinder.it – http://www.hardwaremax.it

Pagina 146 di 162

inando opportunamente le varie operazioni si possono per esempio ovare l’IVA, la percentuale e altro partendo da un numero

CALCOLO COSTO DEL PRODOTTO CON IVA DEL 20% ito da il simbolo della

aluta, per esempio per l’euro (€)

otto, compresa l'IVA del 20%, è di " esponse.Write (costo_prodotto*iva)/100+costo_prodotto

>

fine da ricordare che l’ASP è in grado di eseguire anche confronti fra numeri:

Maggiore/Minore di

%

1 > numero2 then

onse.Write "Il primo numero (" & numero1 &") è maggiore del secondo (" & ero2 &")."

lse re del primo (" &

umero1 &")."

ero (11) è maggiore del rimo (10).”.

ale a

odifichiamo ulteriormente lo script ASP precedente:

<% numero1 = 10 umero2 = 10

Ovviamente, combtr

<numero1 = 10 numero2 = 11 IF numero

n IF numero1 > numero2 then Response.Write "Il primo numero (" & numero1 &") è maggiore del secondo (" & numero2 &")." elseIF numero1 < numero2 then

<% ' costo_prodotto = 30 ' Il costo del prodotto non deve essere seguviva = 20 ' Il simbolo di percentuale (%) si toglie. Response.Write "Il costo del prodRResponse.Write " €" % In

RespnumeResponse.Write "Il secondo numero (" & numero2 &") è maggionEnd IF %> In questo caso otterremo a video la frase “Il secondo nump

Ugu M

Page 147: [E-Book ITA] Creare Un Sito in ASP - Aranzulla

© Salvatore Aranzulla – Trucchi, consigli e suggerimenti per il tuo portale in ASP! http://salvatore-aranzulla.splinder.it – http://www.hardwaremax.it

Pagina 147 di 162

onse.Write "Il secondo numero (" & numero2 &") è maggiore del primo (" & ero1 &")."

lseIF numero1 = numero2 then rimo numero (" & numero1 &") è uguale al secondo (" & numero2

")."

cco quindi come utilizzare in ASP anche la matematica (anche se molti la odiano :P).

RespnumeResponse.Write "Il p&end if %> E

Page 148: [E-Book ITA] Creare Un Sito in ASP - Aranzulla

© Salvatore Aranzulla – Trucchi, consigli e suggerimenti per il tuo portale in ASP! http://salvatore-aranzulla.splinder.it – http://www.hardwaremax.it

Pagina 148 di 162

pitolo 18

Alcune funzioni di ASP no le funzioni che possiede l’ASP. Spesso ci troviamo a scrivere righe di

odice inutile, non sapendo che esistono delle funzioni che svolgono lo stesso compito iamo le funzioni di ASP che possono risultare utili

er il nostro lavoro.

eplace

a funzione Replace serve, come dice il nome, a rimpiazzare una parte di una

ato una chat in cui vogliamo sostituire le faccine (ad esempio :-), ;-), cc..) con delle immagini, molto più belle da vedere, che fare? Tutto ciò è possibile?

variabile “Messaggio” e vogliamo ostituire la faccina “:-)” con la sua immagine (ad esempio chiamata “faccina1.gif” e

s” del nostro sito) scriveremo:

... iao :-)"

SUA IMMAGINE essaggio = Replace(Messaggio, ":-)" , "<img src=""images/faccina1.gif"">")

esponse.Write Messaggio

> Quindi, Replace serve a rimpiazzare parte di una stringa con un’altra. Questa funzione ad esempio può essere utile per rimpiazzare parolacce in guestbook, forum con degli asterischi. Vi rimando, comunque, per fare tutto questo ad un altro mio articolo, in cui si spiega come creare una funzione che rimpiazza le parolacce con degli asterischi (sempre contenuto in questo libro open source).

case

nzione Ucase serve a rendere il contenuto di una stringa passata in aiuscolo. Spieghiamoci meglio con un esempio: supponiamo di dover mostrare a

video il contenuto della variabile “Messaggio” tutto in maiuscolo, mentre il testo è

Ca

Numerose socscrivendo una semplice riga! Analizzp

R Lstringa passata con un’altra, facciamo adesso un esempio pratico: abbiamo creeCerto con la funzione Replace! Ad esempio se i messaggi vengono salvati nellascontenuta nella cartella “image <% ' Messaggio = "c ' RIMPIAZZA ":-)" CON LAM R ' ... %

U La fum

Page 149: [E-Book ITA] Creare Un Sito in ASP - Aranzulla

© Salvatore Aranzulla – Trucchi, consigli e suggerimenti per il tuo portale in ASP! http://salvatore-aranzulla.splinder.it – http://www.hardwaremax.it

Pagina 149 di 162

scritto in parte in maiuscolo e in parte in minuscolo, come fare? Semplice usiamo la nzione Ucase:

' ...

aggio = "Ciao! Mi rieSCI a mettere TutTO in MAIUSCOLO?"

ESTO DELLA VARIABILE MESSAGGIO VERRA' MESSO TUTTO IN MAIUSCOLO essaggio)

Lcase La funzione Lcase è la “funzione gemella” di Ucase, infatti mentre quest’ultima serve a rendere il testo maiuscolo, Lcase, lo rende minuscolo! Esempio: <% ' ... Messaggio = "Ciao! Mi rieSCI a mettere TutTO in MInuSCOlo?" ' IL TESTO DELLA VARIABILE MESSAGGIO VERRA' MESSO TUTTO IN MINUSCOLO Messaggio = Lcase(Messaggio) ' MOSTRA IL MESSAGGIO (ORA TUTTO IN MINUSCOLO) Response.Write Messaggio ' ... %>

Left La funzione Left serve a prelevare una parte di una stringa passata, dato un certo numero di lettere da sinistra, spieghiamoci meglio con un esempio: supponiamo di dover prelevare da una stringa (chiamata “file”) che contiene il nome di un file (“file.asp”) solo il nome di questo file (quindi in questo caso “file”), come fare? Semplice, usiamo la funzione Left!:

fu <%

Mess ' IL TMessaggio = Ucase(M ' MOSTRA IL MESSAGGIO (ORA TUTTO IN MAIUSCOLO) Response.Write Messaggio ' ... %>

Page 150: [E-Book ITA] Creare Un Sito in ASP - Aranzulla

© Salvatore Aranzulla – Trucchi, consigli e suggerimenti per il tuo portale in ASP! http://salvatore-aranzulla.splinder.it – http://www.hardwaremax.it

Pagina 150 di 162

<% ' ... file = "file.asp" ' NOME_FILE = PRELEVA DA SINISTRA I PRIMI QUATTRO CARATTERI DELLA VARIABILE FILE nome_file = Left(file, 4) ' MOSTRA IL NOME DEL FILE Response.Write nome_file ' ... %>

Right La funzione Right è “il gemello della funzione Left”¸infatti questa funzione serve a prelevare una parte di una stringa passata, dato un certo numero di lettere, in questo caso, da destra, riprendiamo l’esempio della funzione Left (mostrare il nome del file) e facciamo adesso invece visualizzare l’estensione del file (“.asp”) della variabile “file”: <% ' ... file = "file.asp" ' ESTENSIONE_FILE = PRELEVA DA DESTRA I PRIMI QUATTRO CARATTERI (L'ESTENSIONE) ' DALLA VARIABILE FILE estensione_file = Right(file, 4) ' MOSTRA L'ESTENSIONE DEL FILE Response.Write estensione_file ' ... %>

Len La funzione Len serve per scoprire la lunghezza della stringa passata. Essa ad esempio può essere utile per verificare se una variabile è vuota, facendo un controllo sulla sua lunghezza:

Page 151: [E-Book ITA] Creare Un Sito in ASP - Aranzulla

© Salvatore Aranzulla – Trucchi, consigli e suggerimenti per il tuo portale in ASP! http://salvatore-aranzulla.splinder.it – http://www.hardwaremax.it

Pagina 151 di 162

<% ' ... stringa = "file.asp" ' LUNGHEZZA_VARIABILE = LUNGHEZZA (IN CARATTERI) DELLA VARIABILE "STRINGA" lunghezza_variabile = Len(stringa) ' MOSTRA LA LUNGHEZZA DELLA VARIABILE (IN QUESTO CASO IL NUMERO 9) Response.Write lunghezza_variabile ' CONDIZIONE PER VERIFICARE SE LA VARIABILE "STRINGA" CONTIENE UN TESTO ' SE LA LUNGHEZZA DELLA VARIABILE STRINGA (lunghezza_variabile) E' MAGGIORE DI ZERO : IF lunghezza_variabile > 0 Then ' VARIABILE "STRINGA" CONTIENE UN TESTO Response.Write "PIENA" Else ' ALTRIMENTI Response.Write "VUOTA" End IF ' ... %>

Trim Spesso in queste pagine (ad esempio per la creazione della chat) è stata usata la funzione TRIM, questa funzione serve per eliminare lo spazio iniziale e finale che potrebbero esserci in una stringa. Facciamo un esempio pratico: <% variabile = " ciao " Response.Write TRIM(variabile) %> Verrà visualizzato “ciao”, senza lo spazio iniziale e quello finale.

Page 152: [E-Book ITA] Creare Un Sito in ASP - Aranzulla

© Salvatore Aranzulla – Trucchi, consigli e suggerimenti per il tuo portale in ASP! http://salvatore-aranzulla.splinder.it – http://www.hardwaremax.it

Pagina 152 di 162

StrReverse Fra le varie “funzioni strane” di ASP possiamo ricordare “StrReverse”, si tratta di una funzione sicuramente poco conosciuta che, una volta passata una stringa, la restituisce con l'ordine dei caratteri invertito, in parole povere al contrario: <% ' ... stringa = "OTELMA" ' MOSTRA IN QUESTO CASO "AMLETO" (IL VALORE DELLA VARIABILE "STRINGA" AL CONTRARIO) Response.Write StrReverse(stringa) ' ... %>

Page 153: [E-Book ITA] Creare Un Sito in ASP - Aranzulla

© Salvatore Aranzulla – Trucchi, consigli e suggerimenti per il tuo portale in ASP! http://salvatore-aranzulla.splinder.it – http://www.hardwaremax.it

Pagina 153 di 162

Capitolo 19

Le date e gli orari In pagine ASP può risultare spesso molto utile mostrare a video la data e/o l’ora corrente. Per mostrare la data in una pagina ASP basta inserire semplicemente: <%=Date()%> Mentre per mostrare l’ora corrente: <%=Time()%> Si può anche citare la funzione Now() (<%=Now()%>) che visualizza assieme data e ora. In questo modo però mostreremo semplicemente data e ora, vediamo invece come visualizzare qualcosa di più preciso, tipo solo il giorno, il mese, l’anno corrente, cioè come gestire e formattare al meglio le date e gli orari in base alle nostre esigenze.

Formattare le date

Esiste una funzione in ASP per scegliere il tipo di visualizzazione della data e dell'ora, si tratta della funzione FormatDateTime().

La sua sintassi è:

FormatDateTime (data/ora, argomento)

In data va la data da formattare, se occorre formattare la data corrente si può inserire semplicemente Date(), o Time() per l’orario, in argomento invece vanno:

• VbLongDate • vbShortTime

Il primo, VbLongDate, visualizza la data nel formato esteso, cioè giorno numero giorno mese anno, ad esempio “martedì 21 ottobre 2003”; il secondo, vbShortTime, invece, visualizza l'ora in formato abbreviato, cioè “ora.minuti”, ad esempio “15.43”

Per esempio scriveremo:

<%=FormatDateTime (time(), vbShortTime)%>

Per visualizzare l’ora corrente nel formato abbreviato. Giorno, mese e … anno!

Page 154: [E-Book ITA] Creare Un Sito in ASP - Aranzulla

© Salvatore Aranzulla – Trucchi, consigli e suggerimenti per il tuo portale in ASP! http://salvatore-aranzulla.splinder.it – http://www.hardwaremax.it

Pagina 154 di 162

E' possibile da una data risalire al mese, all'anno, al giorno o da un orario all’ora, ai minuti e ai secondi... vediamo come, con queste funzioni di ASP.

• Year(data) Risale all’anno della data

• Month(data) Risale al mese della data (in formato numerico)

• Day(data) Risale al giorno della data

• Hour(ora) Risale all’ora dell’orario

• Minute(ora) Risale ai minuti dell’orario Second(ora) Risale ai secondi dell’orario

d esempio per visualizzare il giorno della data attuale inseriremo:

date è la funzione MonthName(), che ome del mese della data. La sua sintassi è:

ero del mese, tipo nome mese)

umero del mese è il numero del mese,mentre tipo nome mese può essere uguale

nome del mese abbreviato

ossiamo unire MonthName() e Month() in:

di dover eseguire una differenza fra date, facendo una semplice a e la seconda (data1 – data2) ci viene dato un errore,

erché non si tratta di numeri ma di date, in cui si usa la funzione DateDiff().

ateDiff(tipo sottrazione, prima data, seconda data)

ta, vanno ovviamente inserite le date due date da in tipo sottrazione dobbiamo invece inserire:

A

<%=Day(Date())%>

Una funzione particolare che riguarda lepermette di mostrare il n

MonthName(num

Na:

• True Restituisce il

• False Restituisce il nome del mese intero

P

<%=MonthName(Month(data), tipo nome mese)%> Per visualizzare il nome del mese corrente.

Differenza fra date Capita spesso in ASP sottrazione fra la prima datp

La sua sintassi:

D

In prima data e in seconda dasottrarre (seconda data – prima data),

• yyyy

Page 155: [E-Book ITA] Creare Un Sito in ASP - Aranzulla

© Salvatore Aranzulla – Trucchi, consigli e suggerimenti per il tuo portale in ASP! http://salvatore-aranzulla.splinder.it – http://www.hardwaremax.it

Pagina 155 di 162

Differenza fra anni

• m

ire anche una differenza fra orari,

• h

Differenza fra minuti

Differenza fra secondi

un esempio di questa funzione:

DateDiff("yyyy", "21/10/2003", "21/10/2004") %>

ni di queste due date e verrà mostrato a video

venuto

tilizzando le condizioni e gli orari è possibile mostrare a video ad esempio un gio di benvenuto al nostro sito diverso in base all’ora corrente:

RELEVA L'ORA CORRENTE Hour(Now)

If Ora < 12 Then %>

<% ElseIf Ora < 17.30 Then %> Buon pomeriggio ! <% ElseIf Ora < 21 Then %> Buona sera ! <% Else %> Buona notte ! <%

Differenza fra mesi

• d Differenza fra giorni

Sempre con la stessa funzione è possibile eseguutilizzeremo in questo caso:

Differenza fra ore

• n

• s

Facciamo <%=

Verrà eseguita una differenza fra gli an“1”, ovvero un anno di differenza. Messaggi di benUmessag

<% ' POra =

Buon giorno !

Page 156: [E-Book ITA] Creare Un Sito in ASP - Aranzulla

© Salvatore Aranzulla – Trucchi, consigli e suggerimenti per il tuo portale in ASP! http://salvatore-aranzulla.splinder.it – http://www.hardwaremax.it

Pagina 156 di 162

End If %>

Al posto dei messaggi di benvenuto è possibile ovviamente, ad esempio, far visualizzare delle immagini diverse in base all’ora: basta affidarsi alla propria fantasia...

Page 157: [E-Book ITA] Creare Un Sito in ASP - Aranzulla

© Salvatore Aranzulla – Trucchi, consigli e suggerimenti per il tuo portale in ASP! http://salvatore-aranzulla.splinder.it – http://www.hardwaremax.it

Pagina 157 di 162

Sostituiamo le faccine con delle immagini Una cosa molto simpatica in un sito web può essere quella di sostituire le faccine (ad esempio “:-)”) con delle immagini (ad esempio, in questo caso:

Capitolo 20

) nella chat o nel guestbook. Creiamo quindi una funzione per fare questo... Ecco il codice di questa funzione, che abbiamo chiamato “SMILES”: <% Function SMILES(STRINGA) ' DICHIARA L'ARRAY "FACCINE", ' CHE CONTERRA' LE FACCINE ' E IL NOME DELLE IMMAGINI CON LE ' QUALI SOSTITUIRLE... dim faccine(2, 2) ' IL PRIMO NUMERO, INSERITO FRA PARENTESI ' (IN QUESTO CASO IL NUMERO 2), CORRISPONDE ' AL NUMERO DI FACCINE INSERITE ' DA SOSTITUIRE, ' QUINDI PER OGNI FACCINA DA SOSTITUIRE ' CON UNA IMMAGINE CHE INSERIREMO, ' DOVREMO INCREMENTARE IL PRIMO NUMERO ' PER AGGIUNGERE UNA FACCINA, SCRIVEREMO SOTTO ' LE FACCINE GIA' INSERITE: ' faccine(Numero seguente, 1) = "faccina" ' faccine(Numero faccina, 2) = "nome dell'immagine.estensione" ' ' RICORDIAMOCI DI INCREMENTARE IL PRECEDENTE NUMERO ' (L'INDICE DELL'ARRAY -> dim faccine(X, 2)) faccine(0, 1) = ":-)" faccine(0, 2) = "felice.gif" faccine(1, 1) = ":-(" faccine(1, 2) = "triste.gif" faccine(2, 1) = ":D" faccine(2, 2) = "felicissimo.gif" ' CARTELLA DOVE ANDRANNO MESSE LE IMMAGINI ' DELLE FACCINE (AD ESEMPIO "/SMILE/")

Page 158: [E-Book ITA] Creare Un Sito in ASP - Aranzulla

© Salvatore Aranzulla – Trucchi, consigli e suggerimenti per il tuo portale in ASP! http://salvatore-aranzulla.splinder.it – http://www.hardwaremax.it

Pagina 158 di 162

Cartella = "/smile/" ' -> -> -> -> -> -> -> -> -> -> ' DA QUI INIZIA IL VERO CUORE ' DELLA FUNZIONE ' -> -> -> -> -> -> -> -> -> -> ' SE LA LUNGHEZZA DELLA STRINGA PASSATA ' E' MAGGIORE DI 0, EFFETTUA IL CONTROLLO

NI DELLE FACCINE

' SOSTITUISCE LE EVENTUALI FACCINE ' CON LE LORO IMMAGINI Stringa = Replace(stringa, faccine(x, 1), "<img src=""" & CARTELLA & faccine(x, 2) &""">") Next ' RILASCIA IL CONTENUTO PASSATO ' CON LA SOSTITUZIONE OVVIAMENTE DELLE FACCINE ' CON DELLE IMMAGINI SMILES = Stringa End IF End Function %> Per richiamare questa funzione, basterà semplicemente scrivere: <%=SMILES(STRINGA)%> Ovviamente, la nostra funzione dovrà essere inserita nella pagina nella quale la si richiama. Cioè, se io richiamo la funzione nella pagina “pagina.asp”, in questa pagina dovrò inserire il codice della funzione SMILES. Per velocizzare il tutto creiamo la pagina “smiles.asp” e inseriamo al suo interno il contenuto della nostra funzione. Collochiamo questa pagina nella cartella nella quale è contenuto il nostro sito. In questo modo basterà inserire solamente la seguente riga, all’inizio della pagina nella quale si vuole utilizzare la nostra funzione, per poterla, appunto, utilizzare:

' E LE EVENTUALI SOSTITUZIO IF Len(Stringa) > 0 Then For x = 0 to Ubound(faccine)

Page 159: [E-Book ITA] Creare Un Sito in ASP - Aranzulla

© Salvatore Aranzulla – Trucchi, consigli e suggerimenti per il tuo portale in ASP! http://salvatore-aranzulla.splinder.it – http://www.hardwaremax.it

Pagina 159 di 162

<!-- #INCLUDE FILE="smiles.asp" -->

Applichiamo questa funzione al nostro guestbook Nella visualizzazione dei messaggi del nostro GuestBook (che avviene nella pagina guestbook.asp) inseriamo all’inizio della pagina il seguente include (che include la pagina “smiles.asp”, precedentemente creata): <!-- #INCLUDE FILE="smiles.asp" --> E trasformiamo la riga che visualizza i messaggi del guestbook: <%=RS("messaggio")%> In: <%=SMILES(RS("messaggio"))%> In questo modo verrà attivata questa funzione.

Applichiamo questa funzione alla nostra chat Interveniamo in questo caso, invece, nella pagina “centro_chat.asp”, che visualizza i messaggi della chat. Includiamo sempre la pagina “smiles.asp” e trasformiamo la riga che visualizza i messaggi della chat: Response.Write Replace(Application("messaggi"), "@!/", "<br>") In: Response.Write SMILES(Replace(Application("messaggi"), "@!/", "<br>")) Abbiamo così pure applicato questa funzione alla nostra chat!

Associare questa funzione a quella per la rimozione delle parole indesiderate Ovviamente, questa funzione può essere associata a quella per la rimozione delle parole indesiderate. In questo caso, occorrerà includere le pagine delle due funzioni (parolacce.asp e smiles.asp) e nel punto in cui applicare le funzioni:

Page 160: [E-Book ITA] Creare Un Sito in ASP - Aranzulla

© Salvatore Aranzulla – Trucchi, consigli e suggerimenti per il tuo portale in ASP! http://salvatore-aranzulla.splinder.it – http://www.hardwaremax.it

Pagina 160 di 162

PAROLE_INDESIDERATE(SMILES(STRINGA))

Page 161: [E-Book ITA] Creare Un Sito in ASP - Aranzulla

© Salvatore Aranzulla – Trucchi, consigli e suggerimenti per il tuo portale in ASP! http://salvatore-aranzulla.splinder.it – http://www.hardwaremax.it

Pagina 161 di 162

Dubbi? Risolviamoli!

Database Sono state fate spesso in questo libro delle connessioni a dei database. Vediamo la stringa di connessione utilizzata: ' PERCORSO DEL DATABASE url_DB = "driver={Microsoft Access Driver (*.mdb)};dbq=" & server.mappath("/mdb-database/database.mdb") Set Conn = Server.CreateObject("ADODB.Connection") conn.Open url_DB Nella variabile url_DB si specifica che il tipo di database è un database Access e si stabilisce il percorso del database. In questo il database dovrà trovarsi dentro la cartella /mdb-database/ Perché la cartella mdb-database? Il nome di questa cartella non è preso a caso, infatti nella maggior parte degli spazi web su Internet, la cartella in cui inserire i database si chiama /mdb-database/. Per questo ho inserito a titolo di esempio questa cartella. Ovviamente vi sono spazi con cartelle di altri nomi tipo /DB/, ecc.. Per adattarsi a questi spazi basterà cambiare il percorso del database, ricordando che essi dovranno essere inseriti in una cartella in cui è possibile scrivere/leggere. Poi viene creato l’”oggetto” Conn con il quale collegarsi al database e aperta la connessione (Conn.Open url_DB). Sempre legato al tema dei database c’è il file “adovbs.inc”. In questo file si trovano delle costanti che servono per collegarsi al database. E’ possibile scaricare questo file dal mio sito (vi ricordate dove si trova?) oppure cercando in qualche motore di ricerca (tipo Google, TUhttp://www.google.it UT).

Uniamo gli script In ogni script viene detto di creare un nuovo database, ma se io voglio usare due o più script come faccio? Devo creare due database? Assolutamente, no! Ti basta creare semplicemente la nuova tabella nel tuo database. E per le amministrazioni? Semplice, basterà inserire nella cartella “admin” i file per gestire i vari script.

Page 162: [E-Book ITA] Creare Un Sito in ASP - Aranzulla

© Salvatore Aranzulla – Trucchi, consigli e suggerimenti per il tuo portale in ASP! http://salvatore-aranzulla.splinder.it – http://www.hardwaremax.it

Pagina 162 di 162

… umm… ma la pagina “index.asp” non viene sovrascritta? La schermata di identificazione ha lo stesso nome in tutti gli script! Ebbene, sì. La pagina index.asp viene sovrascritta ma questo poco importa: tutti i file index.asp sono uguali! Cambia solo l’indirizzo della pagina dove portare l’amministratore una volta che si è loggato (Gestione_NOMESCRIPT.asp). Si potrebbe creare a tal proposito una pagina (tipo Gestione_generale.asp) con i link alle varie pagine di gestione dei vari script. Se avete altri dubbi, scrivetemi e cercheremo di risolverli in questa sezione. Vi ripeto l’indirizzo del mio sito (non lo ricordavate, vero? :P) e la mia email: TUhttp://salvatore-aranzulla.splinder.itUT e [email protected] UT