Foros del Web » Creando para Internet » Flash y Actionscript »

doble registro en mysql desde formulario flash - php

Estas en el tema de doble registro en mysql desde formulario flash - php en el foro de Flash y Actionscript en Foros del Web. buenas, he intentado por todas las formas que conozco de resolver este problema, tengo un formulario en flash que se conecta a traves de php ...
  #1 (permalink)  
Antiguo 24/09/2010, 17:52
 
Fecha de Ingreso: septiembre-2010
Mensajes: 6
Antigüedad: 13 años, 7 meses
Puntos: 0
Pregunta doble registro en mysql desde formulario flash - php

buenas, he intentado por todas las formas que conozco de resolver este problema, tengo un formulario en flash que se conecta a traves de php con una base de datos mysql, pero cada vez que envio datos aparecen 2 envios en la base de datos, primero se envia la data correcta y luego envia todo vacio pero mysql lo registra igualmente.

En el flash he intentado enviar los datos desde cuadros de texto tipo InputText y en el ejemplo que dejo abajo se envia desde un combobox que se llama hola. Siempre con el mismo resultado

CODIGO FLASH:


attachMovie("Button", "boton_compa", 1)
al_clicar = new Object();
al_clicar.click = function() {

import mx.controls.Alert;

var miManejador1:Function = function (miEvento1:Object) {
if (miEvento1.detail == Alert.OK) {

}
}
Alert.show("Listo...", "Mensaje de SAOLIC.", Alert.OK, null, miManejador1, "icono", Alert.OK);


form1 = new LoadVars;
form1.hola = hola.value;
form1.sendAndLoad("verclientedatos.php", form1, "POST");

recibira = new LoadVars;
recibira.load("verclientedatos.php");
recibira.onLoad = function() {

hi_txt.text = this.razon;
}
}
boton_compa.addEventListener("click", al_clicar);


ARCHIVO PHP(no les dejo los datos de conexion, por sia, jejeje):

<?php

$hola = $_POST["hola"];

$conexion = mysql_connect("localhost","//////","///////");

$db = mysql_select_db("/////");

$consulta = "INSERT INTO clientes (RAZON_SOCIAL) VALUES ('$hola')";
$result = mysql_query($consulta);

echo $codigo;


mysql_close($conexion);

?>

RESULTADO MYSQL:

ID RAZON_SOCIAL
2
1 DOMENICO
  #2 (permalink)  
Antiguo 24/09/2010, 18:05
Avatar de marmol  
Fecha de Ingreso: marzo-2004
Ubicación: en argentina
Mensajes: 197
Antigüedad: 20 años, 1 mes
Puntos: 4
Respuesta: doble registro en mysql desde formulario flash - php

hola deberia ser la configuracion php en mi caso utilizo otra forma de enviar datos desde flash a php.
Con respecto a razon social como odio esa palabra, yo soy parte del sistema y me va bien no es que sea Marksis... :D no soy ni punky ni metalero pero que increible este sistema capitalista con esas palabras. y bueno ya el SistemA de ricos y pobres tendria que cambiar..con eso dije todo sino a estudiar... siempre que veo esa palabra me sale decir esto saludos!
__________________
Fabricante Maquina industriales
http://www.guidobatanmaquinarias.com

Última edición por marmol; 24/09/2010 a las 18:11
  #3 (permalink)  
Antiguo 24/09/2010, 18:12
Avatar de mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 14 años, 7 meses
Puntos: 214
Respuesta: doble registro en mysql desde formulario flash - php

Hola
y hola es un campo de texto imagino? o que es?
ahora, dices que haces el envio 2 veces? con que fin?
suena más a problema de orden de llamados,
pues con uno creo que basta, en cuyo caso podrias
remover el evento (busca sobre removeListener o removeEventListener en este momento cual de los dos es...)
saludos
__________________
"Si consigues ser algo más que un hombre, si te entregas a un ideal, si nadie puede detenerte, te conviertes en algo muy diferente."
Visita piggypon.com
  #4 (permalink)  
Antiguo 24/09/2010, 18:33
 
Fecha de Ingreso: septiembre-2010
Mensajes: 6
Antigüedad: 13 años, 7 meses
Puntos: 0
Respuesta: doble registro en mysql desde formulario flash - php

hola, lo que deseo es eliminar justamente ese doble envio que me sale automaticamente, solo debe enviarse el dato DOMENICO, no el vacio, el campo de texto no es imaginario, simplemente que en el ejemplo no se coloco pero intente enviar el dato con un campo de texto en vez de con el combobox e igual me aparecen 2 envios.
  #5 (permalink)  
