problema form registrazione

  • Creatore Discussione Creatore Discussione morbibi
  • Data di inizio Data di inizio

morbibi

Nuovo Utente
3 Ago 2004
5
0
0
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
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é! :confused:
 
Sarebbe meglio se postassi proprio l'errore!

Cmq, l'errore riguarda la connessione al database, di preciso, l'errore avviene all'apertura della connessione!

il database esiste? è nella cartella mdb-database della root del tuo server?

Controlla l'esistenza del database e controlla il percorso!

Ciao, ciao.
 

Discussioni simili