7 messaggi dal 10 marzo 2007
ciao a tutti,
ho un problema che mi crea molti casini .
ho praticamente creato una gestione delle statistiche nel mio portale che tiene traccia di tutti gli utenti che si logano e dove vanno.
il problema è sempre stato non tanto il login quanto il logout.
Ho creato una pagina con 2 frame.
frame 2 su cui gira il portale vero e prorio e il frame 1 (con bordi inesistenti) su cui ho inserito all'evento onunload uno script per aprire una popup e scrivere sul db alcune informazioni circa l'usita dell'utente.
il codice della popup è questo:

<!--#include file="conn6.asp"-->
 <% 'memorizzo nel db uscita utente 
idlogin = Session("accesso") 
controllounivoco = Session("constatistiche") 

if not("" = idlogin) then 
SQLstatisticheutenti = "UPDATE utenti SET oralogout='" & time() & "', controllounivoco='0' WHERE idutente=" & idlogin & " AND controllounivoco=" & controllounivoco rsstatistiche.Open SQLstatisticheutenti, conn6, 1, 3 
Session.Abandon 
end if %> 

<head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Senza nome 2</title> 
</head> 
<body onload="self.close()">
</body>


il problema è che, come ben sapete, alcuni browser hanno il blocco delle popup e quindi molte volte nn riesco ad intercettare il logout del cliente (che avviene non con il tasto logout ma magari con la chiusura della pagina o quando l'utente va su un altro indirizzo internet).
il codice che sta sul frame1 per richiamare la popup è questo:

<body onunload="javascript:window.open('logoutstatistiche1.asp','Uscita','toolbar=no scroolbars=no width=100 height=100');">


la mia domanda è questa:
posso creare uno script (non codice asp) da inserire direttamente sul frame1 richiamato dall'evento onunload per connettermi al db è memorizzare alcune informazioni????
praticamente nn vorrei più far aprire la popup e quindi risolvere il problema!
grazie a tutti per l'aiuto.

ciao.
2.410 messaggi dal 13 febbraio 2003
Contributi
up....

ricordati che è un forum e non un help desk.

Per il tuo problema IMHO l'approccio è errato in quanto http è stateless e a meno di non usare accrocchi cookie, sessioni, ecc. non sarà mai garantito lo stato della sessione.

Pertanto su aspitalia trovi una montagna di esempi sul conteggio degli utenti online, per quanto riguarda la gestione del logout non vedo molte possibilità se non:

1° usare come da script (http://www.aspitalia.com/script/386/Tenere-Traccia-Utenti-Connessi-Mostrare-Nome.aspx) l'evento Session_OnEnd e anche se non è preciso va bene uguale
2° crearti il tuo browser proprietario che invia al server http un header per la gestione dello stato login/logout/idle ecc.
7 messaggi dal 10 marzo 2007
Ti ringrazio del tempo dedicatomi e della tua disponibilità, ma la mia domanda è molto precisa........gli esmpi a cui ti riferisci li conosco bene.
Non voglio utilizzare l'evento session_onend ma voglio fare come sto facendo.
Mi serve sapere solo se è possibile collegarsi al db con uno script e non con asp (come solitamente si fà).
Grazie mille a tutti.

Ciao
2.410 messaggi dal 13 febbraio 2003
Contributi
Ti ringrazio del tempo dedicatomi e della tua disponibilità, ma la mia domanda è molto precisa........gli esmpi a cui ti riferisci li conosco bene.
Non voglio utilizzare l'evento session_onend ma voglio fare come sto facendo.

che non è perfetto ma se va bene a te

Cosa succede se l'utente tiene la pagina attiva e se ne va in riunione o in pausa caffe e la sua sessione scade?

Mi serve sapere solo se è possibile collegarsi al db con uno script e non
con asp (come solitamente si fà).

http://www.aspitalia.com/script/137/Utilizzare-Javascript-Apire-Database.aspx
7 messaggi dal 10 marzo 2007
Grazie mille per il tuo aiuto, ma ho provato in mille modi ma nn ci riesco a connettermi ed a scrivere sul db con lo script. Ti posto il codice nel caso tu avessi la possibilità di darmi qualche dritta.

<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>Senza nome 3</title>
<base target="principale" />

<script LANGUAGE="javascript" runat="server">

function logstatistiche()
{
var constat = Server.CreateObject("ADODB.Connection");
constat.Open("/mdb-database/statistiche.mdb");
var sqlstat = "UPDATE utenti SET controllounivoco='9999' WHERE controllounivoco=91191";
var rsstat = Server.CreateObject("ADODB.RecordSet");
rsstat.Open(sqlstat, constat);
rsstat.Close();
constat.Close();

  
}    
</script>

</head>

<body onunload="logstatistiche();">

</body>

</html>


Grazie anticipatamente
7 messaggi dal 10 marzo 2007
Ragazzi, qualcuno gentilmente può aiutarmi???!!!
Grazie.
16 messaggi dal 06 settembre 2002
Puoi usare Ajax.
sull onunload del frame avvii una funzione che, tramite Ajax, utilizza la pagina che ora usi nel popup.
qualcosa del genere
<script type="text/javascript" src= "comuni/ajaxbase2.js"> </script>
<script type="text/javascript"  >
function Chiudi() {
    
    var indirizzo= 'http://prove.local/logoutstatistiche1.asp'  
    ajaxManager('ReturnRisposta',indirizzo ,'AjaxReturn(risposta);',10000)

}

function AjaxReturn(risposta) {
  }
</script> 

</head>
<body onunload="Chiudi()">


in ajaxbase2.js c'è il solito motore Ajax
saluti

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.