Microsoft JET Database Engine error '80040e14

lunedì 11 giugno 2007 - 23.00

aurora Profilo | Newbie

Ciao
non sono molto pratica....ho scitto il seguente codice JScript:

<%@ LANGUAGE="JScript"%>
<%

nick = Request.Form("nick");
pwd = Request.Form("pwd");
ccid = Request.Form("ccid");


var con;
var sConString;
var sSQLString;
con = Server.CreateObject("ADODB.Connection");
sConString = "Provider = Microsoft.Jet.OLEDB.4.0; "
+ "Data Source = " + Server.MapPath("./gesim.mdb");
con.Mode=3; //1 = adModeRead, 3 = adModeReadWrite
con.Open(sConString);

var rst, sql;
rst= Server.CreateObject("ADODB.Recordset");

sql = "INSERT INTO usr (nick,pwd,ccid) VALUES ('" &nick& "','" & pwd &"','" & ccid &"');

con.Execute(sql);

con.Close();
rst=null;
con=null;

%>

ma da questo errore:

Microsoft JET Database Engine error '80040e14'
Istruzione SQL non valida. Prevista 'DELETE', 'INSERT', 'PROCEDURE', 'SELECT' o 'UPDATE'.

registrazione.asp, line 23

dove la linea 23 é:

con.Execute(sql);

alx_81 Profilo | Guru

>Ciao
Ciao e benvenuta su dotNetHell
>non sono molto pratica....ho scitto il seguente codice JScript:
>
><%@ LANGUAGE="JScript"%>
><%
>
>nick = Request.Form("nick");
>pwd = Request.Form("pwd");
>ccid = Request.Form("ccid");
>
>
>var con;
>var sConString;
>var sSQLString;
>con = Server.CreateObject("ADODB.Connection");
>sConString = "Provider = Microsoft.Jet.OLEDB.4.0; "
>+ "Data Source = " + Server.MapPath("./gesim.mdb");
>con.Mode=3; //1 = adModeRead, 3 = adModeReadWrite
>con.Open(sConString);
>
>var rst, sql;
>rst= Server.CreateObject("ADODB.Recordset");
>
>sql = "INSERT INTO usr (nick,pwd,ccid) VALUES ('" &nick& "','"
>& pwd &"','" & ccid &"');
>
>con.Execute(sql);
>
>con.Close();
>rst=null;
>con=null;
>
>%>
>
>ma da questo errore:
>
>Microsoft JET Database Engine error '80040e14'
>Istruzione SQL non valida. Prevista 'DELETE', 'INSERT', 'PROCEDURE',
>'SELECT' o 'UPDATE'.
L'errore ritornato indica che l'istruzione che vai a comporre dinamicamente è errata. Prova a stampare a video la variabile sql e noterai che sicuramente qualcosa non va . Potrebbe essere un valore passato con un'apice in più, ad esempio..
Comunque, quello che segui tu non è il miglior modo di procedere, lasci una porta aperta ai malintenzionati, che tramite SQL Injection possono entrare sul tuo db ed eseguire pericolosi comandi. Visto che stai usando asp, ti consiglio di utilizzare le query parametrizzate.
Si tratta di query con simboli al posto dei valori (? per ACCESS poichè è OLEDB). Ogni simbolo corrisponde in maniera posizionale all'ordine con cui successivamente imposti i parametri. Dovrai imparare ad utilizzare l'oggetto Command di ado e ad impostare la collezione Parameters correttamente per eseguire bene la query.
Leggiti questo link:

ADODB Command Object
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/ado270/htm/mdobjcommand.asp

Ciao!
Alx81 =)

http://blogs.dotnethell.it/suxstellino

aurora Profilo | Newbie

Il campo ccid è un valore numerico nel database quindi ho tolto le virgolette dalla stringa ma continua a dare lo stesso errore.
Dopo la riga conn.Execute(sql); ho inserito una Response.Write(sql); e stampa come risultato 0.

Che devo fare?

alx_81 Profilo | Guru