Antiguo 24/09/2010, 18:35
 
Fecha de Ingreso: septiembre-2010
Mensajes: 6
Antigüedad: 13 años, 7 meses
Puntos: 0
Respuesta: doble registro en mysql desde formulario flash - php

Cita:
Iniciado por marmol Ver Mensaje
hola deberia ser la configuracion php en mi caso utilizo otra forma de enviar datos desde flash a php.
Con respecto a razon social como odio esa palabra, yo soy parte del sistema y me va bien no es que sea marksis... :d no soy ni punky ni metalero pero que increible este sistema capitalista con esas palabras. Y bueno ya el sistema de ricos y pobres tendria que cambiar..con eso dije todo sino a estudiar... Siempre que veo esa palabra me sale decir esto saludos!
cual es eso otro metodo, si puedes explicarlo seria buenisimo para ver si asi me elimina ese doble envio.
  #6 (permalink)  
Antiguo 24/09/2010, 21:42
Avatar de mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 14 años, 7 meses
Puntos: 214
Respuesta: doble registro en mysql desde formulario flash - php

Hola
bueno, tienes esto

form1 = new LoadVars;
form1.hola = hola.value;
form1.sendAndLoad("verclientedatos.php", form1, "POST");

recibira = new LoadVars;
recibira.load("verclientedatos.php");


yo usaria solo uno de los dos loadvars con su respectivo método

saludos
__________________
"Si consigues ser algo más que un hombre, si te entregas a un ideal, si nadie puede detenerte, te conviertes en algo muy diferente."
Visita piggypon.com
  #7 (permalink)  
Antiguo 24/09/2010, 23:01
 
Fecha de Ingreso: septiembre-2010
Mensajes: 6
Antigüedad: 13 años, 7 meses
Puntos: 0
Respuesta: doble registro en mysql desde formulario flash - php

Cita:
Iniciado por mortiprogramador Ver Mensaje
Hola
bueno, tienes esto

form1 = new LoadVars;
form1.hola = hola.value;
form1.sendAndLoad("verclientedatos.php", form1, "POST");

recibira = new LoadVars;
recibira.load("verclientedatos.php");


yo usaria solo uno de los dos loadvars con su respectivo método

saludos
Nop, no se soluciono el problema, ahora fijate en este otro problema que tengo, yo estoy tratando de hacer una consulta en la base de datos directamente desde flash y quiero visualizar el resultado en in texto dinamico en flash, para eso utilizo este codigo.

mi base de datos tiene los siguentes datos

ID RAZON_SOCIAL EMAIL
1 guacamaya willow

FLASH:

/* Tengo 2 cuadros de texto, uno es input text (datos_txt) y el otro es dynamic text (respuesta_txt); y un boton */

//en el frame 1:

stop();
respuesta_txt.text = "";
function subir (){
form1 = new LoadVars();
form1.datos = datos_txt.text;
form1.send("verclientedatos.php",form1,"POST");
stop();
}

function bajar (){
recibir = new LoadVars;
recibir.load("verclientedatos.php");
recibir.onLoad = function (){

respuesta_txt.text = this.email;

}
stop();
}

// en el boton:

on (press){
subir ();

bajar ();

}

// en el php:

<?php
$datos = $_POST["datos"];

$conexion = mysql_connect(++++++++++++++++);

$db = mysql_select_db(++++++++++);

$consultaotra = "SELECT * FROM clientes WHERE RAZON_SOCIAL = '{$datos}'";

$resultado = mysql_query($consultaotra);

$i=0;
$codigo="";

while ($rows= mysql_fetch_array($resultado)){
$codigo.="&codigo"."=".$rows["CODIGO"];
$codigo.="&razon"."=".$rows["RAZON_SOCIAL"];
$codigo.="&tipo"."=".$rows["TIPO"];
$codigo.="&cadena"."=".$rows["CADENA"];
$codigo.="&rif"."=".$rows["RIF"];
$codigo.="&dirfiscal"."=".$rows["DIRECCION_FISCAL"];
$codigo.="&dirdespacho"."=".$rows["DIRECCION_DESPACHO"];
$codigo.="&tlf"."=".$rows["TELEFONO"];
$codigo.="&email"."=".$rows["EMAIL"];
$codigo.="&web"."=".$rows["WEBSITE"];
$codigo.="&persona"."=".$rows["PERSONA_CONTACTO"];
$codigo.="&tlfper"."=".$rows["TLF_PERSONA_CONTACTO"];
$codigo.="&emailper"."=".$rows["EMAIL_PERSONA_CONTACTO"];
$codigo.="&diascre"."=".$rows["DIAS_CREDITO"];

}


