Allora...Su una guida ho trovato un codice molto simile al mio (bisogna dire che il mio era un insieme di diverse guide, che probabilmente hanno preso spunto da lì) il codice della pagina, che a me non funziona è questo:
codice:
<html>
<head>
<title>SEZIONI RISERVATE</title>
</head>
<body>
</p>
<p align="center"><font face="Verdana" size="3">Sezioni Riservate -
Registrati</font></p>
<%
' 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")
conn.Open url_DB
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"><font face="Verdana" size="2">Username inserito gi in uso!</font></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:
' HTTP://WWW.SITOMIO.IT/ATTIVA.ASP?ID=ID 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"><font face="Verdana" size="2">Ti stata inviata una email per confermare la registrazione!</font></p>
<hr>
<%
End IF
Else
' DATI NON COMPILATI CORRETTAMENTE
%>
<hr>
<p align="center"><font face="Verdana" size="2">Compila tutti i dati correttamente!</font></p>
<hr>
<%
End IF
%>
</body>
</html>
Ma neanche questo funziona in modo corretto! (Figurarsi!), Se inserisco i dati in modo errato mi da, giustamente, il messagio inserisci correttamente i dati. Se li inserisco correttamente mi dice che c'è un problema alla riga 32, che, se non sbaglio, è quella in rosso! Ma non capisco l'errore!
A questo proposito vi voglio anche chiedere...Esistono siti, programmi o qualcosa che ti controllano il codice e ti dicono gli errori?