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

No inserta registro en MySQL...

Estas en el tema de No inserta registro en MySQL... en el foro de Flash y Actionscript en Foros del Web. Estoy estudiando y no puedo salir de esta, si me dan una mano, les agradezco. Intento insertar un registro en la BD, desde Flash y ...
  #1 (permalink)  
Antiguo 06/11/2007, 09:10
Avatar de calmas  
Fecha de Ingreso: marzo-2006
Mensajes: 36
Antigüedad: 11 años, 8 meses
Puntos: 0
No inserta registro en MySQL...

Estoy estudiando y no puedo salir de esta, si me dan una mano, les agradezco.

Intento insertar un registro en la BD, desde Flash y no hace.

Este es el archivo PHP que recibe las variables.
<?php
require("conect.php");
$consulta = mysql_query("INSERT INTO `registro` (`id`, `nombre`, `apellido`, `email`, `user`, `pass`) VALUES ('', '$elNombre', '$elApellido', '$elEmail', '$elUser', '$elPass');");
if($guardar == mysql_query("$consulta"))
{
echo "&respuesta=Gracias por registrarte!!";
}else{
echo "&respuesta=error";
}
?>


Este es el código en la línea de tiempo (flash)
Código HTML:
function enviarRegistro():Void {
	if (nombre.length<=2) {
		n1.textColor = 0xff0066;
		Selection.setFocus(c1);
		alarma = "Completar campo nombre";
	} else if (apellido.length<=2) {
		n2.textColor = 0xff0066;
		Selection.setFocus(c2);
		alarma = "Completar campo apellido";
	} else if (email == undefined || email.indexOf("@")<1 || email.indexOf(".",-1)<3) {
		n3.textColor = 0xff0066;
		Selection.setFocus(c3);
		alarma = "Completar campo e-mail";
	} else if (user.length<=2) {
		n4.textColor = 0xff0066;
		Selection.setFocus(c4);
		alarma = "Completar campo user";
	} else if (pass.length<=2) {
		n5.textColor = 0xff0066;
		Selection.setFocus(c5);
		alarma = "Completar campo pass";
	} else {
		var enviarInfo:LoadVars = new LoadVars();
		var recibirRtta:LoadVars = new LoadVars();
		enviarInfo.elNombre = nombre;
		enviarInfo.elApellido = apellido;
		enviarInfo.elEmail = email;
		enviarInfo.elUser = user;
		enviarInfo.elPass = pass;
		enviarInfo.sendAndLoad("registro.php", recibirRtta);
		recibirRtta.onLoad = function () {
			alarma = this.respuesta;
			if (alarma == "Gracias por registrarte!!") {
				play();
			}
		};
	}
};

Y por supuesto el código del botón:
Código HTML:
on (release) {
	enviarRegistro();
}
La BD de nombre "libro_webmail", tiene una tabla "registro" y 6 campos: id, nombre, apellido, email, user, pass.

El tema es si al archivo PHP, le escribo el código correspondiente con los valores de la variables ($elNombre, etc, etc), funciona correctamente, e inserta el registro en la BD.
Desde Flash NO lo hace.
Además cada campo de introducción de texto, tiene como variable, las variables definidas en el código.

Les agradezco si me dan una mano, así puedo seguir adelante.
Gracias.
  #2 (permalink)  
Antiguo 06/11/2007, 10:40
Avatar de Mahalo  
Fecha de Ingreso: julio-2004
Ubicación: Mallorca (Illes Balears)
Mensajes: 1.121
Antigüedad: 13 años, 4 meses
Puntos: 12
Re: No inserta registro en MySQL...

Dos cosas: ¿Las variables están llegando al php y éste tiene activadas las variables post?
Y, ¿el campo id es autoincrementable? Porque en ese caso no hace falta que le des un valor, simplemente elimínalo de la claúsula INSERT. Y dentro del mysql_query no hace falta que pongas las comillas. Aunque si dices que funciona por si solo...

Te recomiendo que vayas poniendo metas para ver en qué punto se queda colgado. Por ejemplo, que que el php sea sólo así:
Código PHP:
<?
echo "&respuesta=recibido";
?>
Y a ver si conecta bien. Luego dile que devuelva una de las variables que le has pasado desde el flash, a ver si te la devuelve. Y así hasta hallar el fallo.

Saludos!
__________________
Los ignorantes se empeñan en enseñar. Los sabios en aprender.
SourceForge
  #3 (permalink)  
Antiguo 06/11/2007, 11:15
Avatar de calmas  
Fecha de Ingreso: marzo-2006
Mensajes: 36
Antigüedad: 11 años, 8 meses
Puntos: 0
Re: No inserta registro en MySQL...

Mahalo:
Gracias por responder.

