- Home
- Categorie
- Coding e Sistemistica
- Altri linguaggi per il web
- [ASP]come creare un login e registrazione utenti
-
Quindi tirando le somme il codice dovrebbe essere questo:
Ma non capisco quale dei due devo utilizzare "objMail.From"
guarda in fondo alla pagina. :bho:<%
dim nome
dim user
dim pwd
'evitiamo l'SQL Injection replicando gli apici
nome=Replace(request.form("form_nome"),"'","''")
user=Replace(request.form("form_user"),"'","''")
password=Replace(request.form("form_password"),"'","''")
Dim conn
Set conn = Server.CreateObject("ADODB.Connection")
conn.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & server.MapPath("mdb-database/pass.mdb")
sql = "SELECT * FROM pass WHERE user = '" & user & "'"
Set rs = Server.CreateObject("ADODB.Recordset")
rs.Open sql, conn, 3, 3If rs.EOF then
RS.AddNew
rs.Fields("nome")=nome
rs.Fields("user")=user
rs.Fields("pwd")=pwd
rs.update
RS.Close
Set RS=Nothing
conn.Close
Set conn=Nothing
response.redirect("reg_ok.htm")Else
Response.Write("User giá esistente")
Response.End
RS.Close
Set RS=Nothing
conn.Close
Set conn=NothingEnd if
%>Dim objMail, objConfig
Set objMail = Server.createObject("CDO.Message")
Set objConfig = Server.createObject ("CDO.Configuration")With objConfig
.Fields("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "il tuo smtp"
.Fields("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
.Fields("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
.Fields("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 60
.Fields.update
End WithSet objMail.Configuration = objConfig objMail.From = "[email protected]" 'Mail del destinatario <----- QUESTO objMail.From = request.form("mail") <---- O QUESTO objMail.To = "[email protected]" 'Mail del destinatario objMail.Subject = "Oggetto mail" objMail.HTMLBody = "Ciao la tua user è: " & user & " e la tua password è:" & password objMail.Send() Set objMail = Nothing
-
Devi usare l'ultimo che ti ho dato.
La prossima volta che posti il codice per favore racchiudilo tra i tag appropriati. [ CODE ] [/ CODE ]
Ciao
-
Scusami hai ragione, ok lo provo e ti faccio sapere !;)
-
@Legolas said:
<%
Dim objMail, objConfig
Set objMail = Server.createObject("CDO.Message")
Set objConfig = Server.createObject ("CDO.Configuration")With objConfig
.Fields("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "il tuo smtp"
.Fields("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
.Fields("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
.Fields("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 60
.Fields.update
End WithSet objMail.Configuration = objConfig objMail.From = request.form("mail") objMail.To = "qui ci metti la mail del destinatario" ' Destinatario objMail.Subject = "Oggetto mail" objMail.HTMLBody = "Ciao la tua user è: " & user & " e la tua password è:" & password objMail.Send() Set objMail = Nothing
%>
Scusami Legolas se solo ho provato il codice da te inviatomi, (ho avuto qualche problema di troppo) ma prima di provarlo ho nuovamente controllato e secondo me vi è qualcosa che non và !
@Legolas said:objMail.To = "qui ci metti la mail del destinatario" ' Destinatario
Lo scopo del form con registrazione (oltre naturalmente alla registrazione stessa) è anche quella di sapere chi si è registrato, e questo desidererei saperlo tramite un'email che mi arriva non appena l'utente si è appena registrato !
-
objMail.To = "qui ci metti la mail del destinatario" ' Destinatario
La mail deve arrivare a te giusto?
Quindi ci metti la tua email
Ciao
-
Non ho ben capito come vanno legati i due gruppi di codici quello della registrazione utente e quello dell'invio email
Io li ho scritti così,ho provato la registrazione avviene ma l'email non la manda :bho:@Legolas said:
<%
dim nome
dim user
dim pwd
'evitiamo l'SQL Injection replicando gli apici
nome=Replace(request.form("form_nome"),"'","''")
user=Replace(request.form("form_user"),"'","''")
password=Replace(request.form("form_password"),"'","''")
Dim conn
Set conn = Server.CreateObject("ADODB.Connection")
conn.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & server.MapPath("mdb-database/pass.mdb")
sql = "SELECT * FROM pass WHERE user = '" & user & "'"
Set rs = Server.CreateObject("ADODB.Recordset")
rs.Open sql, conn, 3, 3If rs.EOF then
RS.AddNew
rs.Fields("nome")=nome
rs.Fields("user")=user
rs.Fields("pwd")=pwd
rs.update
RS.Close
Set RS=Nothing
conn.Close
Set conn=Nothing
response.redirect("reg_ok.htm")Else
Response.Write("User giá esistente")
Response.End
RS.Close
Set RS=Nothing
conn.Close
Set conn=NothingEnd if
Dim objMail, objConfig
Set objMail = Server.createObject("CDO.Message")
Set objConfig = Server.createObject ("CDO.Configuration")With objConfig
.Fields("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "mio smtp.it"
.Fields("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
.Fields("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
.Fields("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 60
.Fields.update
End WithSet objMail.Configuration = objConfig
objMail.From = request.form("mail")
objMail.To = "[email protected]" ' Destinatario
objMail.Subject = "Oggetto mail"
objMail.HTMLBody = "Ciao la tua user è: " & user & " e la tua password è:" & password
objMail.Send()
Set objMail = Nothing
%>
-
gelova prova a ragionare anche da solo... altrimenti tra un po' Legolas emette fattura
gelova, credo che tu debba fare una query al dastabase per recuperare l'email alla quale inviare la registrazione
-
Avete ragione....ma è la prima volta che mi cimento in queste cose scusatemi se sono diventato insistente
-
Vi prego non odiatemi...........ma ho ancora qualche problema !
Una volta che la registrazione è andata a buon fine, si aprirà la pagina
"reg_ok.htm" che dà il benvenuto ecc....
Ma ho notato che anche se non mi registro posso accedere a quella pagina,
scrivendo sulla barra di navigazione :
"http://pagina di inserimento dati/reg_ok.htm"Quindi in pratica chiunque conoscendo il nome della pag. potrà accedere saltando la procedura di registrazione
-
Puoi benissimo usare le var di sessione così controlli se l'utente è registato.
Se lo è gli mostri la pagina altrimenti gli mostri altroCiao
-
le var di sessione
Cosa sarebbero le var di sessione
-
Gelova la mia piccola esperienza mi dice di consigliarti questo semplice script che uso pure io
<%
if Session("Autenticato")<>"OK" then
Response.Redirect("index.asp")
end if
%>dove index.asp è la pagina che gli spunta se non è autenticato....differentemente se lo è glispunta la pagina versola quale ha effettivamente puntato!
questa stringa la metti all'inizio codice della pagina....nella linea 1 anche!
-
Grazie 1000 !!!!
-
Ho provato il tuo script ma con dispicere devo dirti che non mi funziona
l'ho modificato in base alla sessione del mio codice così:<%
if Session("registrato")="sicuro" then
Response.Redirect("index.asp")
end if
%>
Questo è il mio file che fa il check<%
dim user
dim pwd
dim url
user=replace(request.form("form_user"),"'","''")
pwd=replace(request.form("form_password"),"'","''")
url=request.form("form_url")
Dim Conn
Set Conn = Server.CreateObject("ADODB.Connection")
conn.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & server.mappath("mdb-database/pass.mdb")
Set rs = Server.CreateObject("ADODB.Recordset")
qry = "Select * from pass Where ((user='"
qry = qry & user & "') AND (pwd='"
qry = qry & pwd & "'));"
rs.ActiveConnection = conn
rs.CursorLocation = 2
rs.Open qry
Response.Expires=0
if rs.EOF then
response.redirect("check_out.htm")
else
session("registrato")="sicuro"
rs.close
set rs = nothing
conn.close
set conn = nothing
response.redirect(url)
end if
%>
-
allora ammettiamo che la pagina che non vuoi far vedere è la pagina dopolaregistrazione.asp
e quella del login è login.aspallora
questo è il codice della pagina dololaregistrazione.asp :
<%
.......
...........
%>tu il pezzo di codice che ti ho dato devi metterlo nel codice dalla pagina dopolaregistrazione.asp prima del suo codice <% .....................%>
capito..?
ovviamente modifica la pagina index.asp con quella del tuo login!
prova ad andare in questa pagina mia http://www.la-maglia-rosanero.com/foto_stadio/archiviofoto/add.asp come vedi on sei validato e ti rimanda alla pagina di login nel mio caso index.asp!tu hai INTEGRATO il pezzodi codice nel tuo codice...invece devi separarli per come te l'h o dato!
tipo<% if Session("Autenticato")<>"OK" then Response.Redirect("index.asp") end if %> <html> <head> <title>aggiungi record</title> </head> <body bgcolor="#FF99CC"> <div align="center"> <center> <form method="post" action="add-process.asp"> <p> </p> <table width="660" border="0" cellspacing="0" cellpadding="1" height="230" align="center" bgcolor="#000000" id="table1"> <tr> <td height="66" width="967"> <table width="100%" border="0" cellspacing="0" cellpadding="0" align="center" height="201" id="table2">
questo è parte del codice dall pagina che ti ho appena fatto vedere
-
Ma è proprio quello che ho fatto, il tuo codice e cioè
<%
if Session("registrato")="sicuro" then
Response.Redirect("reicreg.htm")
end if
%>
L' ho inserito in cima alla pagina da nascondere e cioè
"reg_ok.htm" che sarebbe la pagina che appare dopo l'avvenuta corretta registrazione
naturalmente l'ho modificata perchè la mia pag "check.asp" in session era diversa (vedi sopra) :bho:
-
Aspetta.....Aspetta.....!!!!
Ho provato a rinominare la pag da nascondere (reg_ok.htm)
da htm ad asp e funziona, ma allora le pag da nascondere devono per forza essere in asp ?
-
eh siamo in sezione asp
si solo per l'asp funziona
-
Ho provato a lasciare vuoti i campi e cliccare sul tasto registrami e mi appare un schermata bianca con un errore cosa dovrei inserire per obbligare l'utente a riempire tutti i campi ?
Grazie !!!!!
-
@gelova said:
Ho provato a lasciare vuoti i campi e cliccare sul tasto registrami e mi appare un schermata bianca con un errore cosa dovrei inserire per obbligare l'utente a riempire tutti i campi ?
Grazie !!!!!
Ricerca validazione form su google.
Ad ogni modo ti consiglio di validare il form sia via javascript che, successivamente, via asp. Via asp devi controllare che i valori immessi dall'utente siano validi, ad esempio qualcosa del genere:
nome = Request("nome") dataNascita = Request("dataNascita") If nome = "" then errore = "Nome é vuoto<br>" If dataNascita = "" or not IsDate(dataNascita) then errore = errore & "Data di nascita non valida<br>" ... If errore <> "" then Response.Write(errore) Response.End Else ... End if