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 :
codice:
<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>
Inserimento dei dati lato server al reload
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 .