Evidentemente las variables no están llegando a PHP, pues hice la primera prueba, que me dijiste, solamente con un texto y respondío bien.
Pero al asignarle una variable, por ejemplo este código:

Código HTML:
<?php

echo "&respuesta=..." . $elNombre . "-"; 
?> 
respondió esto:

..." . $elNombre . "-";


Por otro lado el campo "id" si es incrementable.
¿Y como hago para habilitar las variables post en PHP?.
Gracias.
  #4 (permalink)  
Antiguo 07/11/2007, 01:41
Avatar de Mahalo  
Fecha de Ingreso: julio-2004
Ubicación: Mallorca (Illes Balears)
Mensajes: 1.121
Antigüedad: 13 años, 4 meses
Puntos: 12
Re: No inserta registro en MySQL...

Bueno, eso que te respondió no quiere decir que no le lleguen las variables, sino que el formato de respuesta no es correcto. Prueba así:
Código PHP:
<?
echo "respuesta=$elNombre";
?>
En php no hay por qué sacar las variables de entre las comillas.

Si no tienes activadas las variables post, debes hacerlo en el archivo php.ini, pero no sé si tienes acceso a él. En todo caso, puedes usar esto:
Código PHP:
<?
$elNombre 
$_POST['elNombre'];
?>
A ver si se ha solucionado algo...

Saludos!
__________________
Los ignorantes se empeñan en enseñar. Los sabios en aprender.
SourceForge
  #5 (permalink)  
Antiguo 07/11/2007, 06:26
Avatar de calmas  
Fecha de Ingreso: marzo-2006
Mensajes: 36
Antigüedad: 11 años, 8 meses
Puntos: 0
Pregunta Re: No inserta registro en MySQL...

Nuevamente gracias.
No, no se ha solucionado.

Si solo agrego este código:
Código HTML:
echo "respuesta=$elNombre";
devuelve: undefined.


Si a ese mismo código le agrego & delante de respuesta.
devuelve: $elNombre";

Agregando este código para cada variable
Código HTML:
$elNombre = $_POST['elNombre'];
devuelve: error

Ya no se que hacer. He probado cambiando todo y no hay resultado.
Una pregunta, tengo Flash MX 2004 profesional y PHP 5, ¿puede haber algun problema de compatibilidad?

Gracias Mahalo por responder.
  #6 (permalink)  
Antiguo 08/11/2007, 02:58
Avatar de Mahalo  
Fecha de Ingreso: julio-2004
Ubicación: Mallorca (Illes Balears)
Mensajes: 1.121
Antigüedad: 13 años, 4 meses
Puntos: 12
Re: No inserta registro en MySQL...

No, no hay problema de compatibilidad. Prueba añadiendo un signo & al final de la respuesta. Es por probar, pero es que a mí me va bien sin estos signos. Y el código AS parece estar bien.

Saludos!
__________________
Los ignorantes se empeñan en enseñar. Los sabios en aprender.
SourceForge
  #7 (permalink)  
Antiguo 08/11/2007, 06:15
Avatar de calmas  
Fecha de Ingreso: marzo-2006
Mensajes: 36
Antigüedad: 11 años, 8 meses
Puntos: 0
Re: No inserta registro en MySQL...

Bueno, pruebo eso también.
Estuve buscando en el foro de PHP y encontre dentro de las preguntas frecuentas, un detallesito, dice en el archivo "php.ini", hay una sentencia "register_globals", que por defecto viene en "off", hay que cambiarla a "on".
Esta sentencia abilita, a php a leer variables externas.
Bueno lo hice, ya que estaba en OFF, estoy probando todas las alternativas, a ver si logro solucionar.

Si alguien sabe algo que pueda relacionarse con la configuración, les agradezco me avisen.
Gracias
  #8 (permalink)  
Antiguo 08/11/2007, 06:29
 
Fecha de Ingreso: febrero-2007
Mensajes: 111
Antigüedad: 10 años, 9 meses
Puntos: 0
Re: No inserta registro en MySQL...

yo pongo al final del sendAndLoad un tercer parametro "POST" y al principio del php recojo las variables con $HTTP_POST
  #9 (permalink)  
Antiguo 08/11/2007, 07:29
Avatar de calmas  
Fecha de Ingreso: marzo-2006
Mensajes: 36
Antigüedad: 11 años, 8 meses
Puntos: 0
Re: No inserta registro en MySQL...

Gracias Negro, también, por responder.

No hay vuelta, no funciona de ninguna manera.
Probé también con:

Código HTML:
<?php
$elNombre = $_POST['elNombre'];
echo "&respuesta=$elNombre&";
?> 
devolvió $elNombre

