Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    Registrare quante volte un utente si logga

    Salve a tutti,
    spero tanto che qualche appassionato possa darmi una mano a risolvere questo problema:

    Ho la necessita di salvare in un db di access tutte le volte che un utente si logga.
    In pratica lo script dovrebbe creare un nuovo record con il nomeutente e la data/ora di login.
    (il db di access 2000 si chiama "accessi.mdb" e la tabella "utenti")

    Ho gia un form di login e una pagina di elaborazione del login che va a controllare se l'utente
    esiste nel db "registràti" e lo fa entrare nella pagina riservata oppure lo rimanda ad un errore.
    Mi rendo conto però che non posso usare lo stesso db (registrati.mdb) per salvare i log.

    Di seguito vi scrivo il codice del form e del .asp che elabora il login

    codice del form di login semplicissimo (login.asp):

    codice:
    <form ACTION="elabora_login.asp" METHOD="POST">
    	
    	<font size="2" face="Verdana">Nome utente</font>
    		<input TYPE="TEXT" NAME="nome_utente" SIZE="29">
    	
    	<font size="2" face="Verdana">Password</font>
    		<input TYPE="password" NAME="password" SIZE="29">
    		<input TYPE="SUBMIT" NAME="show" VALUE="Login">
    </form>
    Codice elaborazione login: (elabora_login.asp)

    codice:
    <%
    Dim nome_ut
    Dim pass
    nome_ut = Replace(Request.Form("nome_utente"), "'", "''")
    pass = Replace(Request.Form("password"), "'", "''")
    
    Dim cn
    Set cn = Server.CreateObject("ADODB.Connection")
    cn.Open "driver={Microsoft Access Driver (*.mdb)};dbq="&Server.MapPath("registrati.mdb")
    Dim sql
    sql = "SELECT ID FROM utenti WHERE nomeutente='" &nome_ut& "' AND password='" &pass& "'"
    
    Dim rs
    Set rs = cn.Execute(sql)
    
    Dim autenticato
    if rs.eof then
      autenticato = false
    else
      autenticato = true
    end if
    
    rs.Close
    cn.Close
    Set rs = Nothing
    Set cn = Nothing
    
    if autenticato = true then
      Session("Autenticato") = nome_ut
      Response.Redirect("ok.asp")
    else
      Response.Redirect("errore.asp")
    end if
    %>
    Fino a qui funziona tutto bene. Nella pagina riservata (ok.asp) ho inserito anche un controllo
    sulla Session "Autenticato" per dare il benvenuto e controllare che non sia vuota.

    Codice (ok.asp):

    codice:
    <%
    if Session("Autenticato") = "" then Response.Redirect("login.asp")
    %>
    Benvenuto <%=Session("Autenticato") %> nella tua area riservata.
    PS: l'accesso alle pagine riservate ha una data di inizio e una di fine (sono 2 campi del db registrati).
    Come faccio a far comparire anche quei 2 valori accanto alla frase di benvenuto?

    Ringrazio tutti e spero mi possiate dare una mano.

  2. #2
    Utente di HTML.it L'avatar di lucalicc
    Registrato dal
    Sep 2002
    Messaggi
    6,926
    potresti provare una cosa del genere, vedi le modifiche in rosso
    prendilo come spunto
    luca

    codice:
    <%
    Dim nome_ut
    Dim pass
    nome_ut = Replace(Request.Form("nome_utente"), "'", "''")
    pass = Replace(Request.Form("password"), "'", "''")
    
    Dim cn
    Set cn = Server.CreateObject("ADODB.Connection")
    cn.Open "driver={Microsoft Access Driver (*.mdb)};dbq="&Server.MapPath("registrati.mdb")
    Dim sql
    sql = "SELECT ID FROM utenti WHERE nomeutente='" &nome_ut& "' AND password='" &pass& "'"
    
    Dim rs
    Set rs = cn.Execute(sql)
    
    Dim autenticato
    if rs.eof then
      autenticato = false
    else
      autenticato = true
    end if
    
    rs.Close
    
    if autenticato = true then
    sql = "INSERT INTO accessi_utente (utente, data) VALUES ('" & nome_ut & "', '" & now() & "')"
    Set rs = cn.Execute(sql)
    end if
    
    cn.Close
    Set rs = Nothing
    Set cn = Nothing
    
    if autenticato = true then
      Session("Autenticato") = nome_ut
      Response.Redirect("ok.asp")
    else
      Response.Redirect("errore.asp")
    end if
    %>
    www.intheweb.it - Internet solutions

  3. #3
    Ottimo spunto, grazie mille.
    Inizialmente non capivo come fare a richiamare il secondo db "accessi.mdb" per inserire nomeutente e data, ma poi ho pensato che bastava creare una nuova tabella chiamata "accessi" nello stesso db "registrati.mdb " che uso per far loggare gli utenti e il gioco è fatto. Funziona alla grande grazie mille.

    PS: per quanto riguarda invece l'altra domanda hai qualche soluzione?
    - l'accesso alle pagine riservate ha una data di inizio e una di fine (sono 2 campi del db "registrati").
    Come faccio a far comparire anche quei 2 valori accanto alla frase di benvenuto nelle pagine riservate?

    codice:
    <%
    if Session("Autenticato") = "" then Response.Redirect("login.asp")
    %>
    Benvenuto <%=Session("Autenticato") %> nella tua area riservata.
    Meglio aprire un'altra discussione?

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.