realizzare una pagina di primo accesso

  • Creatore Discussione Creatore Discussione euganeo
  • Data di inizio Data di inizio

euganeo

Nuovo Utente
9 Set 2006
4
0
0
Buongiorno a tutti,
volevo realizzare una pagina di primo accesso che controllasse se i dati erano già stati immessi nel database e in caso contrario inserisse i nuovi. Commetto però un errore di concetto. Il database access si chiama " Archivio" e la tabella " Utenti". Questo lo script:

<%

us=request.form("username")
ps=request.form("password")

Dim conn,sql,rs

Set conn=server.CreateObject("ADODB.Connection")
Set rs=Server.CreateObject("ADODB.recordset")

sql="select * from utenti where username= '" & us & "' and password= '" & ps & "'"

conn.open " Provider=Microsoft.Jet.oledb.4.0; data source=" & server.MapPath ("archivio.mdb")


rs.open sql,conn

if rs.EOF then

sql="insert into utenti(username,password) values ('" & us & "', '" & ps & "')"
conn.execute sql
response.redirect" errore.asp?err=105" <!--comunica alla pagina che l'iscrizione è fatta-->

else

response.redirect" errore.asp?err=101" <!--comunica che l'utente è già iscritto-->

End if




conn.close
set conn=nothing


%>

il correttore mi dà errore:
Tipo di errore:
Microsoft JET Database Engine (0x80040E14)
Errore di sintassi nell'istruzione INSERT INTO.
/accesso riservato/provaconn.asp, line 20

ma il problema è senz'altro un altro. Spero che qualche esperto possa aiutarmi. Un saluto
 
innanzitutto non ha molto senso quello che vuoi fare, ma se sta bene a te... :)

ad occhio non vedo errori nella insert, quindi concordo che il problema poss essere altrove

prova ad usare qui i commenti asp invece che html

response.redirect" errore.asp?err=105" <!--comunica

trasforma in

response.redirect" errore.asp?err=105" ' comunica

aggiungi il cursore al recordset

rs.open sql,conn

scrivi

rs.open sql,conn,1

controlla nomi dei campi, tipi di dato, permessi in scrittura sulla cartella e poi facci sapere
 
Grazie,
in effetti dopo il tuo commento ho riveduto tutto lo script. L'ho svolto così e adesso funziona:

<!--#include file="daidentro.asp"--> ' include l'html del modulo
adesso il database si chiama" iscritti" e la tabella "studenti"
<%
us=request.form("username")
ps=request.form("password")



Set conn=server.createObject("ADODB.Connection")
conn.open " Provider=Microsoft.jet.oledb.4.0; data source=" & server.MapPath ("iscritti.mdb")


Set rsLogin=Server.CreateObject("ADODB.recordset")
rsLogin.activeconnection=conn


rsLogin.open " select * from studenti where nome='"& us & "' and cognome='" & ps & "'"
if rsLogin.EOF then

conn.execute "INSERT INTO studenti(nome,cognome) VALUES ('" & us & "','"& ps & "')"
response.redirect ("daidentro.asp?err=101") ' dai dentro.asp è un nome sui generis ma questo è solo un esercizio per apprendere


else

response.redirect ("daidentro.asp?err=102")

end if





conn.close
set conn=nothing


%>

Funziona tutto, ovviamente andrà completato, ma è ortodosso come script? Grazie ancora comunque
 

Discussioni simili