echo ($codigo);


mysql_close($conexion);

?>

la consulta se ejecuta con exito y el php arroja el siguiente resultado:
&codigo=&razon=guacamaya&tipo= (etc etc etc) &email=willow

Pero en el cuadro de texto dinamico en flash aparece undefined.
Lo curioso es que si cambio la consulta asi:(forzandola a que busque siempre guacamaya)

$consultaotra = "SELECT * FROM clientes WHERE RAZON_SOCIAL = 'guacamaya'";

me arroja el mismo resultado en el php, pero en el flash aparece willow, que es el valor que estoy buscando, por que no me aparece bien el valor cuando la consulta la hago con el valor de la variable que viene de flash, si de todos modos la consulta la hace bien, pero flash no reconoce el valor de retorno, con todo y que es el mismo, porque lo esta leyendo de la base de datos en el mismo lugar.

Como lo corrijo para que siempre me lea bien el valor de retorno en flash?
  #8 (permalink)  
Antiguo 25/09/2010, 15:13
Avatar de mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 14 años, 7 meses
Puntos: 214
Respuesta: doble registro en mysql desde formulario flash - php

uhm, cuando dices que fuerzas la consulta, es decir directamente en el php le dices que busque guacamaya?

otra pregunta, hasta la parte de asignación, es decir aquí

form1.datos = datos_txt.text;

datos_txt muestra el valor haciendole trace antes de la asignación?
si es así, intenta en php devolver también devolver esa consulta completa,
y ejecutarla en phpmyadmin, se me ocurre que el problema sea que se envíe
con algún espacio, en cuyo caso, de ser así, pues con el espacio no será
igual al valor de la db, por lo que sugiero uses la función trim
si no es así, revisa embebido de fuentes de ese campo (aunque tal vez sea más la primera opción que esta)

otra pregunta, para que encierras la variable entre llaves en el query?
no había visto ese detalle en otro lado

bueno, espero te sirvan las ideas
saludos
__________________
"Si consigues ser algo más que un hombre, si te entregas a un ideal, si nadie puede detenerte, te conviertes en algo muy diferente."
Visita piggypon.com
  #9 (permalink)  
Antiguo 25/09/2010, 18:36
 
Fecha de Ingreso: septiembre-2010
Mensajes: 6
Antigüedad: 13 años, 7 meses
Puntos: 0
Respuesta: doble registro en mysql desde formulario flash - php

Cita:
Iniciado por mortiprogramador Ver Mensaje
uhm, cuando dices que fuerzas la consulta, es decir directamente en el php le dices que busque guacamaya?

otra pregunta, hasta la parte de asignación, es decir aquí

form1.datos = datos_txt.text;

datos_txt muestra el valor haciendole trace antes de la asignación?
si es así, intenta en php devolver también devolver esa consulta completa,
y ejecutarla en phpmyadmin, se me ocurre que el problema sea que se envíe
con algún espacio, en cuyo caso, de ser así, pues con el espacio no será
igual al valor de la db, por lo que sugiero uses la función trim
si no es así, revisa embebido de fuentes de ese campo (aunque tal vez sea más la primera opción que esta)

otra pregunta, para que encierras la variable entre llaves en el query?
no había visto ese detalle en otro lado

bueno, espero te sirvan las ideas
saludos
Saludos, sí, si yo le digo en el php directamente que la variable $datos = "guacamaya"; y él la busca en la base de datos, así, si funciona y en el texto dinamico en flash retorna willow, pero cuando la palabra guacamaya la mando desde flash, o sea $datos = $_POST["datos"]; el dinamico de flash dice undefined, pero la consulta si la esta haciendo, porque si vez el resultado que aroja el echo del php dice willow en ambos casos, pero flash no lo agarra, agradezco si pueden explicarme como hago para que los datos que salgan del flash al php tengan un formato especifico para que puedan ser leidos por mysql bien y como les doy tambien un formato de retorno cuando salen del php para que flash los lea bien, lo de las llaves '{$datos}' fue la unica manera que encontre para que el query me leyera el parametro de consulta desde una variable, porque si colocaba $datos o '$datos', nunca hacia la consulta, ese truco lo consegui en un manual de mysql que vi por internet. Si puedes copia el codigo y pruebalo tu para que veas lo que te da, por cierto, utilizo actionscript 2.0, gracias.
  #10 (permalink)  
