Originariamente inviato da cicciopie II
credo sia un bug... o forZe no
penso... quando elimini una var di sessione quella che viene dopo scala di posto e vada a rimpiazzarla... però poi l'iteratore passa alla successiva... e, quindi, in pratica, la salta
mi pare ne salti una per ogni eliminazione
Scusate ho letto solo stamattina questa cosa ed è esattamente quello che succede ad occhio. Io pensavo di fare così, ditemi se ha senso.
Ciclare per tutte le chiavi della sessione e concatenare una stringa con tutte le chiavi che voglio rimuovere. Trasformare la stringa in array e ciclarla facendo la rimozione di ogni chiave.
Secondo voi è poco "elegante"?
Provo a scrivere il codice così:
codice:
<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
<%
Session("NewA") = "variabile A"
Session("NewB") = "variabile B"
Session("NewC") = "variabile C"
Session("D") = "variabile D"
strKeys = ""
For Each Item In Session.Contents
If Left(Item, 3) = "New" Then
strKeys = strKeys & Item & ", "
End If
Next
strKeys = Left(strKeys, Len(strKeys)-2)
arrKeys = Split(strKeys, ", ")
For Each Item In arrKeys
Session.Contents.Remove(Item)
Next
For Each Item In Session.Contents
Response.Write(Item & " = " & Session(Item) & "
")
Next
%>