>Dopo la riga conn.Execute(sql); ho inserito una Response.Write(sql);
>e stampa come risultato 0.
>
>Che devo fare?
la response.write la devi mettere prima dell'execute, non dopo aver ottenuto l'errore

Alx81 =)

http://blogs.dotnethell.it/suxstellino

aurora Profilo | Newbie

la conn.execute l'ho messa temporaneamente come commento quindi praticamente la response risulta subito dopo la stringa sql

alx_81 Profilo | Guru

>la conn.execute l'ho messa temporaneamente come commento quindi
>praticamente la response risulta subito dopo la stringa sql
allora significa che quella stringa è decisamente valorizzata male... devi fare response.write in più punti per vedere come piano piano la componi. Devi controllare soprattuto i valori delle variabili che usi per fare la stringa...
Alx81 =)

http://blogs.dotnethell.it/suxstellino

aurora Profilo | Newbie

Risolto!!! dove mettere alle variabili il + così: +nick+ e non &nick&

Solo che ora è uscito un nuovo problema
da il seguente errore:

Microsoft JET Database Engine error '8004005'

Impossibile aggiungere o modificare il record. Nella tabella "banca" è necessario un record correlato.

il database contiente la tabella usr con campi (nick,pwd,ccid) e una tabella banca con campi (ccid,val)

alx_81 Profilo | Guru

>Risolto!!! dove mettere alle variabili il + così: +nick+ e non
>&nick&
già... jscript concatena col + e non con la e commerciale..
>
>Solo che ora è uscito un nuovo problema
>da il seguente errore:
>
>Microsoft JET Database Engine error '8004005'
>
>Impossibile aggiungere o modificare il record. Nella tabella
>"banca" è necessario un record correlato.
>
>il database contiente la tabella usr con campi (nick,pwd,ccid)
>e una tabella banca con campi (ccid,val)
hai una relazione tra quelle due tabelle?

Alx81 =)

http://blogs.dotnethell.it/suxstellino

aurora Profilo | Newbie

si la relazione tra la tabella usr e banca è molti a uno
la struttura delle tabelle è:
tab usr

nick tipo testo chiave primaria
pwd tipo testo
ccid tipo numerico

tab banca

ccid tipo nuemrico chiave primaria
val tipo numerico

alx_81 Profilo | Guru

>si la relazione tra la tabella usr e banca è molti a uno
>la struttura delle tabelle è:
>tab usr
>
>nick tipo testo chiave primaria
>pwd tipo testo
>ccid tipo numerico
>
>tab banca
>
>ccid tipo nuemrico chiave primaria
>val tipo numerico
ecco.. tu stai cercando di inserire l'utente, ma non te lo fa fare perchè ti richiede un record correlato con banca..
prima devi inserire la banca.. poi l'utente..

Alx81 =)

http://blogs.dotnethell.it/suxstellino

aurora Profilo | Newbie

Solo che io devo creare una pagina per la registrazione di un nuovo utente con nick, password e numero conto. Se mi registro come nuovo non posso già sapere conto e valuta. Quindi la relazione e sbagliata perchè associa ad un conto molti nick?

alx_81 Profilo | Guru

>Solo che io devo creare una pagina per la registrazione di un
>nuovo utente con nick, password e numero conto. Se mi registro
>come nuovo non posso già sapere conto e valuta. Quindi la relazione
>e sbagliata perchè associa ad un conto molti nick?
Ma tu nella tabella banca hai i conticorrenti di una banca?
perchè in quel caso, devi creare un nuovo contocorrente quando crei il nuovo utente..
Quando salvi dalla maschera di inserimento utente, devi prima creare il record relativo al nuovo contocorrente (magari con il +1 del contocorrente più grande della banche) e poi l'utente, impostando il nuovo contocorrente creato nell'utente.
Alx81 =)

http://blogs.dotnethell.it/suxstellino

aurora Profilo | Newbie

