Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 18
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2007
    Messaggi
    260

    interazione flash asp access

    ciao a tutti ho creato il mio form di registrazione per l'accesso ad un'area protetta del sito, riesco ad inviare i dati al database, ma ho riscontrato un piccolo problemino...
    in asp riesco a fare il controllo sul database se ad esempio lo username inserito è gia esistente...ma con flash?
    come posso evitare che l'utente finisca di compilare il form, prema invio per poi trovarsi in un altro frame con scritto spiacenti lo username inserito risulta essere gia presente....RICOMPILA TUTTO IL FORM!!!!
    Esiste un modo per controllare onfly la presenza dei dati sul database in modo che l'utente possa cambiare la user scelta prima di schiacciare il tasto invia?oppure se non esistono soluzioni, qualcosa tipo "javascript:history.back();" in modo tale da non perdere tutti i campi gia compilati ma andare a cambiare solo i campi in errore?
    Grazie mille!

  2. #2
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    no, non c'è
    a meno di caricare tutti i dati che ci sono nella tabella degli "user" e verificarli mentre si compila il form, cosa che tra l'altro mi pare rischiosa, seppur l'utente non possa interagire con gli script di flash

    però potresti più semplicemente inviare i dati alla pagina asp e attendere una risposta da quello prima di svuotare i campi e/o fare altre operazioni

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2007
    Messaggi
    260
    quindi posso gestire gli eventi in base a ciò che ricevo da asp?
    se ad esempio errore 1==true mando l'errore alla pagina flash
    se non ricevo nessun errore esegui asp e gotoAndPlay in flash?
    scusa ma è la prima volta che cerco di integrare flash,asp e database!
    grazie ancora!

  4. #4
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    sì, utilizzando la classe "LoadVars" puoi monitorare i due momenti di invio ad asp e ricezione di una risposta, io non ho dimestichezza con ASP, ma in pratica funziona così

    1. invii i dati ad asp
    2. verifichi quello che asp ti ha restituito
    3. esegui delle azioni in base a questo

    riassumibili in questo codice

    Codice PHP:
    var myLV:LoadVars = new LoadVars(); // creo un oggetto LoadVars
    myLV.user user.text// associo alla variabile "user" quello che c'è scritto nel campo di testo "user"
    myLV.pwd pwd.text// associo alla variabile "pwd" quello che c'è scritto nel campo di testo "pwd"
    myLV.sendAndLoad("pagina.asp"myLV"POST"); // il metodo sendAndLoad invia i dati ad ASP e si aspetta una risposta indietro
    // la risposta di asp viene gestita dall'evento onLoad
    myLV.onLoad = function (ok) {
        
    // se il caricamento della risposta è andato a buon fine
        
    if(ok) {
            
    // se la variabile di ritorno "result" equivale ad "ok"
            
    if(myLV.result == "ok") {
                
    // eseguo le azioni di conferma scrittura
            
    } else {
                
    // qui posso inserire un altro if...else che verifichi il tipo di errore restituito da asp e agire di conseguenza
            
    }
        } else {
            
    // azioni se non c'è stata risposta dal server
        
    }

    la premessa rispetto al codice è che ASP dopo le sue routine del codice, scriva una variabile di risposta in formato "querystring" del tipo
    nome_variabile=contenuto_della_variabile
    nel tuo caso dovrai restituire
    result=ok& (nota il carattere & inserito alla fine, evita che la variabile result si trascini uno spazio dopo il valore della varabile)
    oppure in caso di errore
    result=1 (che potrebbe costituire errore di duplicazione dell'utente)

    approfondimenti:

    http://forum.html.it/forum/showthrea...hreadid=457946 (Flash+PHP ma la sostanza in flash non cambia)
    http://flash.html.it/guide/lezione/2940/loadvars/

  5. #5
    Utente di HTML.it
    Registrato dal
    Mar 2007
    Messaggi
    260
    grazie provo e ti faccio sapere

  6. #6
    Utente di HTML.it
    Registrato dal
    Mar 2007
    Messaggi
    260
    niente...non riesco...

    la mia pagina asp(solo per il controllo dello user che in questo caso è il campo email perchè coincidono)

    codice:
    <%
    
    dim email
    email=Request.form("email_txt")
    
    Dim Conn 
    Dim Rs
    Dim SQL
    
    case1="ok"
    case2="1"
    
    Set Conn = Server.CreateObject("ADODB.Connection") 
    conn.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & server.MapPath("/mdb-database/Dati.mdb") 
    Set Rs = Server.CreateObject("ADODB.Recordset") 
    SQL = "SELECT * from myTable where Email='" & email & "'" 
    rs.open SQL, Conn, 1, 3
    if not Rs.eof then
    Response.Write "result="&case1&"&"
    else
    Response.Write "result="&case2&"&"
    End if
    Rs.close
    conn.close
    set Rs=nothing
    set conn=nothing
    
    %>
    e quello che mi restituisce è result=1&

    il mio form funziona...per modo di dire con questo codice

    codice:
    Selection.setFocus("nome_txt");
    Selection.setSelection(psw_reg_txt, nome_txt);
    
    function controllo() {
    	now = getTimer();
    	
    function checkEmail(email_txt:String):Boolean {
    	
    	if (email_txt.indexOf(" ")>0) {
    		return false;
    	}
    	
    	var emailArray:Array=email_txt.split("@");
    	
    	if (emailArray.length != 2 || emailArray[0].length == 0 || emailArray[1].length ==0) {
    		return false;
    	}
    	
    	var postArray:Array=emailArray[1].split(".");
    	
    	if (postArray.length < 2) {
    		return false;
    	}
    	
    	for (var i:Number=0; i<postArray.length; i++) {
    		if (postArray[i].length < 1) {
    			return false;
    		}
    	}
    	
    	var suffix=postArray[postArray.length-1];
    	
    	if (suffix.length < 2 || suffix.length > 3) {
    		return false;
    	}
    	
    	return true;
    }
    if (email_txt.length > 0) {
    		if (checkEmail(email_txt)) {
    			valemail_txt = true;
    		} else {
    			valemail_txt = false;
    		}
    	}
    
    	
    
    	var myLV:LoadVars = new LoadVars();
    myLV.email_txt = email_txt.text;
    myLV.sendAndLoad("checkmail.asp", myLV, "POST");
    myLV.onLoad = function (ok) {
        if(ok) {
            if(myLV.result == "ok") {
    			return true;
    		} else { 
    			return false;
    		}
    	}
    }	
    
    		if (ok(email_txt)){
    		valemailexist = true;
    		} else {
    		valemailexist = false;
    		}
    
     
    
    
    
             if (conf_email_txt == email_txt) {
    		valconf_email_txt = true;
    	} else {
    		valconf_email_txt = false;
    	}
    
    	if (psw_reg_txt.length > 2) {
    		valpsw_reg_txt = true;
    	} else {
    		valpsw_reg_txt = false;
    	}
    
    	if (conf_psw_reg_txt == psw_reg_txt) {
    		valconf_psw_reg_txt = true;
    	} else {
    		valconf_psw_reg_txt = false;
    	}
    
    	if (valemail_txt & valpsw_reg_txt & valconf_psw_reg_txt & valconf_email_txt & valemailexist ) {
    		
    		loadVariablesNum("http://www.miosito.it/prova/contact.asp", 0, "POST");
    		_root.play();
    		_root.testoasp.text=this.testo;
    		_root.testoasp.play();
    	} else {
    		errore();
    	}
    }
    
    function errore() {
    	if (!valemail_txt) {
    		_root.out = "Inserire una email valida";
    		Selection.setFocus("email_txt");
    	}
    	if (!valpsw_reg_txt) {
    		_root.out = "Inserire una psw valida";
    		Selection.setFocus("psw_reg_txt");
    	}
    	if (!valconf_psw_reg_txt) {
    		_root.out = "i campi psw e confpsw no";
    		Selection.setFocus("conf_psw_reg_txt");
    	}
    	if (!valconf_email_txt) {
    		_root.out = "i campi email e confemail no";
    		Selection.setFocus("conf_email_txt");
    	}
    
    	
    
    	if (!valemailexist) {
    		_root.out = "Lo user risulta essere gia esistente";
    		Selection.setFocus("email_txt");
    	}
    
     
    
    }
    in rosso quello che ho aggiunto per il controllo sull'esistenza dell'email in database
    attendo gentili suggerimenti
    grazie ancora!

  7. #7
    Utente di HTML.it
    Registrato dal
    Mar 2007
    Messaggi
    260
    bene ho capito che non invio nulla alla pagina asp!
    Proprio nessuno ha qualche idea?
    non capisco...se elimino il controllo sull'email i dati dell'email riesco a recuperarli...forse perchè ho usato un secondo file apposito dedicato alla verifica se l'user esiste?dovevo mettere tutto sullo stesso?

  8. #8
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    tutto il meccanismo del codice mi pare abbastanza confuso, vedo un loadVariablesNum che non capisco a cosa serva, e degli if accodati dietro onLoad del LoadVars, funzioni innestate dentro altre funzioni e un onLoad (che è un evento asincrono) che dovrebbe restituire true/false, ma di fatto non serve a nulla rispetto al resto del codice
    se mi fosse proprio chiaro quello che vorresti fare, tenterei di correggere il codice, ma ho molte perplessità

  9. #9
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    aggiungo:

    if (ok(email_txt)) {
    valemailexist = true;
    } else {
    valemailexist = false;
    }

    nel tuo codice non vedo una funzione "ok()"

  10. #10
    Utente di HTML.it
    Registrato dal
    Mar 2007
    Messaggi
    260
    grazie finalmente qualcuno!!!
    certo cerco di spiegarti nella maniera piu chiara possibile, perchè ho la necessità di far funzionare questo diavolo di form altrimenti non riesco ad andare avanti con tutto il resto del progetto in asp...
    So che sicuramente il codice del form è del tutto arrangiato e molto incasinato, ma come si sarà capito, non ne capisco niente di actionscript!!!
    Allora io ho creato il mio form di registrazione e vorrei che riuscissi per primo a fare il controllo su tutti i dati inseriti(come il formato email,che i campi non siano vuoti etc), come seconda cosa deve controllarmi tramite una pagina asp che la mail inserita non risulti essere gia presente nel database e come ultima cosa l'invio di tutti i dati ad una pagina asp che archiverà in un database tutti i dati inviati.
    Anche se magari in maniera poco elegante, il controllo sui campi e l'invio dei dati funziona, stavo provando ad integrare il controllo dell'esistenza della mail in un database ma senza successo...
    spero di essermi spiegato decentemente, se hai bisogno di ulteriori informazioni dimmi pure
    grazie ancora!

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.