Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2006
    Messaggi
    250

    Forse problema di confronto stinghe o forse di if...????

    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 ... .
    Evander

  2. #2
    Utente di HTML.it
    Registrato dal
    Mar 2006
    Messaggi
    250

    evoluzione

    Ho creato una seconda versione del codice "rivoltando il calzino " ma non migliorano le cose :
    codice:
    if(ndb == null)  
    {
    	if(clk1 =="on")
    	{
    		leg = "log";
    		Session("loggato")="log";
                    Session("nome")= nime;
                    Response.write("é stata effettuata la registrazione");
            }
            else //clk1 può essere solo ON o OFF
            {
            	Response.write(" Il nome indicato non corrisponde ad utenti già registrati,controllare la correttezza dei dati inseriti o registrare un nuovo account.");
    	}
    }
    else
    {
    	if(clk1 =="on")
    	{
    	  	Response.write("Il nome scelto per il nuovo account é gia esistente,si prega di rifare il login scegliendo un nuovo nome utente");
    	}
    	else
    	{
    		Response.write("Controllo PW
    ");
    		Response.write("nome estratto da DB "+ndb+"
    ");
                    Response.write("estratta da DB"+pww+"
    ");
                    if(pww.equals(pw2)) 
    		{
    			Response.write("Accesso Effettuato");
    		}
    		else
    		{
    		       	Response.write("Password ERRATA");
                    }
            }
    }
    Il metodo Equals é invocabile come in Java per confrontare 2 variabili che contengono 2 stringhe (problema relativo al confronto delle variabili pww epw2)?in alternativa cosa posso fare?

    Perché i valori contenuti nelle variabili "globali" dichiarate prima della "cascata di if" fuori da questa vengono stampate a video inserisco opportuni comandi mentre se sposto questi stessi all'interno degli if non vengono "trovati" (le variabli sembrano aver perso il valore contenuto, come se fosero vuote)?

    Grazie Ancora
    Evander

  3. #3
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    1. Io non ho capito dove l'errore
    2. Di javascript (lato-client) neanche l'ombra
    3. Se vuoi continuare a programmare in ASP abbandona jscript e passa vbscript
    4. Difficilmente troverai risposte in questo forum 1° perche non tutti conosco i linguaggi lato-server 2° perche è un linguaggio obsoleto
    5. Postatta tutta la pagina
    6. Cosa sarebbe? O cosa dovrebbe fare?
    7. Se vuoi velocizzare chiedi ad un mod di essere spostato in ASP

    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  4. #4
    Utente di HTML.it
    Registrato dal
    Mar 2006
    Messaggi
    250

    ...

    Ciao ,innanzi tutto Grazie per avermi concesso la tua attenzione ,
    il fatto è questo :
    Per vari motivi da me non dipendenti sono obbligato ad impiegare ASP e JavaScript senza poter variare tale binomio, solitamente ASP viene impiegato con VBS e pertanto probabilmente sono un’eccezione ma…
    Il problema in cui sono inciampato sono certo riguardi JS; ho già potato il problema sulla sezione riguardante ASP, ma benché coloro che hanno risposto prestandomi pazienza e attenzione si siano rivelati inequivocabilmente dei GRANDI e degni di stima, non sono riuscito a risolvere il problema, quindi speravo di trovare qualche opinione qui ; ribadisco di esser un neofita.

    Lo script sopra dovrebbe controllare 3 cose fondamentalmente (è un log in diciamo) :

    -premetto che le variabili impiegate contengono stringhe e in particolare che

    nime – contiene una stringa con l’ID segnalato dall’utente
    pw2 – contiene la PW segnalata dall’utente
    clik – puo contenere solo 2 valori, “on” e “off” che indicano se l’utente richiede un nuovo account o è un vecchio utente già registrato
    ndb – contiene il nome dell’utente se trovato ed estratto dal database (quindi o null o uguale a nime)
    pww – contiene la password correlata a “name” estratta da database

    - la cascata di IF (dove è presente il problema) , faccio riferimento alla 2* versione del codice:

    controlla se “ndb” è vuota se cosi è significa che non è stato trovato in DB il nome specificato dall’utente quindi controlla la variabile clik , se clik == “on” allora l’utente è nuovo e poiché non esistono utenti già registrati con quel nome effettua la registrazione(questa parte non è preente nel codice in quanto riguarda ASP ed SQL )
    se invece clik non è uguale a on (è per forza uguale a off) l’utente è un utente vecchi ma poiché il nome non è stato trovato in DB vuol dire che ha inserito un username scorretto.

    Se (else) ndb non contiene il valore “null” vuol dire che il nome specificato dall’utente è già esistente e quindi se clik è “on”(richiesta di nuovo account) la registrazione non potrà essere effettuata, se clik non è uguale a on (quindi off) si procede alla verifica della password poiché l’utente è già registrato ed il nome specificato è presente in DB, se la stringa contenuta in pw2 è uguale a quella contenuta in pww allora all’utente saranno visualizzate determinate cose (non presenti nel codice al momento) .
    Evander

  5. #5
    Utente di HTML.it
    Registrato dal
    Mar 2006
    Messaggi
    250

    ...

    Ciò che ho scritto sopra è quello che dovrebbe fare ma ..non fa…

    Il problema ridotto ai minimi termini è :
    il confronto tra le 2 stringhe contenute in pw2 e pww (pw2==pww) non viene eseguito … dove sbaglio ? il metodo “equals” come in Java non è invocabile vero? Come posso fare ?

    Dichiaro le variabili e gli assegno valori prima della cascata di if , il fatto è che se per verifica ne stampo i valori fuori dalla cascata questi vengono visualizzati , ma e lo faccio all’interno (parlo per esemio di nime o name o pw2 ecc) queste variabili sembrano essersi improvvisamente “svuotate”…perché?
    (tali problemi non dipendono da ASP )
    Grazie ancora per l’attenzione.
    Ciao

    Evander

  6. #6
    Utente di HTML.it
    Registrato dal
    Mar 2006
    Messaggi
    250

    Ho risolto

    Salve a tutti ,
    Ho risolto il problema e se dovesse interessare ho postato larelativa soluzione sotto la sezione ASP inquanto non impiega Javascript o meglio evita di impiegare parte del codice sopra postato mediante altre soluzioni estranee a JS

    Grazie cmq . A presto
    Evander

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.