Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 21

Discussione: area riservata help

  1. #1

    area riservata help

    Ho creato un modulo per area riservata con l'aiuto del db ma adesso vorrei che l'utente si possa logare una sola volta e passare alla pagina una sola volta algiorno . Cioè dopo logato e uscito se riprova venfga reindirizzato a una pgina che dica nn è possibile accedere di nuovo finoa domani.
    So che si fa con i cookie ma come? mi aiutate per favore
    ringrazio a tutti

  2. #2
    nel database da cui prelevi la password metti un campo "data" in cui ci metti l'ultima data in cui ha fatto il log-in

    poi quando vai a fare il login dell'utente metti
    codice:
    if rs("campo_data_su_database")=now() then
    response.redirect("paginaerrore.asp")
    else
    
    //fai loggare l'utente e fai l'update del campo data sul database mettendoci la data di oggi
    
    end if

  3. #3
    Ciao innanzitutto grazie per avermi risposto. Ho leto con attenzione il tuo post e ho capito come vuoi fare ma ho qualche dubbio da domandarti:
    1) una volta messo il campo data come faccio a riempirlo con la data in cui si è logato? devo mettere una funzione date=Now?
    2)il campo data ovviamente si deve svorascrivere?
    3)Come faccio a fare l'update del campo?
    scusa ma purtroppo è la prima volta che faccio una cosa di questo genere così ti posto anche il codice dela pagina che controlla l'accesso se gentilmente puoi aiutarmi a corregerlo insieme a me te ne sarei infinitamente grato.
    Ancora grazie
    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("/mdb-database/utenti.mdb")
    Dim sql
    sql = "SELECT ID FROM dati 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

    else if autenticato = true then
    Session("Autenticato") = "OK"
    Response.Redirect("riservato.asp")
    else
    Response.Redirect("index.asp")
    end if
    end if
    %>
    --------------------------------------------------------

  4. #4
    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("/mdb-database/utenti.mdb") 
    Dim sql 
    
    sql = "SELECT ID,CAMPO_DATA_NEL_DATABASE FROM dati WHERE NOMEUTENTE='" &nome_ut&_ 
    "' AND PASSWORD='" &pass& "'" 
    Dim rs 
    Set rs = cn.Execute(sql) 
    
    Dim autenticato 
    if rs.eof then 
    autenticato = false 
    else
    
    if rs("CAMPO_DATA_NEL_DATABASE")=now() then
    autenticato = false
    else
    autenticato=true
    end if 
    
    end if 
    rs.close
    set rs=nothing
    
    else if autenticato = true then 
    Session("Autenticato") = "OK" 
    
    sql="update dati set CAMPO_DATA_NEL_DATABASE=#" & now() & "# WHERE NOMEUTENTE='" &nome_ut&_ 
    "' AND PASSWORD='" &pass& "'" 
    
    cn.execute(sql)
    Response.Redirect("riservato.asp") 
    else 
    Response.Redirect("index.asp") 
    end if 
    end if 
    
    
    cn.Close 
    
    Set cn = Nothing 
    %>
    ti ho messo in rosso quello che ho aggiunto. il CAMPO_DATA_NEL_DATABASE deve essere un campo DATA in formato gg/mm/aaaa

    se ci sono problemi rispondi tranquillamente (non in pvt che tanto li leggo pochissimo)

  5. #5

    R

    Ciao, grazie ancora per avermi risposto. allora ho fatto come mi hai scritto. L'update del campo me lo fa mettendo la data 06/02/2005 >>02/06/2005 però se provo a rientrare con lo stesso user e pass mi passa lo stesso senza fare nulla. Tra virgoleto poi sono andato a intuito anzichè mettere autenticato = false ho provato a mettere response.redirect("errore.htm") perchè vorrei che finisse su una pagina che gli comunica impossibile accedere un'altra volta.
    Cosa può essere che nn lo fa scattare?
    Tra virgolette prima che agiungessimo questa condizione quando facevo il login se i dati erano esatti passava alla pagina di benvenuto senza mostrarne il nome della pagina nela barra dell'indirizzo Es www.nomesito.it/form.htm
    a seguito dei dati esatti diveniva www.nomesito.it/login.asp

    ora invece mete il precedente e poi passa a www.nomesito.it/riservato.asp
    elimando la protezione e quindi fa capire all'utente come ragiungere la pagina
    La protezione l'avevo ottenuta mettendo questo codice nella pagina riservato .asp
    code
    ----------------------------------
    <%

    if Session("Autenticato")<>"OK" then
    Response.Redirect("index.asp")
    end if
    %>
    -----------------------------------
    Aspetto tue notizie e nel frattempo mi scervello un pò

  6. #6
    intanto metti così l'if

    codice:
    if cdate(rs("CAMPO_DATA_NEL_DATABASE"))=cdate(now()) then
    in cima alla pagina metti

    codice:
    session.lcid=1040 'data in italiano
    e riprova...e cmq se tu non chiudi la pagina ma torni indietro e poi provi a riaccedere, non ti passa per il controllo perchè c'è la session attiva. Devi prima chiudere il browser e poi rientrare per fare una prova

    per evitare questo memorizzerei qualche cosa nella session, che ne so session.contenents("volte")=1 e ci fai un controllo sopra

    non so se sono chiaro

  7. #7
    Ciao ho appena provato a fare come mi hai detto ma mi da questo errore
    Microsoft VBScript runtime error '800a005e'

    Invalid use of Null: 'cdate'

    /login.asp, line 22
    Poi ti volevo dire che una volta fatto l'accesso avevo chiuso il browser ed ho anche svuotato la cache e tutto
    senza usare indietro
    però mi passa lo stesso
    poi come ti ho detto prima adesso mi fa quel giochetto di mostrare l'url della pagina riservata mentre prima era occultato.
    Come al solito ti ringrazio per la grande pazienza che stai avendo credimi ci sto sbatendo la testa anch'io
    aspetto tue notizie

  8. #8
    quell'errore vuol dire che il campo data nel database non ha date inserite, è possibile?

  9. #9

    RR

    Si avevo provato un user senza che avesse data anche se prima che sostituissi il vecchio codice con quello nuovo che mi hai dato la prendeva in automatico e me la proiettava nel campo.
    Cmq continua a mettermi la data sempre in quel modo li cioè 06/02/2005 anche se ho aggiunto quella riga e continua a nn reindirizzarmi quando mi logo nuovamente alla paginna di errore e portandomi a quella riservata.
    Come mai?

  10. #10
    prova a cambiare now() con date(). perchè mi sono scordato che now() restituisce oltre alla data anche l'ora, e quindi la condizione di if non sarà mai vera.

    e poi controlla (magari una volta facendo un response.write e response.end()) che rs(DATANELDATABASE) sia nello stesso formato di date(), altrimenti ti da errore.

    sinceramente non lo so perchè non ti fa quel giochetto...prima prova queste modifiche

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.