Redirect in base a nome utente. Dove sbaglio?

vuLCan Karayan

Nuovo Utente
19 Gen 2007
6
0
0
Salve a tutti.

Sto cercando disperatamente di effettuare un redirect in base al nome dell'utente.
Vorrei che all'inserimento di un determinato Nome Utente (autenticato) si venisse reindirizzati ad una determinata pagina.
Una cosa elementare ma non ci riesco, sigh...
Premetto che l'accesso funziona alla perfezione ma che vengo sempre ridirezionato alla pagina riservato.asp senza alcuna segnalazione di errore.
Chi mi da una dritta?

Grazie in anticipo.


_ CODICE LOGIN.ASP _

<%
Dim nome_utente
Dim pass
nome_utente = 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 Utenti WHERE NOMEUTENTE='" & nome_utente & "' 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") = "OK"

if nome_utente = "pincopallino" then
Response.Redirect("riservatoPincoPallino.asp")
else
Response.Redirect("riservato.asp")
end if

else
Response.Redirect("errore.asp")
end if
%>
 
Non devi effettuare un redirect ad una pagina diversa per ogni utente... sarebbe semplice:

<%
Response.Redirect Session("ID") & ".asp"
%>

ma significa che se il mio ID in autenticazione è 1002 devi creare il file 1002.asp il che non è un problema: ma devi creare gli altri 1001 files e tutti gli altri a seguire!!!

Fai il redirect a pagina-privata.asp, per intenderci, ed in questa estrai i dati dell'utente in funzione di una query parametrica, in funzione dell'ID che hai nella sessione. Ad esempio:

rs.Open "SELECT * FROM utenti WHERE id = " & Session("ID"), cn, 1

Mi spiego?
 
Non devi effettuare un redirect ad una pagina diversa per ogni utente... sarebbe semplice:

<%
Response.Redirect Session("ID") & ".asp"
%>

ma significa che se il mio ID in autenticazione è 1002 devi creare il file 1002.asp il che non è un problema: ma devi creare gli altri 1001 files e tutti gli altri a seguire!!!

Fai il redirect a pagina-privata.asp, per intenderci, ed in questa estrai i dati dell'utente in funzione di una query parametrica, in funzione dell'ID che hai nella sessione. Ad esempio:

rs.Open "SELECT * FROM utenti WHERE id = " & Session("ID"), cn, 1

Mi spiego?

Grazie infinite per la tua risposta.
Sono piuttosto scarsino nella programmazione ASP... potresti spiegarmi più terra-terra cosa intendi?

1) Perchè il mio codice non funziona? Dove sta l'errore? (a parte che - so bene - non è un esempio di genericità di codice..)

Considera che la funzione è limitata ad un numero (fisso) di 8/10 pagine. Posso crearle tutte singolarmente senza problemi... Ma come posso reindirizzare sulla base del Nome Utente?

Grazie ancora per il tuo aiuto.
 
Sigh..
Ti garantisco che questo codice

if autenticato = true then
Session("Autenticato") = "OK"

if nome_utente = "pincopallino" then
Response.Redirect("riservatoPincoPallino.asp")
else
Response.Redirect("riservato.asp")
end if

else
Response.Redirect("errore.asp")
end if
%>


mi rimanda sempre a riservato.asp....

Che mi stia rimbecillendo io? :crying:
 
Ma guarda che te l'ho detto :)

Non ha senso che lo reindirizzi ad un file diverso ma ad un unico file che effettua una query in base alla sessione dell'utente loggato e gli mostra i suoi dati: il DIVERSO è il contenuto, non il nome del file.
 

Discussioni simili