Nella tabella banca ho il numero del conto corrente e l'importo. Effettuando la registrazione di un nuovo utente non posso già avere i dati del conto e per logica non posso inserire un nuovo utente con ccid uguale a uno già esistente....non ci sto capendo più niente

alx_81 Profilo | Guru

>Nella tabella banca ho il numero del conto corrente e l'importo.
>Effettuando la registrazione di un nuovo utente non posso già
>avere i dati del conto e per logica non posso inserire un nuovo
>utente con ccid uguale a uno già esistente....non ci sto capendo
>più niente
Appunto.. quello che ti indicavo è di creare una cosa di questo tipo:

maschera inserimento utente
quando salvi prendi la max dei conti correnti (oppure la prendi da dove ti sei segnato l'ultimo cc) e gli aggiungi uno.
crei un record sulla conti correnti con il nuovo cc ottenuto ed importo a 0.
crei l'utente utilizzando quel conto.
Questo vale se ti basta avere il conto corrente progressivo..


Alx81 =)

http://blogs.dotnethell.it/suxstellino

aurora Profilo | Newbie

Nella specifica della realizzazione del sito data dal docente non è indicato niente sulla banca. Una volta che ho inserito nel form nick, password e numero conto non posso aprire un'altra fienstra che richiede l'importo del conto così li salvo sulla tab banca e poi effettuo l'aggiunta del nuovo utente sulla tabella usr? Spero non sia troppo confusa come spiegazione

alx_81 Profilo | Guru

>Nella specifica della realizzazione del sito data dal docente
>non è indicato niente sulla banca. Una volta che ho inserito
>nel form nick, password e numero conto non posso aprire un'altra
>fienstra che richiede l'importo del conto così li salvo sulla
>tab banca e poi effettuo l'aggiunta del nuovo utente sulla tabella
>usr? Spero non sia troppo confusa come spiegazione
Non è confusa..
ok.. certo puoi fare così, ma non sapevo che l'importo lo potessi avere dall'esterno..
allora direi di seguire quella strada.. Salvi il conto ti fai tornare il numero di cc e poi lo usi per salvare l'utente

Alx81 =)

http://blogs.dotnethell.it/suxstellino

aurora Profilo | Newbie

Non so quella è una mia ipotesi non è specificato niente sulla banca. Ma registrando un nuovo utente penso sia l'unica soluzione possibile. Si può fare la registrazione in un unica pagina asp e non in due come faccio io?

alx_81 Profilo | Guru

>Non so quella è una mia ipotesi non è specificato niente sulla
>banca. Ma registrando un nuovo utente penso sia l'unica soluzione
>possibile. Si può fare la registrazione in un unica pagina asp
>e non in due come faccio io?
Certo.. fai inserire l'utente, il numero e l'importo, poi lato server decidi tu quali comandi lanciare prima..

Alx81 =)

http://blogs.dotnethell.it/suxstellino

aurora Profilo | Newbie

Ho provato ma ho un problema. Prima avevo una pagina new.asp che conteneva il form per inserire i dati che poi venivano inviati alla pagina registrazione.asp. Ora ho messo tutto nella pagina new.asp come faccio a dire al form di inviare i dati a se stesso e a elaborarli all'interno del codice jscript?

alx_81 Profilo | Guru

>Ho provato ma ho un problema. Prima avevo una pagina new.asp
>che conteneva il form per inserire i dati che poi venivano inviati
>alla pagina registrazione.asp. Ora ho messo tutto nella pagina
>new.asp come faccio a dire al form di inviare i dati a se stesso
>e a elaborarli all'interno del codice jscript?
devi impostare nell'action della form la stessa pagina.. se la pagina si chiama new.asp, l'action del tag html form deve essere verso new.asp. Ovviamente in più dovrai gestire un parametro, in get o in post, che discrimina il fatto che è una postback (ovvero una submit a se stessa). Ad esempio puoi indicare nell'action della form qualcosa tipo new.asp?postback=1. Al ricaricamento della pagina, controlli se il parametro postback (con Request.Querystring) vale "1". In caso affermativo gestisci la parte di codice che inserisce.
Questo può essere un esempio..

