Si consiglia di visionare il file
sorgente completo per maggior dettagli nella spiegazione della lezione.
Appena inviamo il form, viene ricaricata la stessa pagina e viene nuovamente effettuato il controllo descritto in precedenza. Tale controllo verifica se la pagina viene semplicemente caricata oppure se ha il compito di rielaborare i dati immessi nel form.
003: if Request.TotalBytes>0 then
004: dim strLogin
005: strLogin = request.form("login")
006: strLogin = trim(strLogin)
007: dim strCode
008: strCode = request.form("codice")
009: strCode = trim(strCode)
010: dim strMail
011: strMail = request.form("mail")
012: strMail = trim(strMail)
013: dim intValido
014: intValido = 0
Questa volta, come prevedibile, vi sono dei dati inviati e vengono memorizzati all'interno di variabili.
Nome variabile
|
Casella di Testo
|
Significato
|
strLogin | login | Nome utente scelto all'interno della messaggeria |
strCode | codice | Codice di accesso scelto all'interno della messaggeria |
strMail | Indirizzo di posta elettronica scelto da utilizzare all'interno della messaggeria. |
Una volta acquisiti questi tre dati, viene testato che tutti e tre i siano validi e che nessuno di essi sia nullo.
016:if(strMail<>"")AND(strCode<>"")AND(strLogin<>"")then
Se il test viene superato, viene effettuata una ricerca all'interno della tabella specifica per verificare la presenza di un eventuale nome utente uguale a quello immesso nel form di registrazione (si ricorda che il nome utente deve esser univoco)
022: 'Verifico che non vi sia gi utente
023:
024: Set conn = Server.CreateObject("ADODB.Connection")
025: Set comm = Server.CreateObject("ADODB.Command")
026: Set Rs = Server.CreateObject("ADODB.Recordset")
027:
028: conn.CommandTimeout = 40
029: conn.CursorLocation = 1
030: conn.ConnectionString = dbConnessione
031: conn.Open
032:
033: comm.ActiveConnection = conn
034: comm.CommandType = 1
035:
036: comm.CommandText = "select id_user from utenti
where login='"&strLogin&"'"
037:
038: Rs.Open comm,,1,1
039:
040: if not(rs.eof) then
041: intValido = 1
042: end if
043:
044: rs.close
045: conn.close
046:
047: set rs = nothing
048: set comm = nothing
049: set conn = nothing
Alla riga ventiquattro, abbiamo la dichiarazione dell'oggetto connessione. La creazione della connessione ADO col database mySql è la parte fondamentale. Infatti senza di essa non vi è alcuna possibilità di accedere ai dati presenti al suo interno.Ora osserviamo le proprietà dell'oggetto connessione dichiarate nelle righe dalla 28 alla 30.
N° Riga
|
Proprietà
|
Valore
|
Significato
|
28
|
CommandTimeout | 40 | Specifica il tempo di attesa massimo prima di dichiarare fallito il tentativo di connessione. |
29
|
CursorLocation | 1 | Specifica dove utilizzare il cursore. |
30
|
ConnectionString | dbConnessione | Specifica la stringa di connessione necesaria per connettersi al database. Specificata o nel file incluso oppure all'interno del global.asa |
31
|
Open | / | Apre la connessione al database utilizzando i valori specificati in precedenza. |
In seguito, nella riga 25, viene dichiarato l'oggetto command. Tale oggetto è in grado di eseguire comandi Sql oppure di manipolare la struttura di un database.Ora osserviamo le proprietà dell'oggetto command dichiarate nelle righe dalla 33 alla 36.
033: comm.ActiveConnection = conn
034: comm.CommandType = 1
035:
036: comm.CommandText = "select id_user from utenti
where login='"&strLogin&"'"
N° Riga
|
Proprietà
|
Valore
|
Significato
|
33
|
ActiveConnection | conn | Specifica su quale connessione deve deve lavorare l'oggetto command istanziato. |
34
|
CommandType | 1 | Specifica se il comando riguarda una tabella(2) oppure se è una stringa SQL (1) |
36
|
CommandText | "select id_user from utenti where login='" & strLogin & "'" | Indica la stringa SQL da eseguire. |
Alla riga 26, viene instanziato il recordset e immediatamente viene aperto:
038: Rs.Open comm,,1,1
sfruttando i valori specificati nei due oggetti istanzati in precedenza. Una volta aperto il recordset, vi è la verifica dell'esistenza o meno del nostro nome nel database:
040: if not(rs.eof) then
041: intValido = 1
042: end if
Se esiste già un utente con nome scelto in fase di registrazione, la variabile intValido assumerà valore 1. Torniamo brevemente al form di registrazione descritto nella pagina precedente:
145: <td colspan="5">
146: <%
147: select case intValido
148: case 0
149: response.write " "
150: case 1
151: response.write "Nome utente gi in uso. Sceglierne
nuovo."
152: case 2
153: response.write "Verificare i dati immessi."
154: end select
155: %>
156: </td>
Ecco da dove si ricavava il valore necessario a far apparire o meno scritte tra la riga azzurrina del titolo e le caselle di testo.