Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 25
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    666

    Login forse impossibile?

    Buongiorno, vorrei riuscire a trovare una soluzione ad un problema che mi assilla da un pò.

    Ho alcune pagine ASP che prendono i dati da un database. Queste pagine sono protette attraverso una pagina di login che funziona così:

    Controlla se nei campi userid e password ci sono i dati inseriti e a risposta affermativa accede. (credo sia una semplice pagina di login)

    Il mio problema è: come faccio a riconoscere l'accesso? Nel senso che nella pagina dove ci sono i dati deve uscire anche il nome dell'utente che ha eseguito l'accesso.

    Non so se riesco a spiegarmi bene, questo è il db:

    Nome - Cognome - email - userid - password

    Diciamo che ce ne sono 10, io effettuo il login con il numero 3 e nella pagina dove entro c'e scritto, ad esempio, Benvenuto NUMERO 3!

    Questa è lo script del login:

    codice:
    <%
    passok = true
    
    If request.form("submit") <> "" Then
    
    	' setup variables
    	userid = Request.Form("userid")
    	passwd = Request.Form("passwd")
    
    	Set conn = Server.CreateObject("ADODB.Connection")
    	conn.open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & server.mappath("/mdb-database/login.mdb") & ";"
    	Set rs = conn.Execute( "Select * from [login] where [Utente] = '" & UCASE(userid) & "'")
    	If not rs.eof then
    		If ucase(rs("Password")) = ucase(passwd) Then
    			passok = true
    		Else
    			passok = false
    		End If
    	Else
    		passok = false
    	end if
    
    	rs.Close
    	Set rs=Nothing
    	conn.Close
    	Set conn=Nothing
    
    	If passok Then
    		Session("status") = "loginok"
    		response.redirect "/home.asp"
    	End If
    
    End If
    %>


    Grazie in anticipo!
    AltF4

  2. #2
    codice:
    Session("status") = "loginok"
    session("Utente")=userid
    response.redirect "/home.asp"
    e nelle altre pagine fai
    codice:
    benvenuto <%= session("Utente") %>

  3. #3
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    codice:
    <%
    passok = true
    
    If request.form("submit") <> "" Then
    
    	' setup variables
    	userid = Request.Form("userid")
    	passwd = Request.Form("passwd")
    
    	Set conn = Server.CreateObject("ADODB.Connection")
    	conn.open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & server.mappath("/mdb-database/login.mdb") & ";"
    	Set rs = conn.Execute( "Select * from [login] where [Utente] = '" & UCASE(userid) & "'")
    	If not rs.eof then
    		If ucase(rs("Password")) = ucase(passwd) Then
    			passok = true
    			nominativo = rs("Cognome") &" "& rs("Nome") 
    		Else
    			passok = false
    		End If
    	Else
    		passok = false
    	end if
    
    	rs.Close
    	Set rs=Nothing
    	conn.Close
    	Set conn=Nothing
    
    	If passok Then
    		Session("status") = "loginok"
    		Session("nominativo") = nominativo 
    		response.redirect "/home.asp"
    	End If
    
    End If
    %>
    Nella pagina home.asp:

    codice:
    <%="Benvenuto "& session("nominativo")%>
    Roby

  4. #4
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    666

    Grazie!

    Siete GRANDISSIMI !!!

    Ho aggiunto anche l'indirizzo email facendo così:

    codice:
    			nominativo = rs("Nome") &" "& rs("Cognome")
    			email = rs("email")
    codice:
    		Session("status") = "loginok"
    		Session("nominativo") = nominativo
    		Session("email") = email
    Funziona!!!

    Secondo voi con lo stesso sistema riesco anche ad inserire una info del tipo:

    "il tuo ultimo accesso risale al (data) alle ore (ora) ??? "

    Che ne pensate?
    AltF4

  5. #5
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Si ma devi prevedere un campo con la data e l'ora che aggiorni quando uno entra...

    Roby

  6. #6
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    666
    Potrei aggiornarlo in questo modo?

    codice:
    	RecSet.AddNew
    
    	RecSet("Date")= date()
    
    	RecSet.Update
    	RecSet.Close
    ma in che punto della pagina devo inserirlo? e lo inserisco direttamente nella pagina di login?
    AltF4

  7. #7
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Devi inserirlo una riga prima oppure una riga dopo aver creato le session.

    Roby

  8. #8
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    666
    Ho fatto in questo modo:

    codice:
    	Set conn = Server.CreateObject("ADODB.Connection")
    	conn.open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & server.mappath("/mdb-database/login.mdb") & ";"
    	Set rs = conn.Execute( "Select * from [login] where [Utente] = '" & UCASE(userid) & "'")
    	Set RecSet = Server.CreateObject("ADODB.Recordset")
    e poi:

    codice:
    	If passok Then
    			RecSet.Open
    			RecSet.AddNew
    			RecSet("Data")= date()
    			RecSet("Ora")= time()
    			RecSet.Update
    			RecSet.Close
    		Session("status") = "loginok"
    		Session("nominativo") = nominativo
    		Session("email") = email
    		response.redirect "/home.asp"
    	End If
    ma non mi funziona, mi da questo errore:

    ADODB.Recordset error '800a0e7d'

    The connection cannot be used to perform this operation. It is either closed or invalid in this context.

    /start_login.asp, line 32


    cosa ho sbagliato?
    AltF4

  9. #9
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    codice:
    		If ucase(rs("Password")) = ucase(passwd) Then
    			passok = true
    			nominativo = rs("Cognome") &" "& rs("Nome") 
    			sql = "UPDATE [login] SET data = #"& now ()&"# WHERE id ="& rs("id")
    			conn.Execute(sql)
    		Else
    			passok = false
    		End If
    Roby

  10. #10
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    666
    Ti ringrazio! Funziona!

    Ma la data me la da in formato americano e cioè mese/giorno/anno (05/09/06) ho anche provato a cambiare il formato del campo in access (gg mm aaaa), ma niente da fare.

    Che faccio? Lascio perdere?
    AltF4

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.