Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    Problemone con array e mail form in flash

    Sto cercando di costruire un mail form usando la guida su come costruire un sito flash scritta da Negatyve.

    Nella parte dedicata al form mail, quando si passa all'action script per controllare la correttezza dei dati inseriti c'è un pezzo che serve a controllare che l'utente nel compilare la voce e-mail non abbia usato caratteri non consentiti:


    if (!errore) {
    caratteri = new Array(contenuto2);
    for (i=0; i<caratteri.length; i++) {
    if (mail.indexOf(caratteri[i])>=0) {
    errore = true;
    err = 1;
    }
    }
    }

    Citando Negatyve: "Superato il primo controllo (if(!errore) significa se la variabile errore è ancora falsa), viene definito un array di caratteri che non possono essere contenuti in un indirizzo email. Quindi, per tutti i caratteri della lunghezza dell'array (for (i=0; i<caratteri.length; i++)) viene controllato se uno di questi caratteri è stato scritto nel campo email."

    PROBLEMA: Se io volessi fare l'esatto contrario, ovvero creare un array con i caratteri CONSENTITI e fare in modo che flash rilevi un errore se trova qualche carattere diverso da quelli inseriti nell'array rilevi l'errore, che codice devo inserire?

    OPPURE: Non è che qualcuno mi può fornire una lista dei caratteri non consentiti in un indirizzo email (magari sotto forma di array)?

    Grazie,

    Lorenzo

  2. #2
    Utente di HTML.it L'avatar di negatyve
    Registrato dal
    Feb 2001
    Messaggi
    9,479
    Invece che:

    codice:
    if (!errore) { 
    	caratteri = new Array(contenuto2); 
    	for (var i = 0; i < caratteri.length; i++) { 
    		if (mail.indexOf(caratteri[i]) >= 0) { 
    			errore = true; 
    			err = 1; 
    		} 
    	} 
    }
    usa:

    codice:
    if (!errore) { 
    	caratteri = new Array(contenuto2); 
    	for (var i = 0; i < caratteri.length; i++) { 
    		if (mail.indexOf(caratteri[i]) == -1) {
    			errore = true;
    			err = 1;
    		} 
    	} 
    }

  3. #3
    Grazie diecimila, sia per questa spiegazione sia per il tuo lavoro sul sito. Di flash ed actionscript non ci capisco molto, ma grazie ai tutorial tuoi e di altri sul sito mi si sta accendendo qualche lampadina in più nel cranio.

    A proposito, questo è il codice che ho creato:

    out = "";
    destinatario = "Lorenzo";
    soggetto = oggetto;
    function convalida() {
    errori = new Array('Inserire nome', 'Inserire cognome', 'Indirizzo e-mail non valido', "Inserire oggetto dell'e-mail", "Inserire testo dell'e-mail");
    err = 0;
    count = 0;
    errore = false;
    if (nome == "" ||nome == undefined) {
    errore = true;
    err = 0;
    }
    if (cognome == "" || cognome == undefined) {
    errore = true;
    err = 1;
    }
    if (!errore) {
    caratteri = new Array('1', '2', '3', '4', '5', '6', '7', '8', '9', '0', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '.', '_', '@');
    for (var i = 0; i<caratteri.length; i++) {
    if (mail.indexOf(caratteri[i]) == -1) {
    errore = true;
    err = 1;
    }
    }
    }
    if (!errore) {
    for (i=0; i<email.length; i++) {
    if (email.charAt(i) == "@") {
    count++;
    }
    }
    if (count != 1) {
    errore = true;
    err = 2;
    }
    }
    if (!errore) {
    dividi = email.split("@");
    if (dividi[0].length<1) {
    errore = true;
    err = 2;
    }
    if (dividi[1].indexOf(".")<0) {
    errore = true;
    err = 2;
    } else {
    dominio = dividi[1].split(".");
    if (dominio[0].length<2) {
    errore = true;
    err = 2;
    }
    if (dominio[1].length<2) {
    errore = true;
    err = 2;
    }
    }
    }
    if (!errore) {
    if (oggetto == "" || oggetto == undefined) {
    errore = true;
    err = 3;
    }
    }
    if (!errore) {
    if (testo == "" || testo == undefined) {
    errore = true;
    err = 4;
    }
    }
    out = "";
    if (!errore) {
    LoadVars.send("form.php", POST);
    out = "Messaggio inviato correttamente!";
    } else {
    out = "";
    out = errori[err];
    }
    }
    2 domande:

    1) Va tutto bene o ho sbagliato qualcosa?

    2) Quando fa il controllo errori rileva prima quelli del cognome e poi quelli del nome, mentre l'ordine esatto dovrebbe essere nome, cognome, email, oggetto, testo. Qual'è il problema? Devo forse fargli ordinare l'array "errori" secondo l'ordine di apparizione degli elementi all'interno del codice? Se sì come?

  4. #4
    Utente di HTML.it L'avatar di negatyve
    Registrato dal
    Feb 2001
    Messaggi
    9,479
    >1) Va tutto bene o ho sbagliato qualcosa?

    a occhio sembra a posto

    >Quando fa il controllo errori rileva prima quelli del cognome e poi
    >quelli del nome, mentre l'ordine esatto dovrebbe essere nome,
    >cognome, email, oggetto, testo. Qual'è il problema

    prova così:

    codice:
    out = "";
    destinatario = "Lorenzo";
    soggetto = oggetto;
    function convalida()
    {
    	errori = new Array('Inserire nome', 'Inserire cognome', 'Indirizzo e-mail non valido', 
    					   "Inserire oggetto dell'e-mail", "Inserire testo dell'e-mail");
    	err = 0;
    	count = 0;
    	errore = false;
    	if (nome == "" || nome == undefined) {
    		errore = true;
    		err = 0;
    	}
    	if (!errore) {
    		if (cognome == "" || cognome == undefined) {
    			errore = true;
    			err = 1;
    		}
    	}
    	if (!errore) {
    		caratteri = new Array('1', '2', '3', '4', '5', '6', '7', '8', '9', '0', 
    							  'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 
    							  'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 
    							  'u', 'v', 'w', 'x', 'y', 'z', '.', '_', '@');
    		for (var i = 0; i < caratteri.length; i++) {
    			if (mail.indexOf(caratteri[i]) == -1) {
    				errore = true;
    				err = 1;
    			}
    		}
    	}
    	if (!errore) {
    		for (i = 0; i < email.length; i++) {
    			if (email.charAt(i) == "@") {
    				count++;
    			}
    		}
    		if (count != 1) {
    			errore = true;
    			err = 2;
    		}
    	}
    	if (!errore) {
    		dividi = email.split("@");
    		if (dividi[0].length < 1) {
    			errore = true;
    			err = 2;
    		}
    		if (dividi[1].indexOf(".") < 0) {
    			errore = true;
    			err = 2;
    		} else {
    			dominio = dividi[1].split(".");
    			if (dominio[0].length < 2) {
    				errore = true;
    				err = 2;
    			}
    			if (dominio[1].length < 2) {
    				errore = true;
    				err = 2;
    			}
    		}
    	}
    	if (!errore) {
    		if (oggetto == "" || oggetto == undefined) {
    			errore = true;
    			err = 3;
    		}
    	}
    	if (!errore) {
    		if (testo == "" || testo == undefined) {
    			errore = true;
    			err = 4;
    		}
    	}
    	out = "";
    	if (!errore) {
    		LoadVars.send("form.php", POST);
    		out = "Messaggio inviato correttamente!";
    	} else {
    		out = "";
    		out = errori[err];
    	}
    }

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.