Alx81 =)

http://blogs.dotnethell.it/suxstellino

aurora Profilo | Newbie

Ok fatto grazie! a parte il solito problemino con la tabella banca
un'altra domanda..... come faccio una volta registrato il nuovo utente a essere reindirizzata su un'altra pagina? Ora ritorna sulla pagina new.asp

aurora Profilo | Newbie

mi sono sbagliata non va questa è la pagina nwe.asp

<%@ LANGUAGE="JScript"%>
<%

nick = Request.Form("nick");
pwd = Request.Form("pwd");
ccid = Request.Form("ccid");

var conn;
var sConString;
var sSQLString;
conn = Server.CreateObject("ADODB.Connection");
sConString = "Provider = Microsoft.Jet.OLEDB.4.0; "
+ "Data Source = " + Server.MapPath("./gesim.mdb");
conn.Mode=3; //1 = adModeRead, 3 = adModeReadWrite
conn.Open(sConString);

var rst, sql;
rst= Server.CreateObject("ADODB.Recordset");


sql = "INSERT INTO usr (nick,pwd,ccid) VALUES ('" + nick + "','" + pwd + "',' + ccid + ')";

conn.Execute(sql);


conn.Close();
rst=null;
conn=null;

%>


<html>
<head>
<meta http-equiv=Content-Type content="text/html; charset=iso-8859-1" />
<link rel="stylesheet" type="text/css" href="style.css" />
<title>
Gestione ricariche - Creazione nuovo utente
</title>
</head>

<body>
<!--#include file="adojavas.inc"-->

<!--#include file="frame_header.html"-->


<form action="new.asp?postback=1" method="POST">

<table align="center" border=2>

<TR> <TD><H5> Nickname </H5></TD>
<TD> <input type=text name=nick> </TD>

<TR> <TD><H5> Password </H5></TD>
<TD> <input type=text name=pwd> </TD>


<TR> <TD><H5> Numero Conto Corrente </H5></TD>
<TD> <input type=text name=ccid></TD>
</table>


<input type="submit" value=Crea>
<input type="reset" value=Cancella>

</form>

<!--#include file="frame_footer.html"-->
</body>
</html>

e questo è l'errore:
Microsoft JET Database Engine error '80040e07'

Tipi di dati non corrispondenti nell'espressione criterio.

new.asp, line 23

alx_81 Profilo | Guru

>mi sono sbagliata non va questa è la pagina nwe.asp

hai provato a rimuovere gli apici dal ccid?
Alx81 =)

http://blogs.dotnethell.it/suxstellino

aurora Profilo | Newbie

si mi da
errore di sintassi (operatore mancante)

alx_81 Profilo | Guru

>si mi da
>errore di sintassi (operatore mancante)
è ancora la insert errata..
ristampa e controlla.. magari posta la response.write..

Alx81 =)

http://blogs.dotnethell.it/suxstellino

aurora Profilo | Newbie

La response.write da:

INSERT INTO usr (nick,pwd,ccid) VALUES ('paolo','rossi','1234')
sembra corretta sono i dati che ho inserito io.....forse sbaglio qualcosa nel passare il campo ccid che è numerico

alx_81 Profilo | Guru

>La response.write da:
>
>INSERT INTO usr (nick,pwd,ccid) VALUES ('paolo','rossi','1234')
>sembra corretta sono i dati che ho inserito io.....forse sbaglio
>qualcosa nel passare il campo ccid che è numerico
Ho provato a fare il db, ho provato a lanciare la query, ma funziona tutto..
non so che dire.. se la response.write è corretta.. quell'istruzione funziona..
se vuoi provare a passarmi il file mdb..
non c'è nulla di male in quello che scrivi.. Avevo pensato alle doppie apici al posto delle singole.. ma funziona lo stesso anche così..
l'errore "operatore mancante" te lo dà perchè non riesce a parsare la query, quindi ti ritorna un errore di sintassi.. sinceramente più di così non so cosa dirti.. prova a passarmi il database e la pagina asp.. vedo che posso fare.. ok?

