Salve a tutti ,ringrazio anticipatamente tutti coloreo che avranno la pazienza di aiutarmi, sto scrivendo una pagina asp coadiuvato da JavaScript, sono alle prime armi e mi sono imbattuto in un problemino che però sono quasi certo riguardi Javascript :
Prima versione del codice (ometto le parti futili)
codice:
<%Session("ricon") = true ;%>
<%var nime = Request.Querystring("user") /*Variabile stringa nome utente richiesta da URL*/%>
<%var pw2 = Request.Querystring("pass") /*Variabile password utente richiesta da URL*/%>
<%var clk1 = Request.Querystring("click") /*VAriabile richiesta o no nuovo account passata da URL*/%>
<%var leg = Session("loggato") /*Variabile stato loggato ottenuta da session*/%>
<%var name = Session("nome")/* variabile nome utente richiesta da session*/ %>
<% var ndb; %>
<% var pww; %>
<% var serdb;%>
....
Creo connection verso database ed estraggo valori ... (funge
...
while (!rst.EOF) { serdb = rst("uid")/*Codice identificativo dati utente estratto da Database*/;
ndb = rst("user")/*nome estratto da DataBase*/;
pww = rst("pwd")/*pw estratto da DataBase*/;
rst.MoveNext( ); /*Tale script estrae i dati dal recordset*/
}; %>
.....
Qui i problemi :
....
<% if (clk1 =="on"){ if(ndb == null){ leg = "log";/*Se l'utente si dichiara nuovo ed il nome scelto é diverso da quelli già registrati vengono settate le variabili di session e il suo stato passa a loggato */
Session("loggato")="log";
Session("nome")= nime ; /*non mi permette di fare questo segnalando errore :Impossibile memorizzare in un oggetto Session un oggetto intrinseco. ???? */
var serdb ;
Session("uid")=serdb ;/*ne deve essere assegnato uno nuovo -....*/
/*manca la parte di registrazione dati in DB*/
Response.write("é stata effettuata la registrazione");
} else{Response.write("Il nome scelto per il nuovo account é gia esistente, si prega di rifare il login scegliendo un nuovo nome utente")};
}
if (clk1 =="off"){ if(ndb == null){ Response.write(" Il nome indicato non corrisponde ad utenti già registrati, controllare la correttezza dei dati inseriti o registrare un nuovo account. ")
} else{
Response.write("Controllo PW
");
Response.write("nome estratto da DB "+ndb+"
");
Response.write("estratta da DB "+pww+"
");/*questi passi sono di prova e pare che i valori assegnati prima a queste variabili qui non siano considerati e non capisco perché*/
if(pww == pw2){Response.write("Accesso Effettuato")}else{Response.write("Password ERRATA")};/*NON FUNGE inqunto é come se dentro l'if il valore della variabile creata all'inizio non esistesse*/
}
}%>
stampando i dati(inserendo opportuni controlli) questi appaiono o per lo meno appena dopo l'estrazione , ecco il problema reale :
le variabili impiegate vengono create all'inizio del documento , poi dopo l'estrazione dei dati da DB , gli vengono assegnati i valori impiegando un ciclo While (le vatiabili sono 3 , ID PW ed un codice aggiuntivo funzionale alla gestione dei dati );
Dopo l'estrazione i valori vengono confrontati con quelli passati dall'utente mediante Get da un'alta pagina contenuti in altre variabili mediante unu alberello di IF annidati;
Il problema a dir poco banale, ma che mi sta dando problemi,é che queste variabili mi vengono riconosciute e considerate al di fuori e nel primo IF usato per i controlli, ma in quelli annidati sotto il primo no ... .