Leer de user y pass Flash + XML
Muchachos/as, charlando en el estudio en el q trabajo se nos ocurrió hacer un sistema de user y pass, y q al enviar te habra un pop-up a una carpeta específica de ese user en un ftp; el problema es q no tenemos ni idea de como hacerlo, ya q queremos guardar los datos de cada usuario (que serían User, Password y enlace a esa carpeta del ftp) en un XML.
Paso a explicarlo un poco mejor:
La idea es tener un XML de éste estilo
<code>
<clientes>
<cliente>
<usuario>pepe</usuario>
<password>soypepe</password>
<enlaceFTP>ftp://blablabla/pepe</enlaceFTP>
</cliente>
<cliente>
<usuario>jose</usuario>
<password>josecito</password>
<enlaceFTP>ftp://blablabla/jose</enlaceFTP>
</cliente>
<clientes>
</code>
Ahora bien, desde Flash lo q queremos lograr es NO editar los sources cada vez q se nos agregue un cliente nuevo, sinó agregarlo al XML y q flash interprete de forma automática a donde linkearte dependiendo del user y el pass q hayas ingresado en los inputs.
Lo q no sabemos con exactitud es como lograr q flash interprete a donde linkearte dependiendo del user y el pass correctos. Claro q podría editar el .fla y agregar un nuevo if() cada vez q se nos agregue un cliente sin la necesidad de utilizar XML, pero claro está q no es ni la mejor ni la menos engorrosa manera de hacerlo.
Espero haber sido lo suficientemente claro; vamos, q a veces me enrollo a mi mismo! :P
Alguna pista, estimados?
damianmuti
Volví, pero lamentablemente con inconvenientes :(
Estaba manejando algo del estilo:
<code>System.useCodePage = true;
var _xml = new XML();
_xml.ignoreWhite = true;
_mx.load("clientes.xml");
_xml.onLoad = function() {
//aqui viene la chicha
var _pxml = _xml.firstChild.childNodes;
var _lng = _pxml.length;
for (i=0; i<_lng; i++) {
for (s=0; s<_pxml[i].childNodes.length; s++) {
var nombre = _pxml[i].childNodes[s].firstChild.nodeValue;
var pass = _pxml[i].childNodes[s].firstChild.nodeValue;
var ftp = _pxml[i].childNodes[s].firstChild.nodeValue;
}
enviar.onRelease = function() {
if (contrasena_txt.text = pass[s]) {
getURL(ftp[s], "_blank");
}
};
}
};</code>
pero evidentemente no me funciona, y estoy haciendo alguna idiotez de desesperado, cosa q suelo hacer. Anduve jugando con los firstChild y con los childNodes, pero nada de nada; un garrón, como diríamos acá en Argentina.
Q se te/les ocurre ?
kassel
Ya me contaras, como te va con mi codigo, y agradecco tu explicacion pero como programador muchas veces veces pienso que es mas practico que lo haga la maquina para algo esta.
Saludos.
(Instisto seguro deberas cambiar algo el codigo).
damianmuti
kassel, primeramente gracias x la pronta respuesta, mi estimado!
Ahora bien, respondiendo a tu primer pregunta ("como sabreis que un cliente se agrega?"), debo decirte q todo este lío es por lo siguiente:
Nosotros estamos haciendo un sistema de seguimiento de desarrollos, osea q cada cliente pueda loguearse con su cuenta y se les abra un enlace a su carpeta dentro de nuestro ftp para q pueda ir siguiendo el avance y/o cambios en su site, es por eso q llevamos bien la cuenta de quienes se agregan y en q momento, ya q nosotros les creamos una carpeta en nuestro ftp con el curro q estemos haciendo para ese cliente. :)
Con respecto a lo q estamos tratando en sí, te comento q voy a probar el funcionamiento del script y vendré a contarte como me ha ido.
Calculo q en el boton "enviar" deberé poner algun if q deternime la acción a seguir, pero eso es bastante menos engorroso (espero :$)
Muchas gracias, y muy amable de tu parte al ayudarme :)
kassel
y una pregunta tonta , como sabreis que un cliente se agrega?( que pareece tonta pero no lo es tanto).
Encuanto a lo otro deberas usar new XML(), si es en 8 ( o inferirores), no es nativo con lo cual ala un bucle y a sacar la info con el xml que tienes tu seria algo asi:_
<code>System.useCodePage=true
var _xml=new XML()
_xml.ignoreWhite=true
_mx.load("tuxml.xml");
_xml.onLoad=function(){
//aqui viene la chicha
var _pxml=_xml.firstChild.childNodes
var _lng=_pxml.length;
for(i=0;i<_lng;i++){
for(s=0;s<_pxml[i].childNodes.length;s++){
var nombre=_pxml[i].childNodes[s].firstChild.nodeValue
var pass=_pxml[i].childNodes[s].firstChild.nodeValue
var ftp=_pxml[i].childNodes[s].firstChild.nodeValue
}
}
}</code>
el codigo esta sin probar, pero lo mejor es que te uses XPATH, yo aprendi asi pero para no complicarse es mejor XPATH.
( la anidacion de nodeValue , childNodes, firstChild, seguro que te da error ,pero es cuestion de hacer pruebas y mirarlo con calma)
Tb te aconsejho que si puedes( si no tira con este xml) le des este otro formato al xml
<clientes>
<nodo>
<nodo>
</clientes>
es mas limpio y mas facil de llegar a la informacion
damianmuti
Has entendido al %50 :P
No necesito q flash escriba el XML; eso le haríamos nosotros editando ese xml cada vez q se nos agregue un cliente. Lo q sí entendiste bien es q necesito q flash encuentre el nodo correcto para cada user, pass y enlace.
Lo q no sé es como parsear ese xml y q flash pueda leer el nodo correcto.
kassel
Hola si no te entendido mal quieres que flash a traves de un formulario edite XML?
si es asi no se Ppuede, flash no tiene permisos de escritura por si mismo.
y el tema de ocndicionales en flash no es necesarion, lo que debes hacer es leer el xml(parsearlo a flash), y luego usar esa in formacion para que con el nombre y conrtraseña busque el nodoi especifico y abra el ftp, pero creo que primero me deberas aclarar si quieres que flash cada vez que rellene alguien el formulario cambie el XMl.
Saludos.