Alx81 =)

http://blogs.dotnethell.it/suxstellino

aurora Profilo | Newbie

Ok grazie mille. Ho allegato la pagina e il db

alx_81 Profilo | Guru

>Ok grazie mille. Ho allegato la pagina e il db
Dunque.. ho alcune perplessità..
Il codice che mi hai mandato, è errato nei seguenti punti:

// Versione Errata sql = "INSERT INTO usr (nick,pwd,ccid) VALUES ('" + nick + "','" + pwd + "',' + ccid + ')"; // Devi rimuovere le apici singole per i numerici, non le doppie.. // Versione Corretta sql = "INSERT INTO usr (nick,pwd,ccid) VALUES ('" + nick + "','" + pwd + "'," + ccid + ")";

Questa pagina non partirà mai, poichè non fai il controllo che il parametro di postback sia valorizzato.
Devi mettere all'inizio del tuo jscript, il controllo sul valore di quel parametro, controllando con:

If (Request.Queristring("postback") == "1")
{
//fai l'insert
}

Poi, le include di adojavas.inc va fatta in testa a tutto, altrimenti non puoi usare le costanti..
Infine, non gestisci la banca.. non l'hai messa nella pagina mandata oppure devi ancora implementarla???
ciao!
Alx81 =)

http://blogs.dotnethell.it/suxstellino

aurora Profilo | Newbie

Ho fatto le correzzioni che m'hai suggerito:

<%@ LANGUAGE="JScript"%>
<%
<!--#include file="adojavas.inc"-->

nick = Request.Form("nick");
pwd = Request.Form("pwd");
ccid = Request.Form("ccid");

var conn;
var sConString;
var sSQLString;
conn = Server.CreateObject("ADODB.Connection");
sConString = "Provider = Microsoft.Jet.OLEDB.4.0; "
+ "Data Source = " + Server.MapPath("./gesim.mdb");
conn.Mode=3; //1 = adModeRead, 3 = adModeReadWrite
conn.Open(sConString);

var rst, sql;
rst= Server.CreateObject("ADODB.Recordset");

if (RequestQuerystring ("postback") == "1")
{
sql = "INSERT INTO usr (nick,pwd,ccid) VALUES ('" + nick + "','" + pwd + "'," + ccid + ")";

conn.Execute(sql);
}

conn.Close();
rst=null;
conn=null;

%>


<html>
<head>
<meta http-equiv=Content-Type content="text/html; charset=iso-8859-1" />
<link rel="stylesheet" type="text/css" href="style.css" />
<title>
Gestione ricariche - Creazione nuovo utente
</title>
</head>

<body>
<!--#include file="frame_header.html"-->


<form action="new.asp?postback=1" method="POST">

<table align="center" border=2>

<TR> <TD><H5> Nickname </H5></TD>
<TD> <input type=text name=nick> </TD>

<TR> <TD><H5> Password </H5></TD>
<TD> <input type=text name=pwd> </TD>


<TR> <TD><H5> Numero Conto Corrente </H5></TD>
<TD> <input type=text name=ccid></TD>
</table>


<input type="submit" value=Crea>
<input type="reset" value=Cancella>

</form>

<!--#include file="frame_footer.html"-->




</body>
</html>

ma da sempre lo stesso errore

Microsoft JET Database Engine error '80004005'

Impossibile aggiungere o modificare il record. Nella tabella "banca" è necessario un record correlato.

new.asp, line 28

alx_81 Profilo | Guru

>Ho fatto le correzzioni che m'hai suggerito:
>ma da sempre lo stesso errore
>
>Microsoft JET Database Engine error '80004005'
>
>Impossibile aggiungere o modificare il record. Nella tabella
>"banca" è necessario un record correlato.
>
>new.asp, line 28
>
aurora, forse non mi stai seguendo molto..
come torno a scrivere, devi prima inserire il record nella banca.. perchè hai la relazione..
tu puoi preparare la pagina per inserire l'utente e puoi memorizzarti i dati.. ma nel codice, devi comunque prima inserire fisicamente sul db la banca.. cosa c'è che non è chiaro?
o cambi la relazione e definisci che può esistere un utente senza il suo conto oppure devi prima inserire il conto.. non scappi..
sinceramente credevo che avessimo chiarito questo problema alcuni post fa
Dai che ci arriviamo in fondo!
Alx81 =)

