Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 19
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2007
    Messaggi
    473

    variabile da javascript ad asp

    Ciao a tutti, ho un modulo di registrazione con username e password, quando inserisco un username già esistente lo deve segnalare,

    il codice javascript è il seguente:
    -ho richiamato in asp una funzione che mi carica l'array con tutti gli username
    -funzione ControllaDatiCliente che si esguira ogni volta che cambia la text username
    codice:
    <script type="text/javascript">
    
    <%
    
    	
    	dim user_c, arr(), w
    	
    	i=0
    	
    	redim arr(i)
    	percorso="Provider = Microsoft.Jet.OLEDB.4.0; Data Source=" & Server.MapPath("public/mdb-database/db.mdb") & ";"
    	Set objConn = Server.CreateObject("ADODB.Connection")
    	objConn.Open(percorso)
    	Set objRs = Server.CreateObject("ADODB.Recordset")
    			
    	query="SELECT CLIENTI.username FROM CLIENTI;"
    	
    	set objRs = objConn.Execute(query)
    		
    		Do While not objRs.EOF
    			
    				i=i+1	
    				user_c=objRs("username")
    			
    				redim preserve arr(i)
    				arr(i)=user_c
    				
    			objRs.Movenext
    			
    		Loop
    		
    					
    	objRs.Close
    	Set objRs = Nothing
    	objConn.Close
    	Set objConn = Nothing
    
    
    	percorso="Provider = Microsoft.Jet.OLEDB.4.0; Data Source=" & Server.MapPath("public/mdb-database/db.mdb") & ";"
    	Set objConn = Server.CreateObject("ADODB.Connection")
    	objConn.Open(percorso)
    	Set objRs = Server.CreateObject("ADODB.Recordset")
    			
    	query="SELECT RIVENDITORI.username FROM RIVENDITORI;"
    	
    	set objRs = objConn.Execute(query)
    		
    		Do While not objRs.EOF
    			
    				i=i+1
    				user_c=objRs("username")
    				
    				redim preserve arr(i)
    				arr(i)=user_c
    				
    			objRs.Movenext
    			
    		Loop
    		
    					
    	objRs.Close
    	Set objRs = Nothing
    	objConn.Close
    	Set objConn = Nothing
    	
    
    %>
    
    
    
    function ControllaDatiCliente()
    {
    
    var usr = document['f1'].username.value;
    
    <%
    	
    	usr=%>usr<%
    	
    	%>
    		alert(<% response.Write(usr) %>)
    	<%
    	
    	for w= 1 to i
    	
    		if arr(w)=usr then
    			%>alert ("Username già esistente")<%
    		exit for
    		end if
    	next
    %>
    
    
    
    }
    </script>
    mentre nel mio form ho:

    codice:
    <input type="text" name="username" size="20" onChange="javascript:ControllaDatiCliente()" />
    Il problema è segnato in rosso, non riesco a far passare la variabile javascript in asp, premetto che la variabile in javascript funziona, perche se la stampo compare lo username che scrivo nella text!

    Grazie!


  2. #2
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Il javascript viene eseguito sul client dopo che l'ASP e' stato gia' elaborato sul server e la pagina arriva al client.

    Rivedi il flusso dei dati / operazioni e valuta l'opportunita' di utilizzare AJAX

    ciao
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2007
    Messaggi
    473
    ciao br1, la mia intenzione era quella di caricare in un array tutti gli username, cosi ogni volta che scrivo un username il controllo viene fatto sull'array cosicchè non mi conne3tto ogni volta al db... purtroppo non conosco bene javascript e mi arrangio, potresti aiutarmi?
    Come faccio a tradurre il tutto in javascript?

    Grazie!

  4. #4
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Se carichi tutti gli username in un array e lo spedisci al client dimezzi il lavoro degli hacker... devono solo trovare le eventuali password.

    Inoltre spedisci ogni volta qualche (pochi? tanti? dipende ) k di dati ridondanti al browser, appesantendo la rete e caricando inutilmente server e browser.

    Ti posto un esempio minimo in ajax: devi aggiungere una pagina lato server che esegua la verifica della presenza/asssenza dell'utente nel db e restituisca un semplice "OK" o qualcos'altro a seconda dei casi
    codice:
    <script type="text/javascript">
    function createXMLHttp() {
    	var xmlhttp ;
    	try {
    		xmlhttp = new XMLHttpRequest(); // Gecko (Firefox, Moz), KHTML (Konqueror, Safari), Opera, Internet Explorer 7
    	} catch (e) {
    		var MSXML_XMLHTTP_PROGIDS = new Array(
    			'MSXML2.XMLHTTP.5.0',  
    			'MSXML2.XMLHTTP.4.0',
    			'MSXML2.XMLHTTP.3.0',
    			'MSXML2.XMLHTTP',	  // Internet Explorer 6
    			'Microsoft.XMLHTTP'   // Internet Explorer 4,5
    		);
    		var success = false;
    		for (var i=0;i < MSXML_XMLHTTP_PROGIDS.length && !success; i++) {
    			try {
    				xmlhttp = new  ActiveXObject(MSXML_XMLHTTP_PROGIDS[i]);
    				success = true;
    			} catch (e) {}
    		}
    		if ( !success ) {
    			alert('Cant create XMLHttpRequest - not supported');
    		}
    	}
    	return xmlhttp;
    }
    
    var xmlHttpTesto="";
    
    function getText(qry) {
    	xmlHttpTesto="";
    	var xmlHttpObj = null;
    	xmlHttpObj=createXMLHttp();
    	xmlHttpObj.open('get', qry, false); // false=sincrono
    	xmlHttpObj.onreadystatechange = function() {
    		if (xmlHttpObj.readyState == 4) {
    			if (xmlHttpObj.status==200 || xmlHttpObj.status==304) {
    				xmlHttpTesto = xmlHttpObj.responseText;
    			} else { alert("connessione perduta - ricaricare la pagina"); return; }
    		}
    		
    	}		  
    	xmlHttpObj.send(null); 
    	delete xmlHttpObj;
    }
    
    function verifica(s) {
    	getText('verificautente.asp?ut='+s)
    	if (xmlHttpTesto!="") {
    		if (xmlHttpTesto!="OK") {
    			alert("Nome Utente gia' Usato");
    		}
    	}
    }
    </script>
    </head><body>
    
    ....		
    		
    <input type="text" size="15" name="utente" value="" onblur="verifica(this.value)">
    ciao
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

  5. #5
    Utente di HTML.it
    Registrato dal
    Nov 2007
    Messaggi
    473
    Grazie, ora mi metto al lavoro e lo provo!!!

    ti farò sapere!!

  6. #6
    Utente di HTML.it
    Registrato dal
    Nov 2007
    Messaggi
    473
    Scusa ancora una cosa,

    ho visto che fai un if con xmlHttpTesto, ma xmlHttpTesto cos'è? un text che creo nel file asp che si chiama xmlHttpTesto oppure cosa?

    Grazie!

  7. #7
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Una variabile globale js di comodo... per passare il valore di ritorno (metodo brutale )

    var xmlHttpTesto="";


    ciao

    Edit: lato server devi solo restituire una stringa, non un'intera pagina... questa stringa dovra' essere "OK" o qualsiasi altra cosa se il controllo non va a buon fine
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

  8. #8
    Utente di HTML.it
    Registrato dal
    Nov 2007
    Messaggi
    473
    ciao ho creato la pagina asp e in fondo alla pagina (dopo i controlli) ho inserito il seguente codice

    codice:
    if ctl=true then
    	
    	%>
        
        <script type="text/javascript">
    	var xmlHttpTesto="<% response.Write("OK") %>";
    	</script>
        
    	<%
    	else
    	%>
    	
        <script type="text/javascript">
    	var xmlHttpTesto="<% response.Write("NO") %>";
    	</script>
        
        
    	<%
    	
    end if
    provo a scrivere un username esistene e uno nuovo, ma non succede nulla

  9. #9
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Facendo cosi dovresti risolvere:
    codice:
    <%
    if ctl=true then
    response.Write("OK") 
    else
    response.Write("NO") 
    end if
    %>
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  10. #10
    Utente di HTML.it
    Registrato dal
    Nov 2007
    Messaggi
    473
    ciao,
    ho fatto questa prova, carico solo la pagina verificautente sul browser, e gli passo l'user io dalla barra degli indirizzi, esempio:
    http://localhost/sito/verificautente.asp?ut=androita

    ho messo un alert della variabile xmlHttpTesto, nel mio db ce l'utente androita e compare alert NO, mentre se scrivo qualsiasi altro utente, compare OK

    percio penso che la parte asp funzioni correttamente, mentre se provo la pagina dove scrivo dentro la text l'user, con explorer mi compare sempre nome utente gia' usato anche se scrivo un username nuovo, mentre con firefox non compare niente!!!!



    non è che per caso lo script non è compatibile con tutti i browser????

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.