Ciao a tutti , ho il seguente problema:
Ho creato un'applicazione web , utilizzando asp - js e Access .
Tra le varie funzionalità ne ho una di login e una di gestione degli utenti che intervengono su una tabella AUser .
Per gestire la tabella faccio una normalissima insert e una normalissima Delete (che uso nella stessa forma anche in altre funzionalità) che permettono rispettivamente , mediante form, l'inserimento o cancellazione in db dell'utenza oggetto della modifica.
Il problema é che, a differenza di quanto avviene nelle funzionalità similari che utilizzo in altre applicazioni, all'accesso alla pagina che visualizza il form interessato , in DB mi viene creato un record " " senza che l'utente compia nessuna operazione.
Riassumendo : accedo alla pagina , in DB mi compare il record indesiderato .
Utilizzando la funzione di cancellazione, che ho creato, sul medesimo record questa viene praticamente annullata in fase di reload della pagina che ne crea uno nuovo ....
Questo é il codice del Form e a seguire il codice ASP-JS che utilizzo per l'insert in DB di un nuovo utente :
Inserimento dei dati lato server al reloadcodice:<div id="NewUser" > <h2>User Managment</h2> <form name="NewClient" action="manager.asp" METHOD="GET" > <table id="tabellacentr"> <tr><td>ID:</td> <td><input type="text" name="Nick" size="8" value=""></td> <td> Password:</td> <td><input type="text" name="PSW" size="16" value=""></td> <td> Name: <td><input type="text" name="Name" size="8" value=""></td> <td> Surname :</td> <td><input type="text" name="Surname" size="8" value=""></td> <td> Role: <select id="v3" name="Roleselect"> <option value="2"> User</option> <option value="1"> Administrator</option> </select></td> <td><input type="Submit" name="submit" value="Edit" onClick=""> </td> </tr> </table> </form> <hr> <form name="utenti" action="manager.asp" METHOD="GET" > <table id="tabellacentr"><tr><td>ID</td><td>PW</td><td>Role</td><td>Last access</td> <td>Surname</td> <td>Name</td><td></td></tr><% var lgt; var dSQLString; lgt =Server.CreateObject("ADODB.Recordset"); dSQLString ="Select * from AUser"; lgt =con.Execute(dSQLString); var pl; var vl; var dl; var rl; var il; var sl; while (!lgt.EOF) { pl = lgt("ID"); vl = lgt("PW"); rl = lgt("Role"); sl = lgt("surname"); il = lgt("Pname"); dl = lgt("Ultimo_accesso"); %><tr><td><% Response.write(pl) %></td><td><% Response.write(vl)%></td><td><% Response.write(rl) %></td><td><% Response.write(dl) %><td><% Response.write(sl) %><td><% Response.write(il) %></td><td> <input type="button" name="Delete" value="Delete" onclick="JavaScript:CancUser('<%=pl%>');"></td> </tr> <% lgt.MoveNext( ); };%> </table> </form> </div>
codice:<%/* ------------------- Variabili per inserimento nuovo utente in DB------------- */ var Nick = Request.Querystring("Nick") ; var pwn = Request.Querystring("PSW") ; var nnw = Request.Querystring("Name") ; var Sn = Request.Querystring("Surname"); var Rlp = Request.Querystring("Roleselect"); %> <%/*-------------------------------------Insert in db nuovo utente */ if (Nick !=""){ if (rl =="1"){ /*rl é una variabile estratta da session che idendifica il ruolo dell'utente*/ var co; var sConString; cn = Server.CreateObject("ADODB.Connection"); sConString = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source = "+ Server.MapPath("./2003Guide.mdb"); cn.Open(sConString); var trns ="6"; var Descr="Insert New User "; var data = new Date(); var pag ="Manager.asp"; var slg; var qSQLString; slg =Server.CreateObject("ADODB.Recordset"); qSQLString = "INSERT into AUser ([ID],[PW],[Role],[Surname],[Pname]) values ('"+ Nick +"','"+ pwn +"','" + Rlp +"','"+ Sn +"','"+ nnw +"')"; slg=cn.Execute(qSQLString); qSQLString = ""; var slg; var qSQLString; slg =Server.CreateObject("ADODB.Recordset"); qSQLString = "INSERT into Log ([Transaction],[Description],[User],[Date],[Page]) values ('"+ trns +"','"+ Descr +"','" + name +"','" + data +"','" + pag +"')"; slg=cn.Execute(qSQLString); cn = ""; qSQLString =""; cn.Close; }; }; %>
Dove sto sbagliano ?
Potrebbe dipendere da impostazioni sbagliate in Access?
Vi ringrazio anticipatamente per pazienza , tempo e attenzione.
Ciao .

Rispondi quotando