http://blogs.dotnethell.it/suxstellino

aurora Profilo | Newbie

sei stato chiarissimo ma ora non funziona neanche se uso un conto già presente

aurora Profilo | Newbie

Domanda: inserisco i dati nel form della pagina new e poi quando clicco su crea come faccio ad aprire anche solo una finestra (tipo popup) per l'inseriemento del nuemro conto e importo? o è meglio usare una pagina invece di una finestra?

alx_81 Profilo | Guru

>Domanda: inserisco i dati nel form della pagina new e poi quando
>clicco su crea come faccio ad aprire anche solo una finestra
>(tipo popup) per l'inseriemento del nuemro conto e importo? o
>è meglio usare una pagina invece di una finestra?
non puoi farlo nella stessa? a mio avviso sarebbe più carino..
comunque, se popoli la tabella banca funziona.. e funziona anche se provi ad inserire un utente con un conto già esistente..

Alx81 =)

http://blogs.dotnethell.it/suxstellino

aurora Profilo | Newbie

Ok, io ho pensato: quando clicco il pulsante crea dopo aver inserito i dati apro un altro form e chiedo numero conto e importo. Potrebbe andare? Solo che posso inserire un form prima della stringa sql nel codice JScript?

alx_81 Profilo | Guru

>Ok, io ho pensato: quando clicco il pulsante crea dopo aver inserito
>i dati apro un altro form e chiedo numero conto e importo. Potrebbe
>andare? Solo che posso inserire un form prima della stringa sql
>nel codice JScript?
no, non puoi.. perchè quello è codice lato server.. e viene eseguito prima che tu veda la pagina caricata sul server..
Al max, quello che serve a te è un bottone che fa partire un popup in javascript (lato client), qualcosa tipo:

<input type="button" value="conto" onclick="javascript: window.open('InsConto.asp');">

allora la pagina sotto continua a rimanere.. e si apre un popup in cui fai l'inserimento del conto. Una volta terminato chiudi la finestra, e, tornato nella pagina di partenza premi l'inserimento finale..

Alx81 =)

http://blogs.dotnethell.it/suxstellino

aurora Profilo | Newbie

ok provo e ti faccio sapere
garzie per l'aiuto

aurora Profilo | Newbie

Non si potrebbe fare in modo che si apra un popup senza aggiungere un nuovo bottone? Perchè nelle specifiche che ha conseganto il docente la pagina per la creazione di un nuovo utente prevede solo un pulsante crea utente e un pulsante cancella

alx_81 Profilo | Guru

>Non si potrebbe fare in modo che si apra un popup senza aggiungere
>un nuovo bottone? Perchè nelle specifiche che ha conseganto il
>docente la pagina per la creazione di un nuovo utente prevede
>solo un pulsante crea utente e un pulsante cancella
allora crea dinamicamente il conto..

Alx81 =)

http://blogs.dotnethell.it/suxstellino

aurora Profilo | Newbie

cioè?

non ci sto capendo più neinte

aurora Profilo | Newbie

Finalmente dopo 2 giorni che sono diventata pazza epr capire come fare il docente ha risp alla mail!
La tabella banca è fissa non posso aggiungere record posso solo modificare l'importo, così almeno un problema è risolto

alx_81 Profilo | Guru

>Finalmente dopo 2 giorni che sono diventata pazza epr capire
>come fare il docente ha risp alla mail!
>La tabella banca è fissa non posso aggiungere record posso solo
>modificare l'importo, così almeno un problema è risolto
Ok.. A rigor di logica, quando inserisci l'utente, fai mettere anche il valore dell'importo da "modificare" nel conto.
Allora fai prima l'inserimento dell'utente e poi l'aggiornamento sul conto..