Antiguo 26/09/2010, 01:21
Avatar de mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 14 años, 7 meses
Puntos: 214
Respuesta: doble registro en mysql desde formulario flash - php

Hola
pues es bastante extraño lo que te ocurre, pues yo he realizado
consultas tanto en as2 como en as3 de forma como vos lo haces,
y por un lado no necesito el truco que comentas, y por el otro
pues no me ha pasado eso de undefined, intenta enviarle otro valor,
y así pregunto, el text está en un movieclip o en el stage?
ya has intentado con

form1.valorhaciaphp = _root.caja_texto.text por ej o en vez de _root, un this?
sin embargo intenta enviarle un valor directo desde flash hacia php antes de
hacer estas pruebas, haciendo form1.valorhaciaphp = "guacamaya" por ej

saludos
__________________
"Si consigues ser algo más que un hombre, si te entregas a un ideal, si nadie puede detenerte, te conviertes en algo muy diferente."
Visita piggypon.com
  #11 (permalink)  
Antiguo 26/09/2010, 07:10
 
Fecha de Ingreso: septiembre-2010
Mensajes: 6
Antigüedad: 13 años, 7 meses
Puntos: 0
Respuesta: doble registro en mysql desde formulario flash - php

Bueno muchachos, agradezco mucho sus comentarios y su ayuda, ya lo solucione, a continuacion les comento lo que hice:

1) No se enrollen con el formato que utilizo en el query, en lo manuales mysql dice que solo en el query es recomendado colocar las variables que vienen del php con el formato '{variablephp}', si a ustedes les funciona sin eso chevere, a mi no me funcionaba y tuve que colocarlo asi.
2) Le coloque en la configuracion de publicacion del flash "publish settings"->"html": le dije que no publicara la pelicula para FLASH ONLY, sino que la publicara para HTTPS.
3) Cambie la manera de recibir los datos de la siguiente forma: respuesta_txt.html = true; respuest_txt.htmltext = this.email; de ese modo flash le dice al dinamico que se prepare para recibir datos en formato html y obviamente lo obliga a ser string, asi que no puede decir undefined porque en el string de flash ese valor no existe, ahora siempre me da la respuesta correcta en flash.

CODIGO DEL FRAME EN FLASH:

var form1_lv:LoadVars = new LoadVars();
var recibir_lv:LoadVars = new LoadVars();
function subir (){

form1_lv.datos = datos_txt.text;
form1_lv.sendAndLoad("verclientedatos.php", recibir_lv,"POST");

recibir_lv.onLoad = function (exito){
if (exito){
respuesta_txt.html = true;
respuesta_txt.htmlText = this.email;

}else{

respuesta_txt.htmlText = "no se proceso...";
}
}
}
stop();

CODIGO DEL BOTON FLASH:

on (press){
subir ();


}

CODIGO DEL PHP:

<?php
$datos = $_POST["datos"];



//setType($datos, "string");
$conexion = mysql_connect("localhost","fl000341_domenic","Obje to6cantar");

$db = mysql_select_db("fl000341_saolic");

$consultaotra = "SELECT * FROM clientes WHERE RAZON_SOCIAL = '{$datos}'";

$resultado = mysql_query($consultaotra);

$i=0;
$codigo="";

while ($rows= mysql_fetch_array($resultado)){
$codigo.="&codi"."=".$rows["CODIGO"];
$codigo.="&codigo"."=".$rows["RAZON_SOCIAL"];
$codigo.="&tipo"."=".$rows["TIPO"];
$codigo.="&cadena"."=".$rows["CADENA"];
$codigo.="&rif"."=".$rows["RIF"];
$codigo.="&dirfiscal"."=".$rows["DIRECCION_FISCAL"];
$codigo.="&dirdespacho"."=".$rows["DIRECCION_DESPACHO"];
$codigo.="&tlf"."=".$rows["TELEFONO"];
$codigo.="&email"."=".$rows["EMAIL"];
$codigo.="&web"."=".$rows["WEBSITE"];
$codigo.="&persona"."=".$rows["PERSONA_CONTACTO"];
$codigo.="&tlfper"."=".$rows["TLF_PERSONA_CONTACTO"];
$codigo.="&emailper"."=".$rows["EMAIL_PERSONA_CONTACTO"];
$codigo.="&diascre"."=".$rows["DIAS_CREDITO"];

}



echo ($codigo);


mysql_close($conexion);

?>

Etiquetas: doble, flash, mysql, php, registro, formulario
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:22.