Aprire più session..come??

  • Creatore Discussione Creatore Discussione diego06
  • Data di inizio Data di inizio

diego06

Nuovo Utente
14 Apr 2006
25
0
0
Ciao a tutti...
ho creato una pagina riservata per gli utenti registrati...
viene verificata l'autenticità del'user e viene aperta una sessione "loggato"... fin qui tutto ok! Il problema è:
devo impedire l'accesso ad un gruppo di utenti ad un'altra pagina ed ho creato una nuova pagina di login che apre un'altra sessione "riservato" (ma che legge dallo stesso database!!!)... ero convinto che il nome della session servisse proprio a questo scopo ma, invece quando mi connetto dalla pagina di login normale e digito l'indirizzo della pagina riservata solo ad un gruppo di utenti, me la visualizza lo stesso!
come posso risolvere?

grazie
ciao
 
oltre ad username e password nella tabella degli utenti ti conviene creare un campo "livello"

ad esempio

username: lukeonweb
passord: demo
livello: utente

username: diego06
password: demo
livello: amministratore

in modo da usare

Session("username") = "diego06"
Session("livello") = "amministratore"

usi le due sessioni dove vuoi e come vuoi per rendere private delle pagine e... ancora più private delle altre!
 
username: lukeonweb
passord: demo
livello: utente

username: diego06
password: demo
livello: amministratore

in modo da usare

Session("username") = "diego06"
Session("livello") = "amministratore"

diciamo che il livello è dato dall'appartenza ad un determinato anno di corso (visto trattasi di un sito universitario)... cioè:

username: user
password: pwd
anno di corso: terzo

e solo chi appartiene al terzo anno può entrare perchè viene creata una
session("terzoanno")=true

ed in effetti funziona perchè chi è, ad esempio, del primo non può accedere... solo che appena entra nella sezione riservata a tutti gli utenti registrati, se conosce l'indirizzo della pagina di risposta all'autenticazione per il terzo anno, gli viene concessa autorizzazione anche per quella pagina riservata solo al terzo... spero di essermi spiegato...

Per sicurezza ti allego lo script della pagina di verifica sperando tu riesca a trovare l'errore!
Verifica.asp:
<%
Username = Replace(Request.Form("username"), "'", "''")
Password = Replace(Request.Form("password"), "'", "''")
Dataora = Replace(Request.Form("dataora"), "'", "''")
Anno = Replace(Request.Form("anno"), "'", "''")
Linea = Replace(Request.Form("linea"), "'", "''")

IF Username <> "" and Password <> "" then
url_DB = "driver={Microsoft Access Driver (*.mdb)};dbq=" & server.mappath("/mdb-database/database.mdb")

Set Conn = Server.CreateObject("ADODB.Connection")
conn.Open url_DB

Set RecSet = Server.CreateObject("ADODB.Recordset")

SQL = "SELECT * FROM Utenti where username = '" & username &"' and password = '" & password & "' and anno = '" & anno & "' and linea = '" & linea & "' and attivo = 1"
RecSet.Open SQL, Conn, adOpenStatic, adLockOptimistic

IF Not RecSet.Eof Then

Session("LineaD") = True
Session("Username") = Username
RecSet("dataac") = Dataora
RecSet.Update
Else
Session("LineaD") = False
End IF

RecSet.Close
Set RecSet = Nothing

Conn.Close
Set Conn = Nothing
IF Session("LineaD") = True then
Response.Redirect "appuntid.asp"

Else
%>
<hr>
<p align="center"><b><font size="2" face="Verdana">Attenzione: hai inserito username
e/o password non corretti</font></b></p>
<p align="center"><b><font size="2" face="Verdana">oppure</font></b></p>
<p align="center"><b><font size="2" face="Verdana">non sei della linea D, secondo anno.</font></b></p>
<hr>
<%
End IF

Else

%>
<hr>
<p align="center"><b><font face="Verdana" size="2">Compila correttamente tutti i campi!</font></b></p>
<hr>
<%
End IF
%>
 
una variabile di sessione non puoi settarlacome true o false, nativamente non è booleana

il ragionamento che fai lo condivido, ma modificherei delle cavolatine

Session("anno") = ' recupera l'anno di corso
Session("username") = ' recupera la username
 
Ciao, quindi come dici di correggere? :confused:
Già che ci sono ti faccio una domanda... e se volessi reindirizzare ogni utente ad una sua pagina personale a seconda dell'id come posso fare?
Grazie ancora per la tua disponibilità (e naturalmente anche a quella di tutti coloro risponderanno!!! 0:) )

Diego
 
Non conosco benissimo asp... solo qualcosa ma solo teorica (comunque è la prima volta che faccio delle pagine in asp!!)... per il codice mi ha aiutato un mio amico che però non sa come risolvere il problema!!!... quindi chiedo aiuto a voi!
Spero mi aiuterete...
ciao
 
certo che ti aiutiamo, ma in questo modo, vuoi o non vuoi, stai chiedendo a noi di farti la pagina ex-novo, perchè quella che hai postato non è scorretta ma fa altro... capisci?

quindi studia un pochino asp, dedica un paio d'ore alla lettura delle guide che abbiamo online su mrw o da dove vuoi, in modo che parliamo la stessa lingua ed in questo modo ti possiamo aiutare, altrimenti è un lavoro che ci stai commissionando :)
 

Discussioni simili