Qualcuno si ricorda? Avevo postato per ricevere aiuto sull'utilizzo dei Cookie per riconoscere gli utenti connessi. Grazie ai consigli di alcuni di voi ero riuscito ad ottenere dei buoni punti di partenza, e alla fine ci sono riuscito!!!
Ho anche scoperto però che questo non basta per arrivare ad ottenere il risultato che volevo
...preparatevi perche' il post sara' un po' lungo.
Spero che abbiate ancora voglia di aiutarmi!!!
Allora io vorrei riuscire a fare in modo che una pagina rechi scritto quali sono gli utenti connessi in quel momento. Ovvero si connette "A" e viene scritto A, poi si connette "B" e viene scritto A B, poi si connette "C" e si disconnette "B" e viene scritto A C. Ovviamente per vedere chi e' effettivamente connesso in un dato istante bisogna aggiornare la pagina. Allora... Io ho cercato di documentarmi un po con qualche guida e con un libro di ASP.
Da quello che ho capito grazie a guide varie, tramite un utilizzo di Cookie, di un Database, del file Global.asa e dell'oggetto sessione e del SessionID questa cosa e' fattibile. Purtroppo pero' non ho trovato nessun esempio che si avvicini alla cosa che voglio fare.
Ora vi riporto il breve codice che ho scritto (che ovviamente non funziona) basandomi solo su quello che credo di aver capito sul funzionamento della Session e del Global.asa.
Da voi vorrei solo sapere cosa non ho capito e se sono sulla buona strada e magari qualche dritta su cosa devo fare. Non vorrei sembrare un opportunista...
Per chi se ne intende capire cosa fa il codice non dovrebbe essere difficile.
Ecco qui tutto cio' che compare nel mio Global.asa:
<SCRIPT LANGUAGE=VBSCRIPT RUNAT=SERVER>
Sub Session_OnStart()
'------------------------LETTURA COOKIE----------------------------
Session("Nome") = Request.Cookies("FootballFantasy")("Nome")
Session("Nik") = Request.Cookies("FootballFantasy")("Nik")
Session("ICQ") = Request.Cookies("FootballFantasy")("ICQ")
Session("IDSession")= Session.SessionId
'------------------INSERIMENTO DATI IN DB CONNESSI.MDB---------------
dim ORS1
dim dbconn1
dim sql1
set dbconn1 = Server.CreateObject("ADODB.Connection")
dbconn1.Open "driver={Microsoft Access Driver (*.mdb)}; DBQ="& Server.MapPath("/mdb-database/Connessi.mdb")
set ORS1=Server. CreateObject("ADODB.recordset")
sql1="INSERT INTO UserConn (IDSession, Nome, Nik, ICQ) VALUES=('" & IDSession & "','" & Nome & "','" & Nik & "','"& Pass & "','"& ICQ & "');"
ORS1.Open sql1, dbconn1
set ORS1=nothing
dbconn1.close
set dbconn1=nothing
End Sub
Sub Session_OnEnd()
'-----------------ELIMINAZIONE DATI DA DB CONNESSI.MDB-----------------
dim ORS2
dim dbconn2
dim sql2
set dbconn2 = Server.CreateObject("ADODB.Connection")
dbconn2.Open "driver={Microsoft Access Driver (*.mdb)}; DBQ="& Server.MapPath("/mdb-database/Connessi.mdb")
set ORS2=Server. CreateObject("ADODB.recordset")
sql2="DELETE FROM UserConn WHERE IDSession='" & Session.SessionId & "';"
ORS2.Open sql2, dbconn2
set ORS2=nothing
dbconn2.close
set dbconn2=nothing
End Sub
</SCRIPT>
Quello che il file dovrebbe fare e' inserire l'utente in un database "Connessi" alla connessione (prelevando i suoi dati dal Cookie che e' già stato creato da un altra pagina)
e toglierlo alla fine della sessione. Il prelievo avviene grazie al SessionID che identifica l'utente.
In questo modo solo chi e' nel database viene visualizzato da una pagina ASP col seguente codice:
dim ORS3
dim dbconn3
dim sql3
set dbconn3 = Server.CreateObject("ADODB.Connection")
dbconn3.Open "driver={Microsoft Access Driver (*.mdb)}; DBQ="& Server.MapPath("/mdb-database/Connessi.mdb")
set ORS3=Server. CreateObject("ADODB.recordset")
sql3="SELECT Nome FROM UserConn;"
ORS3.Open sql3, dbconn3
Response.Write "Utenti connessi: "
Do while not ORS.EOF
Response.Write ORS("Nome")
ORS.MoveNext
Loop
set ORS3=nothing
dbconn3.close
set dbconn3=nothing
Quello che fa questa pagina e' solo di prelevare tutti i nomi dal database e scriverli.
L'errore sta di sicuro nel Global.asa. Probabilmente non lo sto usando nel modo corretto!!!
Spero che abbiate la pazienza e la voglia di aiutarmi!!!
Grazie davvero infinite!!!