Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 25
  1. #1
    Utente di HTML.it L'avatar di [trodat]
    Registrato dal
    Oct 2004
    Messaggi
    2,135

    Modifica record solo per utenti abilitati

    Salve; ho realizzato seguendo la guida asp di html.it una zona riservata di un sito dove un utente registrato ed autenticato può anche modificare alcuni dati registrati.

    E' possibile con asp evitare che, per errore o per dolo, un utente possa modificare i dati che appartengono ad un altra unità?, ad esempio:

    -franco è il responsabile dell'unità XXYY;
    -si autentica con login e password;
    -sceglie dal form di selezione unità il valore XXYY e ne modifica alcuni record;

    -giorgio è il responsabile dell'unità AABB;
    -si autentica con login e password;
    -sceglie dal form di selezione unità, per errore, l'unità XXYY (a cui non dovrebbe essere abilitato in modifica) e ne modifica alcuni record creando problemi a franco;

    Mi seguite? quello che ha fatto giorgio non deve essere possibile, giorgio deve soltanto poter modificare i record dell'unità AABB e soltanto visualizzare quelli di XXYY e viceversa per franco.

    Grazie

  2. #2
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Devi far vedere ad ogni utente solo le unità di interesse.
    Quindi devi legare queste ultime agli utenti.

    Roby

  3. #3
    Utente di HTML.it L'avatar di [trodat]
    Registrato dal
    Oct 2004
    Messaggi
    2,135
    Originariamente inviato da Roby_72
    Devi far vedere ad ogni utente solo le unità di interesse.
    Quindi devi legare queste ultime agli utenti.

    Roby
    grazie ma come? nel dbase ogni unità ha un suo ID, inserire questo nella tabella utenti abilitati?

  4. #4
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    In realtà dovresti fare una nuova tabella in cui gestisci le relazioni:

    tUtenti_Unita
    utente_id (numerico)
    unita_id (numerico)

    In base a questa relazione farai vedere ad un utente solo le unità ad egli appartenenti ed elencate nella colonna unita_id accanto al suo utente_id

    Roby

  5. #5
    Utente di HTML.it L'avatar di [trodat]
    Registrato dal
    Oct 2004
    Messaggi
    2,135
    grazie la tabella è fatta, adesso? :master:

  6. #6
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Adesso cosa?
    Fai una query che estrapoli SOLO le unita_id cimpatibili con l'utente_id che avrai sicuramente messo in session...

    Roby

  7. #7
    Utente di HTML.it L'avatar di [trodat]
    Registrato dal
    Oct 2004
    Messaggi
    2,135
    Originariamente inviato da Roby_72
    Adesso cosa?
    Fai una query che estrapoli SOLO le unita_id cimpatibili con l'utente_id che avrai sicuramente messo in session...

    Roby
    questa è la pagina di login.asp:
    codice:
    dim strUser
    		strUser=request.form("user")
    	dim strCode
    		strCode=request.form("codice")
    		strCode=cripta(strCode,key)
    	if(strCode<>"")AND(strUser<>"") then
    
    		'Apertura del database
    		dim strCodedb
    			strCodedb="innovatel"
    		dim strOutput
    			strOutput=""
    
    		Set Conn=Server.CreateObject("ADODB.Connection") 
    
    		strConn="driver={Microsoft Access Driver (*.mdb)}; " 
    		strConn=strConn & " DBQ=" & Server.MapPath("users.mdb") 
    		strConn=strConn & ";pwd=" & strCodedb
    
    		Conn.Open (strConn)
    		strSql = "SELECT * FROM codici WHERE userName='"&strUser&"' AND userCode='"&strCode&"'"
    		Set rs = Server.CreateObject("ADODB.Recordset")
    
    		rs.Open strSql, conn ,3,3	
    		
    		if not(rs.eof) then
    
    'Autorizzo la navigazione in pagine protette
    			response.cookies("innovatel.it_accesso")("valido")="ok"
    			response.cookies("innovatel.it_accesso")("nome")=strUser
    			
    
    data = date()
    tempo = time()
    Sql = "INSERT INTO UTENTE (UTENTE, DATA, ORA)VALUES('"& strUser &"', #"& data &"#, '"& tempo &"')"
    strConn.Execute(SQL)
    dove inserisco la session ID?

  8. #8
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Non qui, nella query in cui recuperi l'elenco delle unità.

    Roby

  9. #9
    Utente di HTML.it L'avatar di [trodat]
    Registrato dal
    Oct 2004
    Messaggi
    2,135
    Originariamente inviato da Roby_72
    Non qui, nella query in cui recuperi l'elenco delle unità.

    Roby
    scusa roby non ti seguo... così recupero l'elenco unità nel form di selezione unità:
    codice:
    'FACCIO POPOLARE LA SELECT unita'              
    sql = "SELECT * FROM UNITA ORDER BY ID asc"
    Set rs = Server.CreateObject("ADODB.Recordset")
    rs.Open sql, cn, 3, 3

  10. #10
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    codice:
    sql = "SELECT * FROM UNITA INNER JOIN TUTENTI_UNITA ON TUTENTI_UNITA.UNITA_ID = UNITA.UNITA_ID WHERE TUTENTI_UNITA.UTENTI_ID = "& session("utente_id") &" ORDER BY ID asc"
    Tu la sessione non la attivi ma usi un cookie quindi a mio avviso dovresti rivedere un attimo il tuo sistema di login.
    Più utile la sessione.

    Roby

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.