Y utilizando $HTTP_POST_VARS['variable']
Tampoco funciona.
Voy a postear, en el foro de PHP, a ver si alguien tiene alguna idea.
Y si por acá, se les ocurre algo, bienvenido pues estoy totalmente trancado y no puedo seguir adelante.
Gracias
  #10 (permalink)  
Antiguo 08/11/2007, 08:04
Avatar de Mahalo  
Fecha de Ingreso: julio-2004
Ubicación: Mallorca (Illes Balears)
Mensajes: 1.121
Antigüedad: 13 años, 4 meses
Puntos: 12
Re: No inserta registro en MySQL...

Efectivamente, Negro81 tiene razón. Te falta el parámetro de especifica el método de envío de variables en el método sendAndLoad.

enviarInfo.sendAndLoad("registro.php", recibirRtta, "POST");
__________________
Los ignorantes se empeñan en enseñar. Los sabios en aprender.
SourceForge
  #11 (permalink)  
Antiguo 08/11/2007, 08:11
Avatar de calmas  
Fecha de Ingreso: marzo-2006
Mensajes: 36
Antigüedad: 11 años, 8 meses
Puntos: 0
Re: No inserta registro en MySQL...

Si Mahalo, es una de las pruebas que ya hice.

Agregar "POST", al sendAndLoad y $variable = $_POST['variable'] o $variable = $HTTP_POST_VARS['variable'] al archivo PHP.

Y no hubo resultado, también probé con "GET"...

Estoy esperando si alguien me responde en el foro PHP, luego les aviso.
  #12 (permalink)  
Antiguo 08/11/2007, 08:45
 
Fecha de Ingreso: febrero-2007
Mensajes: 111
Antigüedad: 10 años, 9 meses
Puntos: 0
Re: No inserta registro en MySQL...

pon en el php

echo "&respuesta=" . $elNombre;

y al final un echo para que recoja la basura, esto es algo que algunas veces he tenido que ponerlo, que luego no hace falta recogerlo en flash ni nada:

echo"&basura=si";
  #13 (permalink)  
Antiguo 08/11/2007, 09:05
Avatar de calmas  
Fecha de Ingreso: marzo-2006
Mensajes: 36
Antigüedad: 11 años, 8 meses
Puntos: 0
Re: No inserta registro en MySQL...

Así como pusiste el código, devolvió: " . $elNombre;

Si le agrego un &, luego del = :
no devolvió absolutamente nada, probé también agregando $_POST y $HTTP_POST_VARS.

Evidentemente las variables no salen de Flash.
Y estuve pensando, si las variables no reciben el valor, cuando se le introduce en el campo de texto.
Pero el código AS funciona, ya que si no se le introduce, el valor a alguna de las variables, se frena antes del último "ELSE" y pide que se introduzca el valor que falta.

No puedo darme cuenta, realmente, que es lo que pasa.
  #14 (permalink)  
Antiguo 08/11/2007, 09:56
 
Fecha de Ingreso: febrero-2007
Mensajes: 111
Antigüedad: 10 años, 9 meses
Puntos: 0
Re: No inserta registro en MySQL...

HAZ trace al final del flash que nos aseguremos al menos que en el flash se procesan correctamente. Si es así pues ya sabemos que el fallo esta en el php.
  #15 (permalink)  
Antiguo 08/11/2007, 10:22
Avatar de calmas  
Fecha de Ingreso: marzo-2006
Mensajes: 36
Antigüedad: 11 años, 8 meses
Puntos: 0
Re: No inserta registro en MySQL...

Buena medida, realmente, pues despejé las dudas de si las variables recibían los valores.
Y si, en el panel "Salida", se mostraron los valores de las variables, correctamente.
Por lo tanto el código AS, funciona bien.

Entonces caben 2 posibilidades, que por alguna razón, (puede ser de configuración), Flash no se esté conectando con PHP.
O de lo contrario el archivo PHP, no funciona bien. Pero recuerden que de entrada, hice esta prueba:

Agregué esta porción de código en el archivo PHP, luego de require("conect.php");:

$elNombre = "fulano";
$elApellido = "mengano";
$elEmail = "[email protected]";
$elUser = "flano";
$elPass = "flano";

ejecuté el archivo PHP desde el servidor y agregó correctamente el registro en la base de datos.
Por lo que, parece, el archivo PHP está correcto también.

Gracias por las respuestas, de cualquier manera sigo aprendiendo con Uds.
  #16 (permalink)  
Antiguo 08/11/2007, 14:11
 
Fecha de Ingreso: febrero-2007
Mensajes: 111
Antigüedad: 10 años, 9 meses
Puntos: 0
Re: No inserta registro en MySQL...

Mira, aquí tienes un PHP común de este tipo que es correcto:


