Allora...Sto creando un form per registrarsi ad un sito. Il form chiede: username, passsword ed e-mail che poi va alla pagina registrazione2.asp di cui il codice è il seguente
Questo codice è preso pari, pari da una guida ma risulta sbagliato, in quanto mi dice che c'è un errore nella riga 32 che dovrebbe essere quella in rosso. Però non capisco il perché!
Codice:
<html>
<head>
<title>SEZIONI RISERVATE</title>
</head>
<body>
<p> </p>
<p align="center"><font face="Verdana" size="3"><b>Sezioni Riservate -
Registrati</b></font></p>
<!-- #include file = "adovbs.inc" -->
<%
' VENGONO SOSTITUITI GLI APICI (') CON DUE APICI ('')
' PER EVITARE IL PROBLEMA "SQL INJECTION"
username = Replace(Request.Form("username"), "'", "''")
password = Replace(Request.Form("password"), "'", "''")
email = Replace(Request.Form("email"), "'", "''")
' CONTROLLA INNANZITUTTO SE TUTTI I CAMPI SONO STATI COMPILATI
' CORRETTAMENTE
IF username <> "" and password <> "" and Instr(email, "@") > 0 and Instr(email, ".") > 0 then
' CAMPI COMPILATI CORRETTAMENTE
' PERCORSO DEL DATABASE
url_DB = "driver={Microsoft Access Driver (*.mdb)};dbq=" & server.mappath("/mdb-database/database.mdb")
Set Conn = Server.CreateObject("ADODB.Connection")
[COLOR=Red]conn.Open url_DB [/COLOR]
Set RecSet = Server.CreateObject("ADODB.Recordset")
SQL = "SELECT * FROM Utenti where username = '" & username &"'"
RecSet.Open SQL, Conn, adOpenStatic, adLockOptimistic
' CONTROLLA SE L'USERNAME INSERITO E' GIA' STATO USATO
IF Not RecSet.Eof Then
' USERNAME GIA' USATO
' IMPOSTA LA VARIABILE "USATO" SU TRUE
' (IN MODO DA POTER FAR DOPO UN CONTROLLO IF...)
usato = True
Else
' ALTRIMENTI ... USERNAME NON USATO
' IMPOSTA LA VARIABILE "USATO" SU FALSE
usato = False
End IF
' Chiude la connessione al DB
RecSet.Close
Set RecSet = Nothing
' FA LA CONDIZIONE PER VERIFICARE SE L'USERNAME
' IMMESSO E' GIA' STATO USATO...
IF usato = True then
' USERNAME GIA' USATO.
%>
<hr>
<p align="center"><b><font face="Verdana" size="2">Username inserito gi in uso!</font></b></p>
<hr>
<%
Else
' NICK NON USATO...
' PROCEDE ALLA SUA REGISTRAZIONE...
Set RecSet = Server.CreateObject("ADODB.Recordset")
SQL = "SELECT * FROM Utenti Order By ID Desc"
RecSet.Open SQL, Conn, adOpenStatic, adLockOptimistic
RecSet.Addnew
RecSet("username") = username
RecSet("password") = password
RecSet("email") = email
' INSERISCE NEL DB NEL CAMPO "ATTIVO" IL VALORE 0
' CHE INDICA CHE LA REGISTRAZIONE NON E' STATA ANCORA ATTIVATA,
' INFATTI, DOPO AVER IMMESSO I DATI NEL DB, VERRA' INVIATA ALL'UTENTE
' UNA EMAIL (TRAMITE L'OGGETTO CDONTS) CON UN LINK CHE PUNTA ALLA PAGINA
' "ATTIVA.ASP", PER ATTIVARE L'ACCOUNT.
' SENZA LATTIVAZIONE NON E' POSSIBILE
' ACCEDERE ALLE SEZIONI RISERVATE DEL NOSTRO SITO...
'
' NELLA PAGINA "ATTIVA.ASP" VERRA' POI TRASFORMATO LO ZERO (0)
' IN UNO (1) E SARA' POSSIBILE QUINDI ACCEDERE ALLE SEZIONI RISERVATE
' DEL NOSTRO SITO.
'
' ABBIAMO INSERITO QUESTO SISTEMA DI CONTROLLO
' PER VERIFICARE CHE I DATI INSERITI SIANO CORRETTI
RecSet("attivo") = 0
' CHIUDE LA CONNESSIONE AL DB
RecSet.Update
RecSet.Close
Set RecSet = Nothing
' PRELEVA L'ID DELL'UTENTE APPENA INSERITO:
Set RecSet = Server.CreateObject("ADODB.Recordset")
SQL = "SELECT ID FROM Utenti Where username = '" & username & "' and password = '" & password &"'"
RecSet.Open SQL, Conn, adOpenStatic, adLockOptimistic
ID = RecSet("ID")
RecSet.Close
Set RecSet = Nothing
Conn.Close
Set Conn = Nothing
' INVIA L'EMAIL ALL'UTENTE PER ATTIVARE L'ACCOUNT
' (COME SI NOTA VIENE FATTO UN LINK DI QUESTO TIPO:
' [url]HTTP://WWW.SITOMIO.IT/ATTIVA.ASP?ID=ID[/url] PRECEDENTEMENTE PRESO DAL DB)
mittente = "mia_email@miosito.it"
testo = "Caro utente," & chr(13)
testo = testo & "per attivare la registrazione al nostro sito, fai click sul link qui sotto" & chr(13)
testo = testo & "http://www.sitomio.it/attiva.asp?ID=" & id &"" & chr(13) & chr(13)
testo = testo & "Lo staff di Mio sito!" & chr(13)
testo = testo & "http://www.sitomio.it"
emaila = email
Set email = CreateObject("CDONTS.NewMail")
email.From = mittente
email.To = emaila
email.Subject = "[MIO SITO] ATTIVA LA REGISTRAZIONE!"
email.Body = testo
email.Send
Set email = nothing
%>
<hr>
<p align="center"><b><font face="Verdana" size="2">Ti stata inviata una email per confermare la registrazione!</font></b></p>
<hr>
<%
End IF
Else
' DATI NON COMPILATI CORRETTAMENTE
%>
<hr>
<p align="center"><b><font face="Verdana" size="2">Compila tutti i dati correttamente!</font></b></p>
<hr>
<%
End IF
%>
</body>
</html>
Questo codice è preso pari, pari da una guida ma risulta sbagliato, in quanto mi dice che c'è un errore nella riga 32 che dovrebbe essere quella in rosso. Però non capisco il perché!
