Salve, ho alcuni dubbi:

1) La funzione:

nome = replace(replace(Request.Form("nomecampo"),"<","%3C "),"'","''")

cosa assegna alla variabile "nome" ? Che significa "<","%3C" ?
Evita l' sql injection ? Inoltre la funzione di cui sopra va bene per qualsiasi campo sia esso un campo di un form numero o una stringa


2) Se io apro una sessione, ossia nell' header di una pagina asp di login scrivo il seguente codice:

codice:
<%
username = "admin"
password = "admin"

If Lcase(Request.Form("username")) = Lcase(username) and Lcase(Request.Form("password")) = Lcase(password) then

session("amministratore") = true
Response.Redirect "Pagina_Loggati.asp"

End if
%>
( e in tutte le pagine che voglio siano protette, il codice <% IF Session("amministratore") <> True Then Response.Redirect "login.asp" End if %> ), come faccio a distruggere questa sessione? Cioè cosa dovrei scrivere dentro un file chiamato logout.asp ?


3) Quest' ultima questione è la più delicata secondo me.
Supponiamo che io debba interrogare un database; allora uso il seguente codice ( per esempio ):

codice:
db_path = "driver={Microsoft Access Driver (*.mdb)};dbq=" & server.mappath("/mdb-database/nome_db.mdb")


Set Rs = Server.CreateObject("ADODB.Recordset")
Sql = "SELECT * FROM members WHERE username = '" & Request.Form("user") & "' AND password = '" & Request.Form("pass") & "'"
Rs.Open Sql, db_path

If Rs.EOF Then

BLA BLA BLA ECC....
%>
Quello che noto è che ciò funziona ma quello che non capisco è come fa a funzionare se non ho aperto la connessione al database ? Cioè se non ho scritto:

<%
Set Conn = Server.CreateObject("ADODB.connection")
Conn.open db_path
%>

Allora a cosa serve aprire la connessione?

Se procedo così, al termine dello script è sufficiente che chiuda

Rs.Close
Set Rs = Nothing

senza citare la chiusura della connessione....