Ragazzi sto impazzendo con un problema da diversi giorni.
Cerco di spiegarvi il problema meglio che posso.
Il programma riguarda una sistema di messaggeria.
Dunque un utente fa il login:
se è riconosciuto avviene questo:
nel global.asa il codice è il seguente:codice:session("utente") = rsME("ID_utenti") session.timeout = 20 if InStr(1, Application("Users"), Session("utente") & "|" ) = 0 then 'se l'utente non è già presente Application.Lock 'viene aggiunto l'utente appena loggato alla stringa che contiene ' l'elenco degli utenti Application("Users") = Application("Users") & Session("utente") & "|" Application.UnLock end if
Quindi questo è il discorso relativo al riconoscimento degli utenti sul sito.codice:<SCRIPT language="VBScript" Runat="Server"> Sub Application_OnStart Application("Users") = "" End Sub Sub Session_OnEnd Application.Lock Application("Users") = Replace( Application("Users") , Session("utente") & "|" ,"") 'quando scade una sessione viene eliminato il nome dell'utente dalla variabile di 'applicazione che contiene l'elenco degli utenti attivi Application.UnLock End Sub </SCRIPT>
Adesso c'è una pagina che si chiama messaggeria.asp che richiama con un iframe al suo interno la pagina inc_messaggeria.asp
Questa pagina determina gli utenti che sono connessi
e dopo fa la query per visualizzare tutte le informazioni di cui ho bisogno:codice:arrUtenti = Split(Application("Users"),"|") for i = 0 to UBound(arrUtenti) all_id = all_id & arrUtenti(i) & "," next lunghezza = len(all_id) all_id = mid(all_id, 1, lunghezza-2)
Questa pagina si refresha, attraverso un meta ogni 40 secondi.codice:strSQL = "SELECT tab_utenti.user_utente, tab_utenti.nome_utente, tab_utenti.ID_utenti, tab_utenti.sesso_utente, tab_utenti.foto_utente, tab_utenti.data_utente, tab_utenti.admin_utente, tab_utenti.online_utente, SUM(tab_messaggeria.id_mittente) AS somma_messaggi " &_ "FROM tab_utenti LEFT OUTER JOIN " &_ "tab_messaggeria ON tab_messaggeria.id_mittente = tab_utenti.ID_utenti " &_ "WHERE tab_utenti.ID_utenti IN ( " & All_ID & " ) AND tab_utenti.online_utente = 1 " &_ "GROUP BY tab_utenti.user_utente, tab_utenti.nome_utente, tab_utenti.ID_utenti, tab_utenti.sesso_utente, tab_utenti.foto_utente, tab_utenti.data_utente, tab_utenti.admin_utente, tab_utenti.online_utente"
Se la session è scaduta c'è un controllo sopra alla pagina:
Purtroppo accade che dopo circa una decina di minuti, anche se non è scaduta la session, non mi mostra piu nessun utente nella pagina dove devo mostrare gli utenti connessi, e non mi fa neanche il login, semplicemente non mi mostra niente, come se la query non restituisse nessun valore valido.codice:<% if session("utente") = "" then session("pagina") = "../messaggeria.asp" %> <script language="javascript"> parent.location.href='/nologin.asp'; </script> <% end if %>
Lo so è un pò complesso, ma vi prego sto impazzendo e non capisco il perchè!!!
Riuscite a darmi una mano?
Grazie a tutti

Rispondi quotando
