La tecnica che descrivo in questa lezione, sarà quella effettivamente utilizzata nel corso della realizzazione del progetto messaggeria.
Prima di incominciare a descrivere il suo meccanismo, mostro il codice sorgente del file config.asp:
01: <%
02: 'Evito la memorizzazione in cache/proxy della pagina [Non modificabile]
03: response.Expires = -1500
04: response.AddHeader "PRAGMA", "NO-CACHE"
05: response.AddHeader "CACHE-CONTROL", "PRIVATE"
06: response.CacheControl = "PRIVATE"
07:
08: ' Parti Modificabili
09: dim dbCode 'Codice di accesso al mySql
10: dbCode="innovatel"
11: dim dbUser 'Nome di accesso al mySql
12: dbuser="innovatel"
13: dim dbServer 'Nome del server
14: dbServer=""
15: dim dbName 'Nome del database
16: dbname="messaggeria"
17: dim dbDriver 'Tipo di driver
18: dbDriver="MySQL"
19:
20: 'Parti NON Modificabili
21: if trim(dbServer)<>"" then
22: dbServer = "server="&dbServer&";"
23: end if
24: if trim(dbName)<>"" then
25: dbName = "db="&dbName&";"
26: end if
27: if trim(dbDriver)<>"" then
28: dbDriver = "driver="&dbDriver&";"
29: end if
30: if trim(dbUser)<>"" then
31: dbUser = "uid="&dbUser&";"
32: end if
33: if trim(dbCode)<>"" then
34: dbCode = "pwd="&dbCode&";"
35: end if
36:
37: 'Preparo la stringa di connessione
38: dbConnessione = trim(dbServer) & trim(dbName)
39: dbConnessione = dbConnessione & trim(dbDriver)
40: dbConnessione = dbConnessione & trim(dbUser)
41: dbConnessione = dbConnessione & trim(dbCode)
42:
43: %>
Come potrete osservare, ho diviso il codice in "due tipologie": parti modificabili e parti non modificabili. Nelle righe che vanno dalla 03 alla 06, abbiamo il classico script che impedisce la memorizzazione nella cache e nei proxy della pagina asp elaborata. Ciò è molto utile per evitare che l'utente possa osservare l'arrivo di nuovi messaggi in tempo reale senza dover svuotare ogni volta a mano la cache del proprio browser.
Le righe comprese tra la 08 e la 18 appartengono alla "tipologia modificabili". Esse contengono i valori che poi andranno a costituire la stringa di connessione finale del database (dbConnessione). Ora, anche se può sembrare superfluo, facciamo un confronto tra il nome della variabile ed il corrispettivo valore nella stringa di connessione in base alla tabella riportata in precedenza.
Nome Variabile
|
Stringa di connessione
|
dbServer | server |
dbName | db |
dbDriver | driver |
dbUser | uid |
dbCode | pwd |
I dati immessi nelle variabili sono quelli utilizzati già in precedenza nelle lezioni di analisi della configurazione del mySql e, per chi desidera utilizzarlo, la creazione del DNS di sistema.
Le righe che seguono (da 28 a 35) controllano se nelle variabili appena illustrate, è stato immesso un valore. In caso affermativo, inseriscono prima del valore immesso la parola chiave relativa per la creazione della stringa di connessione al database.
Le ultime righe (da 37 a 41) concatenano i risultati appena elaborati creando la stringa di connessione che utilizzeremo semplicemente richiamando dbConnessione senza doverla ricostruirla ogni volta.
La stringa generata (nel nostro caso) sarà la seguente:
db=messaggeria;driver=MySQL;uid=innovatel;pwd=innovatel;
Come potete osservare, la parola chiave server non è presente all'interno della stringa appena illustrata. Perchè? La risposta è stata appena detta, ma il concetto in pratica vale molto di più che una teoria. Nella riga 14, la stringa server viene dichiarata vuota:
14: dbServer=""
In seguito, alla riga 21, viene controllato se all'interno della variabile dbServer è presente un valore.
21: if trim(dbServer)<>"" then
22: dbServer = "server="&dbServer&";"
23: end if
Non essendo presente, la parola chiave server non verrà inserita e di conseguenza la variabile resterà vuota. Quando alla riga 38:
38: dbConnessione = trim(dbServer) & trim(dbName)
si effettuerà l'inserimento di trim(dbServer) non otterremo nulla per i motivi appena esposti.
Prima di concludere, volevo dare un consiglio su quando utilizzare il metodo dei file inclusi. A mio avviso questa tecnica è molto comoda, ma va applicata nei siti web con basso/medio traffico per non eccedere nel ricreare ogni volta la stessa stringa di connessione La tecnica da me usata per la stringa di connessione è più lunga rispetto a quella utilizzata normalmente in quanto è altamente personalizzabile variando il nome delle variabile. Se desiderate, potete scriverla direttamente all'interno della variabile dbConnessione in modo da aumentare le prestazioni del sito web.