Newsgroup: it.comp.www.asp
Titolo: FILTRO UTENTE

Salve, ultilizzo FP2003 , Access2003 su Win server 2003
Il DB "WebAccess"contiene la tabella "UtentiWeb" con i campi
"Nomeutente" "Password" e "Paginaweb"
la tabella "Viaggi" con i campi "Cliente" "Codicecer" e "Data"
Su suggerimento di vecchi post, ho creato i seguenti file asp:
Index.asp:
<HTML>
<HEAD>
  <TITLE>Autenticazione utente tramite password</TITLE>
</HEAD>
<BODY BGCOLOR=#BBBBFF>
<BR><BR><BR><BR><BR>
<FORM ACTION="login.asp" METHOD="POST">
  <TABLE ALIGN=CENTER BORDER=0 BGCOLOR=#000000>
    <TR BGCOLOR=#EEEEEE>
      <TD WIDTH=150 ALIGN=CENTER>NOME UTENTE</td>
      <TD>
      <INPUT TYPE=TEXT NAME="nome_utente" SIZE=20>
      </td>
    </TR>
    <TR BGCOLOR=#EEEEEE>
      <TD WIDTH=150 ALIGN=CENTER>PASSWORD</td>
      <TD>
      <INPUT TYPE=PASSWORD NAME="password" SIZE=20>
      </TD>
    </TR>
    <TR BGCOLOR=#EEEEEE>
      <TD HEIGHT=30 COLSPAN=2 ALIGN=CENTER>
      <INPUT TYPE=SUBMIT NAME="show" VALUE="ENTRA">
      </TD>
    </TR>
  </TABLE>
</FORM>
</BODY>
</HTML>
login.asp:
<%
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("fpdb/WebAccess.mdb")
Dim sql
sql = "SELECT ID, PAGINAweb FROM UtentiWeb WHERE NOMEUTENTE='"
&nome_ut&_
       "' AND PASSWORD='" &pass& "'"
Dim rs
Set rs = cn.Execute(sql)
Dim paginaweb
Dim autenticato
if rs.eof then
  autenticato = false
else
  autenticato = true
  paginaweb = rs.Fields("PaginaWeb")
end if
rs.Close
cn.Close
Set rs = Nothing
Set cn = Nothing
if autenticato = true then
  Session("Autenticato") = "OK"
  Response.Redirect(paginaweb)
  Session("NomeUtente") = (NOMEUTENTE)
else
  Response.Redirect("index.asp")
end if
%>
Utente.asp:  <--(valore del Campo "PaginaWeb")
<%
if Session("Autenticato")<>"OK" then
  Response.Redirect("
http://www.dagnese.it/
")
end if
%>
<HTML>
<HEAD>
  <TITLE>Area riservata</TITLE>
</HEAD>
<BODY BGCOLOR=#BBBBFF>
<BR><BR><BR><BR><BR>
<DIV ALIGN=CENTER><H1>PAGINA RISERVATA</H1><BR>
<H2>UTENTE AUTENTICATO</H2><BR></DIV>
</BODY>
</HTML>
--e fino qui funziona tutto.
Adesso vorrei inserire nella pagina Utenti.asp, i risultati del DB
della tabella "Viaggi" filtrando il campo "Cliente" quando e uguale al
nome dell'("NomeUtente") connesso e magari in ordine di data
decrescente.
Ho provato da menů Inserisci > risultati > database, ma mi sovrascrive
le modifiche e credo che si limiti a filtrare la parola 'NomeUtente'..
COME POSSO FARE???
grazie 1000

 "' AND PASSWORD='" &pass& "'"
prima di andare avanti correggi questo
In quanto qui c'è tutto tranne sicurezza, la concatenazione di stringhe è 
soggetta a sql injection e quindi chiunque può accedere al tuo sito
--
Christian Paparelli
[Microsoft MVP Windows Server - IIS]
http://mvp.support.microsoft.com
http://italy.mvps.org
My blog: 
http://blogs.aspitalia.com/cp

Grazie, e come dovrei procedere?

> Grazie, e come dovrei procedere?
usando stored procedure 
qui trovi un buon esempio
http://www.aspitalia.com/script/312/Utilizzare-Stored-Procedure-ASP.aspx


E' giusto... non mi sono definito, non sono esperto in ASP ed ho solo
fatto piccoli "lavoretti" con FP e Access.
Ho provato a consultare un vecchio post che sembrava "semplice",
infatti come puoi vedere, basta inserire in una tabella i campi
"NOMEUTENTE" e "PASSWORD" e l'indirizzo della "PAGINAWEB" di
destiunazione, adesso mi bastava "semplicemente" che l'altra tabella
contenente i campi che visualizzo correttamente sulla "paginaweb"
indirizzata, mi venisse filtrata in base al "NOMEUTENTE" connesso
uguale al volore del campo "CLIENTE".
Ho provato a studiare l'esempio che mi hai linkato ma è troppo
avanzato per me... :(
Ti prego di aiutarmi in modo mooolto semplice con questo filtro...
grazie ancora per la tua pazienza.

Ciao, anche io ho imparato da poco, e mi interessano le stored procedure che 
ti hanno indicato (e che approfondirò!), però ti dico il mio punto di vista 
così faccio esperienza.
Mi pare un po' confusionata la sequenza delle pagine, cosa contiene e a cosa 
serve la pagina
Utente.asp:  <--(valore del Campo "PaginaWeb")  ?
Da vedere così c'è scritto solo che sei autenticato ma non porta a niente, 
inoltre in quale circostanza la chiami?
Poi questo passaggio:
.....
if autenticato = true then
  Session("Autenticato") = "OK"
  Response.Redirect(paginaweb)
  Session("NomeUtente") = (NOMEUTENTE)
else
  Response.Redirect("index.asp")
end if
%>
.....
lo invertirei così:
....if autenticato = true then
  Session("Autenticato") = "OK"
    Session("NomeUtente") = (NOMEUTENTE)
Response.Redirect(paginaweb)
else
  Response.Redirect("index.asp")
end if
%>
.......
cioè spostando Response.Redirect(paginaweb) dopo il comando che valorizza la 
variabile Session("NomeUtente") altrimenti ti reindirizza prima che la 
valorizzi; non sono sicuro se mentre ti reindirizza finisce comunque la 
condizione, comunque è meglio finire i comandi e poi reindirizzare.
Poi vedo che dopo il login già memorizzi nella session il nome dell'utente, 
quindi lo puoi richiamare da ogni pagina che vuoi in questo modo:
NOMEUTENTE=Session("NomeUtente")
 quindi farai  la query che ti interessa prelevando il valore dalla 
variabile NOMEUTENTE.
ad esempio:
.....
NOMEUTENTE=Session("NomeUtente")
   if NOMEUTENTE<>"" then
      sql = "SELECT * FROM Viaggi WHERE CLIENTE='"
            &NOMEUTENTE& "' ORDER BY Data"
         ......codice che visualizza i record....
     else
        Response.Redirect("index.asp")
      end if
....ecc.ecc.
e nella pagina disponi i campi che ti interessano, ma mettendo la condizione 
iniziale se richiami la pagina senza esserti autenticato vieni indirizzato 
alla index senza che la query ti dia errore, altrimenti popoli la pagina con 
i dati.


hai provato ad usare l'esempio del link??


scusa il ritardo... ho cambiato gestore internet e domani mi
comunicano l'ip pubblico nuovo...
faccio delle prove e ti informo grazie 1000