14 messaggi dal 23 agosto 2001
MA come fai il controllo sulla sessione scaduta???

perchè non imposti una variabile a true quando parte la sessione..

es:

Session("isUser")=true

poi su un file esterno del tipo

check.asp

metti il controllo

if Not session("IsUser") then
Response.write "<center>PAgina scaduta </center>"
end if

e su ogni pagina che ti occorre fai l'include di check.asp

penso che sia una discreta soluzione... ( IO la uso ;) )



100 messaggi dal 14 settembre 2001
Ciao,

faccio il controllo proprio nello stesso identico modo che hai detto tu, ma come dicevo qualche messaggio fa, se inserisco il global.asa, poichè nella subroutine Session_onStart ripristino la variabile di sessione allora il controllo all'interno della pagina non mi funziona piu' perchè trova sempre la variabile di sessione esistente.

Tutto ciò credo perchè esegue Session_onEnd e Session_onStart del global.asa prima di caricare la pagina (e quindi di leggere il controllo della variabile di sessione in cima alla pagina).

:-)

Ciao
Massimiliano
10 messaggi dal 15 maggio 2003
Ciao ragazzi! Anch'io sono alle prese con un problema simile (per non dire uguale): anch'io come te, Jivan, imposto nella Sub Session_OnStart un valore di inizializzazione per una variabile di sessione, ma il problema non riguarda suddetta sub: ho fatto diverse prove, praticamente è uscito fuori che eliminando la Session_OnEnd il controllo funziona. Mantenendola il comportamento dell'applicazione è...blocco totale della finestra del browser. Quello che non capisco è il perchè: ho pensato che il motivo fosse che dal momento in cui specifico una procedura per l'evento Session_OnEnd automaticamente venissero eliminate alcune variabili di sessione, fra cui quelle da me definite, così per verificare quest'ipotesi ho provato a definire una Session_OnEnd che non facesse nulla di esplicito, ma in questo caso le cose funzionano a dovere. Il problema è che nella sub in questione effettuo la cancellazione di alcuni file temporanei creati per ogni sessione, cosa assolutamente necessaria, come d'altronde il controllo sulla scadenza di sessione. Di seguito inserisco il codice del mio attuale global.asa. Se qualcuno avesse suggerimenti o se Jivan alla fine avesse trovato la soluzione alla sua applicazione gliene sarò eternamente grato...

<div style="text-align:left">
<SCRIPT LANGUAGE="VBScript" RUNAT="Server">
Sub Application_OnStart
  Application("BASE") = "D:\sviluppo\ICR-GEPIN\Cdr\" 
  Application("REQUEST") = "D:\sviluppo\ICR-GEPIN\icr\cache\"
  Application("RESULTS") = "D:\sviluppo\ICR-GEPIN\Cdr\Results\"
  Application("XSQLURL") = "http:\\agostino\icr\cache\"
End Sub

Sub Session_OnStart
  Session("CLIENT") = ""
  Session("VOCABULARY") = 0
End Sub

Sub Session_OnEnd 'Cancella i Files temporanei creati dall'applicazione
  Dim objFSO,objFile
  set objFSO = Server.CreateObject("Scripting.FileSystemObject")
  if objFSO.FolderExists(Application("REQUEST")) then 'File xsql
    if objFSO.FileExists(Application("REQUEST") & Session.SessionID & ".xsql") then
      set objFile = objFSO.Getfile(Application("REQUEST") & Session.SessionID & ".xsql")
      objFile.Delete True
    End If
  End if
  if objFSO.FolderExists(Application("RESULTS")) then
    if objFSO.FileExists(Application("RESULTS") & Session.SessionID & ".xml") then 'File xml completo
      set objFile = objFSO.Getfile(Application("RESULTS") & Session.SessionID & ".xml")
      objFile.Delete True
    End If
    if objFSO.FileExists(Application("RESULTS") & Session.SessionID & "_1.xml") then 'File xml bene selezionato
      set objFile = objFSO.Getfile(Application("RESULTS") & Session.SessionID & "_1.xml")
      objFile.Delete True
    End If
  End if
  Set objFSO = Nothing
    Set objFile = Nothing
End Sub
</SCRIPT>
</div>


Modificato da Asimov il 15 maggio 2003 15.06 -

E fu per libero arbitrio e una certa sobrietà, saltò fuori dalla nave in fuga dalla civiltà...un uomo in mare.
100 messaggi dal 14 settembre 2001
Ciao Asimov,
io ho poi risolto utilizzando una variabile application ("DateClear") dove memorizzo la data dell'ultima cancellazione dal database. Ogni volta che inizia una sessione controllo questa variabile: nel caso in cui sia passato piu' di un giorno dall'ultima cancellazione effettuo la cancellazione di tutti i record del database che siano piu' vecchi di piu' di un giorno.
Lo script del global.asa che ho usato è qualcosa di questo tipo:

<SCRIPT LANGUAGE="VBScript" RUNAT="Server">

Sub Application_OnStart
Application.Lock
Application("DateClear")=Date()
Application.UnLock
End Sub


Sub Session_OnStart

'imposta cookies e variabili di sessione necessari
'ripristina i cookies solo se non trova piu' il cookie


if Request.Cookies("UtenteID") = "" then
Response.Cookies("UtenteID")=Session.sessionid
Response.Cookies("TipoUtente")="visitatore"
end if

Session("SessioneAttiva") = True

'***NOTA:controllo la data dell' ultima cancellazione
if DateDiff("d",Application("DateClear"),Date())>=1 then

'esegue la cancellazione dal database
MM_Con_negozio_STRING = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\Lavoro\Sitidarealizzare\overdev\negozio abbigliamento\temp\database\dbnegozio.mdb;"


'Apro la connessione
Set Con=Server.CreateObject("ADODB.Connection")
Con.Open MM_Con_negozio_STRING

'cancella dal carrello
sql="DELETE * FROM Carrello WHERE CarrelloData < #" & DateAdd("d",-1,Date) & "#"

'esegue il comando
Set MM_insertCmd = Server.CreateObject("ADODB.Command")
MM_insertCmd.ActiveConnection = Con
MM_insertCmd.CommandText = sql
MM_insertCmd.Execute

'Chiudo la connessione
Con.Close
set Con=Nothing

'aggiorna i dati per mantenere lo status della cancellazione

Application.Lock
Application("DateClear")=Date()
Application.UnLock

'chiude verifica differenza date
end if


End Sub


</SCRIPT>


A me funziona e così ho aggirato il problema.
Spero possa esserti utile

Ciao
Massimiliano
10 messaggi dal 15 maggio 2003
Jivan, è incredibile: proprio dopo aver postato il mio msg ho pensato la stessa cosa: non so se il tuo problema fosse accedere a dei record che ti cancellavi con la Session_OnEnd, ad ogni modo il mio si (anche se non si tratta di records ma di files xml)...Così mi sono creato una bella Application("LastAccess") dove di volta in volta mi memorizzo l'ultimo accesso...e il gioco è fatto!

Beh, tutto è bene quel che finisce bene, ad ogni modo mi sei stato utile lo stesso, gli spunti li ho presi proprio da questa discussione, quindi: GRAZIE!

E fu per libero arbitrio e una certa sobrietà, saltò fuori dalla nave in fuga dalla civiltà...un uomo in mare.
100 messaggi dal 14 settembre 2001
...Prego, non c'è di che... (sì, anch'io dovevo cancellare dei record nella Session_OnEnd).

Ciao e buon lavoro
Massimiliano

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.