Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1

    Neofita, pagina login e DB Access

    Ciao a tutti, da poco tempo ho cominciato ad interessarmi al linguaggio ASP.
    Premetto che ho una conoscenza di base dell'Html e che non avevo mai utilizzato l'Asp....

    Ho visto che le possibilità messe a disposizoni sono incredibili, leggendo qualche guida si possono fare cose favolose....
    Quindi mi sono chiesto, perchè non provarci pure io!? :P eheheh

    Ora vorrei creare una pagin di login che, collegandosi ad un DB di access (file mdb) mi autentifica un utente ed estrae i dati contenuti nel db relativi all'utente loggato...beh direte voi, dove è il problema?

    A questo indirizzo ho messo uno zip con le pagine asp e il db, in modo da semplificare e farvi capire meglio quello che ho creato:

    LINK

    A parte che è già stata durissima riuscire a far funzionare il login (che non funziona ancora del tutto eheheh), il problema è questo:
    sono riuscito a creare una pagina (login.asp) che ha due campi (user e password), una volta inseriti e cliccato sul tasto "LOGIN" interroga il DB e se la verifica è andata a buon fine (l'utente viene autorizzato) questi viene reindirizzato alla pagina riservato.asp.

    Se per esempio io ho due utenti (user "Nicola" e user "Valerio") vorrei che dopo l'autorizzazione ogni utente raggiugnesse una sua pagina dove poi verranno caricate le sue informazioni, questo l'ho risolto passando la stringa id_utente=? nel path del reindirizzamento.

    Solo che se l'utente Nicola (che ha ID=1) si logga, giustamente, accede alla pagina "riservato.asp?id_utente1", se questi però cambia il numero 1 in 2 nella barra degli indirizzi (per vedere le informazioni dell'utente Valerio (che ha ID=2) questi carica la pagina riservato.asp?id_utente2.
    Come posso evitare questo?!
    Vorrei che ogni utente possa vedere solamente le propire informazioni...

    A proposito, ho fatto numerosissime prove ma senza esito positivo: vorrei caricare le informazioni contenute nel file mdb all'interno della pagina riservato.asp?id_utente?...relative ad ogni utente (es. nel mdb la colonna "testo"), come si fa?

    Ho letto guide, pagine su internet, discussioni dei newgroup ma non ho ancora trovato la soluzione al mio problemuccio...

    Spero di essere stato chiaro....per riassumere vorrei che se si loggasse l'utente "Nicola" gli si aprisse la pagina
    riservato.asp?id_utente1 e che al suo interno contenesse la scritta "Ciao Nicola". E che "nicola" provasse a fare il "furbo" e cambiare l'ID nel path d 1 a 2 gli si aprisse di nuovo la pagina di login...

    un grazie mille a tutti per i suggerimenti...

    Nicola

  2. #2
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Le pagine di login non si fanno, proprio per gli inconvenienti descritti da te, passando parametri in querystring ma usando le variabili di sessione.
    Ti invito a leggere gli articoli e gli script relativi alla creazione delle aree riservate che trovi in http://asp.html.it

    Roby

  3. #3
    Al limite potresti fare questo.
    Modifica il file login.asp così:
    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("utenti.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
      id_utente   = rs(0)    
    end if
    
    if autenticato = true then
      Session("Autenticato") = "OK"
      %>
    ">entra nell'area riservata
    <%
    rs.Close
    cn.Close
    Set rs = Nothing
    Set cn = Nothing
    
    else
      Response.Redirect("index.asp")
    end if
    %>
    e il file riservato.asp così:
    codice:
    <%
    
    if Session("Autenticato")<>"OK" then
      Response.Redirect("index.asp")
    end if
    %>
    <%
    	set conn = server.createobject("adodb.connection")
    	DSNtemp="DRIVER={Microsoft Access Driver (*.mdb)}; "
    	DSNtemp=dsntemp & "DBQ=" & server.mappath("utenti.mdb")
    	conn.Open DSNtemp
    %>
    <%
    cod=Request.Querystring("cod")
    SQL="SELECT * FROM utenti WHERE id="&cod                                                     
    Set rec = Server.CreateObject("ADODB.Recordset")
    Set rec =Conn.Execute(SQL)
    %>
    
    <HTML>
    <HEAD>
      <TITLE>Area riservata</TITLE>
    </HEAD>
    <BODY BGCOLOR=#BBBBFF>
    <%=rec ("testo")%>
    
    
    
    
    
    
    <DIV ALIGN=CENTER><H1>PAGINA RISERVATA</H1>
    
    <H2>UTENTE AUTENTICATO</H2>
    </DIV>
    </BODY>
    </HTML>
    Non è quello che si dice il massimo, ma per capire come si passano le variabili può esserti utile e in sostanza dovrebbe fare pressapoco quello che volevi

  4. #4
    Ciao michele.santoro,
    prima di tutto grazie mille per i tuoi suggerimenti!
    Il passaggio di variabili funziona perfettamente, GRAZIE!

    C'è però l'ultimo problema: se io mi autentifico come "Nicola" entro giustamente nella pagina che ha come indirizzo "login/riservato.asp?cod=1".

    Se io provo però a cambiare il numero 1 in 2 (quindi provo a caricare i dati dell'utente 2 (in questo caso nel DB è "Valerio") i dati mi si caricano, ed è quello che non vorrei accadesse!

    Non so come poter evitare questo piccolo problema...visto che non vorrei che gli utenti possano vedere il "testo" degli altri...

    Ciao ciao e ancora grazie

    Nicola

  5. #5
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Ti ho già risposto...

    Roby

  6. #6
    Ciao Roby_72 ,
    grazie mille anche a te per il suggerimento.
    Ho fatto un po' di ricerche per vedere come modificare il mio codice per utilizzare le variabili di sessione ma per il momento non ho trovato nulla...continuo nella ricerca...

    Ho una curiosità...quasi sicuramente dirò una cavolata visto che di ASP non ne capisco nulla però ci provo:
    se mettessi nella pagina riservato.asp un controllo che, confrontando l'ID dell'utente con lo username mi controlli la corrispondenza?
    in questo modo se io Nicola, che ho ID=1 provo a cambiare la pagina sostituendo il numero 1 con il 2, il controllo vede che al ID=2 corrisponde "Valerio", di conseguenza mi blocca l'accesso...

    Chiedo perdono se ho raccontato una cavolata... sapete come è, il sabato sera...

    Ciao ciao

    Nicola

  7. #7
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Funzionerebbe ma non sarebbe efficiente.
    E cosa succederebbe se cambiasse il nome della persona?

    Roby

  8. #8
    Diciamo che il nome della persona, per come ho organizzato io il DB, non cambia....

    I file che per ora ho creato sono solamente di prova, spiego meglio quello che voglio realizzare

    Ho un DB in Access con un elenco di circa 600 utenti. Ogni utente ha una sorta di tessera la quale ha un numero univoco (di conseguenza lo "username" del caso sarebbe invece un numero univoco).
    L'utente inserisce il suo codice e la sua password e gli si apre la pagina nella quale vengono estratte le sue informazioni.
    Penso quindi che il metodo, sicuramente "grezzo" che ho scritto, potrebbe (e dico POTREBBE ) funzionare o per lo meno fare quel "poco" che serve a me....

    Solamente che non ho idea di come poterlo realizzare eheheheh

    Cmq sto ancora leggendo sulle variabili di sessione....oggi giornata completa su ASP eheheheh :d

    ciao ciao

    Nicola

  9. #9
    Forse potresti prendere spunto da questo script. Forse è un pochino complesso, ma con un po' di buona volontà e con il link suggeritoti da Roby ce la puoi fare.

  10. #10
    Grazie mille!!

    Oggi pomeriggio proverò a dare un'occhiata e vedere se riesco a trovare quello che mi serve!

    Buona domenica

    Nicola

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.