Comunidad de diseño web y desarrollo en internet online

Problemas enviando variables a PHP para modificar un XML.

Citar            
MensajeEscrito el 26 Sep 2004 04:19 pm
Hola.

Estoy intentando enviar variables desde Flash (SWF) a PHP para que este modifique un XML, y los problemas que tengo son los siguientes:

1) Al enviar las variables a PHP se me carga la pagina PHP que no quiero que se muestre (lo que pretendo es enviarselas para que realice las operaciones necesarias pero manteniendo visualizada la pagina Flash).

2) Una vez que llegan las variables a PHP este modifica perfectamente el archivo XML, pero al recargar la pagina Flash me aparecen los datos sin modificar (si cierro la ventana y la vuelvo a abrir aparecen bien, es como si flash guardara los datos del XML en alguna especie de cache).

El codigo ActionScript es el siguiente (esta en un boton):

Código :

on (release) {
   var nombre:TextField = eval("_root.nombre"+_root.id);
   var puntuacion:TextField = eval("_root.puntuacion"+_root.id);
   var auxiliar:LoadVars = new LoadVars();
   nombre.border = false;
   nombre.selectable = false;
   auxiliar.id = _root.id;
   auxiliar.nombre = nombre.text;
   auxiliar.puntuacion = puntuacion.text;
   auxiliar.send("serpiente.php", "_self", "POST");
}


El codigo PHP es el siguiente:

Código :

<?php
$auxiliar = "";
$fichero = fopen("serpiente.xml", "r");
while(!feof($fichero))
   $auxiliar .= fgets($fichero, 4096);
fclose($fichero);
$array = explode("<RECORD>", $auxiliar);
$array[$_POST['id']+1] = "\n\t\t<NOMBRE>".$_POST['nombre']."</NOMBRE>\n\t\t<PUNTUACION>".$_POST['puntuacion']."</PUNTUACION>\n\t</RECORD>\n\t";
for($i = 1; $i < count($array); $i++)
   $array[$i] = "<RECORD>" . $array[$i];
$auxiliar = implode("", $array);
$fichero = fopen("serpiente.xml", "w");
fputs($fichero, $auxiliar);
fclose($fichero);
?>

Pues a ver si me podeis hechar una mano. Gracias y salu2.

Por opotonil

12 de clabLevel



 

unknown
Citar            
MensajeEscrito el 26 Sep 2004 06:04 pm
Te recomiendo MUCHISIMO que leas el tutorial de LoadVars
http://www.cristalab.com/vertutorial.php?id=6
Ya que cometes errores como

Código :

auxiliar.send("serpiente.php", "_self", "POST");

Aqui, el _self es el que hace que se te abra una pagina nueva con el resultado del PHP (Que claro, viendo tu PHP, no es nada al flujo de datos, pero si crea el archivo XML)

Deberias dejarlo como

Código :

auxiliar.sendAndLoad("serpiente.php", null, "POST");

Si lo que quieres es que no se muestre nada

Por otro lado, por el segundo punto detecto ... QUE ESTAS USANDO INTENET EXPLORER :shock: , no pense que hubiera gente aun usandolo

Esto que mencionas del segundo punto ocurre por el cache del navegador (Pero en RAM); que solo cambiara cuando lo vuelvas a iniciar (es decir, cerrar y abrir); en Firefox, por ejemplo; hacer un CONTRL+F5 bastaria

En esos casos, la mejor forma de evitar el cache es la siguiente; en el evento load del XML o del LoadVars cambiarlo por esto

Código :

Objeto.load("archivo.xml?nocache="+random(65000));

Con esto, solamente cambia la parte de archivo.xml y te aseguro que funcionara PERO no te funcionara en local

Por Freddie

BOFH

53 tutoriales
597 articulos
43 ejemplos

Genero:Masculino   Admin

Conserje de Cristalab

unknown

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.