Ciao a tutti,

sono un giovane programmatore e sto sviluppando un sito web con ASP e Javascript per un esame universitario.

ho un piccolo GRANDE problema al momento inspiegabile...

Su questo sito (che simula un portale di acquisto libri via web) sono prevista la possibilità di iscriversi e successuvamente di loggarsi di nuovo qualora si è già registrati.

quando creo un nuovo utente, tutto funziona alla perfezione... quando invece mi loggo come utente già in database, vedo la prima pagina ma ogni volta che torno su altre pagine ottengo errore:

ADODB.Field error 800a0d5c <<L'oggetto non è più valido.>> /guest.txt, riga 11

### guest.txt ###
codice:
<%  Response.write("
Timeout is now: " + Session.Timeout)
	Response.write("
User is now: " + Session("sess_name"))
	Response.write("
Deposit is now: " + Session("sess_deposit"))

	var guest = Session("sess_name")
	var cash = Session("sess_deposit")
	
	Response.write("
guest essere uguale a:" + guest)
	Response.write("
session name essere uguale a:" + Session("sess_name"))
	
	if (guest == undefined || guest== "" || guest == "undefined"){
		guest = "???"	
	}					
	
	if (isNaN(cash) || cash == undefined || cash == "") {
		cash = 0
	}
%>


 Benvenuto <%=guest%>, il tuo deposito &egrave; <%=cash%> </p>

La pagina ASP che controlla la creazione del nuovo utente oppure il ritorno di un utente già iscritto è la seguente:

### operazioni.asp ###

crea = 1 --> nuovo utente, proviene da new.asp
crea = 11 --> utente già iscritto, proviene da login.asp

codice:
if (crea == 1) {
		
		var crediti = Number(Request.Form("crediti"))
		
		if (isNaN(crediti) || crediti > 100){
		Response.Write("

Crediti inseriti in maniera errata</p></div>
 clicca qui per ritornare alla pagina di creazione utente!")
		Response.End
		}
	
	' Check presenza utenti'
		
		var con         
		var conString  

		con= Server.CreateObject("ADODB.Connection")   
		conString = "Provider = Microsoft.Jet.OLEDB.4.0; " + "Data Source = " + Server.MapPath("./bookstore.mdb")	
		con.Open(conString)
		
		var sSQLString
		var rst
	
		rst= Server.CreateObject("ADODB.Recordset")
		sSQLString= "SELECT name FROM users WHERE name= '"+utente+"';"
		rst= con.Execute(sSQLString)
		
		
		if (!rst.EOF) {
            Response.Write("

Nome Utente gi&agrave in uso...</p></div>
")
            Response.Write("clicca qui per ritornare alla pagina di creazione utente!")
			Response.End
			rst.Close( )
			rst = null
			con.Close( )
			con = null
		}
		

		'Scrittura nel DB'
		sSQLString= "INSERT INTO users (name, pass, deposit) VALUES ('"+utente+"','"+password+"', "+crediti+");"
		con.Execute(sSQLString)
	
		Response.Cookies("BookAtHome")("user") = utente
		
		var expire= new Date()
		expire.setDate(expire.getDate() + 3)
		
		Response.Cookies("BookAtHome").Expires = expire.getVarDate()
		
		Session("login")= 100
		Session("sess_name")= utente
		Session("sess_deposit") = crediti
		Session.Timeout = 30
		
	} 

else if (crea == 11) {
	
	'Autenticazione User e Password'
	
		var con         
		var conString  

		con= Server.CreateObject("ADODB.Connection")   
		conString = "Provider = Microsoft.Jet.OLEDB.4.0; " + "Data Source = " + Server.MapPath("./bookstore.mdb")	
		con.Open(conString)
		
		var sSQLString
		var rst
	
		rst= Server.CreateObject("ADODB.Recordset")
		sSQLString= "SELECT name, pass, deposit FROM users WHERE name= '"+ utente +"';"
		rst= con.Execute(sSQLString)
	
	if  (rst.EOF || rst("pass") != password){
		Response.Write("

Accesso negato! Autenticazione fallita...</p></div>
")
		Response.Write("clicca qui per ritornare alla pagina di login!")
		Response.End
		
	} else if  (!rst.EOF && rst("pass") == password){
		
		Response.Cookies("BookAtHome")("user") = utente
		
		var expire= new Date()
		expire.setDate(expire.getDate() + 3)
		
		Response.Cookies("BookAtHome").Expires = expire.getVarDate()
		
		Session("login")= 100
		Session("sess_name")= rst("name")
		Session("sess_deposit") = rst("deposit")
		Session.Timeout = 30
	}
		'rst.Close( )'
		'rst = null'
		'con.Close( )'
		'con = null'

	}

Le 2 connessioni al db e il salvataggio dei dati nell'oggetto SESSION sono praticamente identici... Tutte le pagine hanno un controllo sul valore di Session("login") che se posto a 100 vuol dire loggato.

Ora non riesco proprio a capire come mai se mi comporto da nuovo utente, tutto ok!
se invece faccio il login, dopo 1 pagina mi esce quel cavolo di errore... :-(

Sarà qualcosa legata alla Session? Perché mi da errore di ADODB?

Chiunque possa darmi una mano, un suggerimento, un'idea... accetto tutto volentieri!!!

Grazie,

robymag

p.s. posso fornirvi anhe altri pezzi di codice, basta chiedere :-P è solo una tesina d'esame, non un sito commerciale...