Código PHP:
 <?PHP

include 'conexion.php';

$nombre=$HTTP_POST_VARS[nombre];
$apellido=$HTTP_POST_VARS[apellido];
$usuario=$HTTP_POST_VARS[usuario];
$pass=$HTTP_POST_VARS[pass];
$edad=$HTTP_POST_VARS[edad];
$sexo=$HTTP_POST_VARS[sexo];
$email=$HTTP_POST_VARS[email];
$notas=$HTTP_POST_VARS[notas];

$agrega mysql_query("INSERT INTO cliente (usuario, password, nombre, apellidos, edad, sexo, notas, mail) VALUES ('$usuario', '$pass', '$nombre', '$apellido', '$edad', '$sexo', '$notas', '$email')",$Connect);


echo 
"&abierto=ok";

?>
  #17 (permalink)  
Antiguo 08/11/2007, 16:25
Avatar de calmas  
Fecha de Ingreso: marzo-2006
Mensajes: 36
Antigüedad: 11 años, 8 meses
Puntos: 0
Re: No inserta registro en MySQL...

Bueno, no, tenía la esperanza de decirte "bien Negro solucionado el problema, a que dirección te mando el vino uruguayo para que pruebes", pero el problema sigue allí.

le saqué las etiquetas post, le puse " y tambien ' y nada.
Si ejecuto el archivo que me pasaste desde el servidor, agrega el registro en la BD, pero desde flash, responde "OK", pero no agrega nada.

El único detalle es que cuando ejecuté el archivo php, primero me largó un error esa variable que tenes luego de los valores "$Connect", no estaba bien.
Sacandola agrego el registro.

Bueno ya no se, voy a hacer algunas preguntas tontas pero quizá surja alguna idea:
1) ¿hay alguna configuración especial que haya que hacer para que Flash y PHP se comuniquen?, yo tengo instalado el WAMP5 1.7.3.
2) ¿Hay algun servicio de PHP, que haya que configurar, en el archivo php.ini?.
3) ¿Se necesita alguna DLL para que funcione bien?.

Estas preguntas ya no son para este foro, pero bueno, quizá alguno de los moderadores, puede leerlas y tiene alguna idea.

Se agradece.
  #18 (permalink)  
Antiguo 08/11/2007, 16:42
 
Fecha de Ingreso: febrero-2007
Mensajes: 111
Antigüedad: 10 años, 9 meses
Puntos: 0
Re: No inserta registro en MySQL...

lo has puesto exactamente con esa estructura?

Fijate en los detalles, por ejemplo, en la sentencia SQL no pongo comillas a los campos de la tabla, ni punto y coma al final de la sentencia....

He hecho esto tantas veces que me desespera ya no encontrar la solucion.
  #19 (permalink)  
Antiguo 09/11/2007, 05:48
Avatar de calmas  
Fecha de Ingreso: marzo-2006
Mensajes: 36
Antigüedad: 11 años, 8 meses
Puntos: 0
Re: No inserta registro en MySQL...

Si Negro:

Lo copié tal cual y le modifiqué los nombre de las variables solamente. Como te decía primero me dió ese error en la linea del "mysql_query", pero sacando la última variable "$connect", que supongo debe controlar alguna otra cosa en tu caso, andubo bien (ejecutando el archivo php).

Pero desde flash, la respuesta es "OK", pero en la BD, no inserta nada.

Así que bueno... no se.
  #20 (permalink)  
Antiguo 09/11/2007, 11:11
Avatar de calmas  
Fecha de Ingreso: marzo-2006
Mensajes: 36
Antigüedad: 11 años, 8 meses
Puntos: 0
Re: No inserta registro en MySQL...

Mahalo y negro:
Por si les interesa, en el foro "Ayuda general".

El moderador me solicitó ver todo lo que hemos hecho, y espero tenga alguna idea.

El post en ese foro se llama "Las variables de Flash no pasan a PHP".

Saludos
  #21 (permalink)  
Antiguo 09/11/2007, 14:02
Avatar de calmas  
Fecha de Ingreso: marzo-2006
Mensajes: 36
Antigüedad: 11 años, 8 meses
Puntos: 0
Re: No inserta registro en MySQL...

Parece que tampoco saben por allí.
bueno, seguire intentando.
  #22 (permalink)  
Antiguo 10/11/2007, 17:53
Avatar de calmas  
Fecha de Ingreso: marzo-2006
Mensajes: 36
Antigüedad: 11 años, 8 meses
Puntos: 0
Re: No inserta registro en MySQL...

Estoy preguntando en otro foro de otro portal, tampoco parece que se les ocurra cual puede ser el problema.

Si hay algun resultado les cuento.
Saludos
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 09:11.