Alx81 =)

http://blogs.dotnethell.it/suxstellino

aurora Profilo | Newbie

Ho creato una pagina per effettuare il login e ho inserito il seguente codice:

<%@ LANGUAGE="JScript"%>
<%
<!--#include file="adojavas.inc"-->

nick = Request.Form("nick");
pwd = Request.Form("pwd");

var conn;
var sConString;
var sSQLString;
conn = Server.CreateObject("ADODB.Connection");
sConString = "Provider = Microsoft.Jet.OLEDB.4.0; "
+ "Data Source = " + Server.MapPath("./gesim.mdb");
conn.Mode=3; //1 = adModeRead, 3 = adModeReadWrite
conn.Open(sConString);

var rst, sql;
rst = Server.CreateObject("ADODB.Recordset");
sql = "SELECT nick,pwd FROM usr";

/* salvo i risultati della "query" in un oggetto RecordSet */

rst.Open(sql, conn, 0, 3); //0 = adOpenForwardOnly, 3 = AdLockReadOnly

var operatore, numero,credito,i=0;
var codicetabella = "", vettoreoperatore = "", vettorenumero = "", vettorecredito = "";
var varName;
rst.movefirst();

/* itero tra i risultati della "query" */

while (!rst.eof)

{

nickname = rst.fields("nick").value;
password = rst.fields("pwd").value;


if (nickname == nick)
{
if (password == pwd)
{
window.alert("Utente registrato!");
}
else
{
window.alert("Password errata!");
}
}
else
{
window.alert("Nickname errato!");
}


vettoreoperatore += "vett_operatore[" + i + "]=\"" + operatore + "\";";
vettorenumero += "vett_numero[" + i + "]=\"" + numero + "\";";
vettorecredito += "vett_credito[" + i + "]=\"" + credito + "\";";
rst.movenext();
i++;

}
rst.Close()
conn.Close();
rst = null;
conn = null;

%>

e mi da il seguente errore sull'ultimo window.alert del ciclo if mentre sugli altri no:

Errore di run-time di Microsoft JScript error '800a1391'

'window' non è definito

login.asp, line 53

alx_81 Profilo | Guru

>Ho creato una pagina per effettuare il login e ho inserito il
>seguente codice:
>...
>e mi da il seguente errore sull'ultimo window.alert del ciclo
>if mentre sugli altri no:
>
>Errore di run-time di Microsoft JScript error '800a1391'
>
>'window' non è definito
>
>login.asp, line 53
Il fatto che te lo dia sull'ultimo è perchè probabilmente il primo if non si verifica, quindi va a parare sull'ultima istruzione di else, quella più esterna..
Poi, attenzione, stiamo parlando di codice lato server!!! Gira sul server, quindi non puoi pensare di far funzionare un alert di quel tipo..
utilizza piuttosto Response.Write..
Ti consiglio a questo punto, di studiarti bene l'architettura delle applicazioni web, altrimenti rischi di avere troppe lacune per riuscire ad ottenere un risultato buono.. poi vedi tu.. comprati qualche libro che ti spiega l'architettura, leggi MSDN su internet.. Vedrai che ti sarà utile..
Alx81 =)

http://blogs.dotnethell.it/suxstellino

aurora Profilo | Newbie

come procedura per verificare se nick e password sono giusti per effettuare il login è corretta?

alx_81 Profilo | Guru

>come procedura per verificare se nick e password sono giusti
>per effettuare il login è corretta?
Ce ne sono vari di modi.. tu devi controllare se l'utente ha messo i dati corretti, quindi dovresti fare la select mirata per username e password. Se ti torna una riga è ok.. altrimenti non è un utente valido..
Però, come ti ho già detto sulla prima risposta.. impara ad usare le query parametriche per evitare le spiacevoli sorprese che il SQL Injection può fare..
Alx81 =)

http://blogs.dotnethell.it/suxstellino
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2025
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5