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

Formulario Flash -> Generar txt a través de PHP

Estas en el tema de Formulario Flash -> Generar txt a través de PHP en el foro de Flash y Actionscript en Foros del Web. Qué tal, soy nuevo en este foro, mi nombre es Diego y espero que me puedan ayudar con un problemita bastante complejo que tengo debido ...
  #1 (permalink)  
Antiguo 01/01/2009, 15:55
de-troit
Invitado
 
Mensajes: n/a
Puntos:
Formulario Flash -> Generar txt a través de PHP

Qué tal, soy nuevo en este foro, mi nombre es Diego y espero que me puedan ayudar con un problemita bastante complejo que tengo debido a mi incapacidad de programar en PHP independientemente ya que soy solamente "hombre tutorial" hehehe.

Bueno les cuento, necesito hacer un formulario en Flash con 7 cuadros "text area" y que tenga un boton "submit" que envíe los datos ingresados a un PHP y que este guarde esos datos en un archivo ".txt" personalizado de la siguiente forma:

(Este será el documento de texto que se va a generar):
&descripcion=dato ingresado 1//dato ingresado 2//dato ingresado 3//...dato ingresado 7&
+
(Unas lineas de texto que quiero que se agreguen automaticamente)

[Lo que está en color gris es lo que debe agregarse automaticamente junto con lo ingresado en el formulario y lo que está con negro es lo que el usuario ingresó en el formulario] -> Para esto obviamente debemos generar el documento de texto "entero" nuevamente.

continuando la idea... es decir que el PHP debe colocar los datos ordenados de la forma anterior indicada para generar el documento de texto final, parece bastante complicado y lo peor es que no se casi nada de PHP es por eso que pido ayuda de aquellos que se manejan en el tema, ahora para que entiendan un poco más a qué va todo esto les explico por qué quiero hacer esto...

Resulta que necesito hacer un sistema para un Hotel la cuál consta de 7 tipos de habitaciones, y quiero que los dueños o encargados del Hotel puedan modificar a través del formulario cuáles son los días que las habitaciones están disponibles (para que los clientes se puedan informar a través de la web) y que en el formulario al presionar el boton "submit" los datos ingresados sean enviados al PHP como anteriormente explique que va a generar el documento de texto .txt de la forma anterior expuesta.

Ahora... por qué tiene que ser de la forma que mostre arriba?
Por lo siguiente, este es el sistema de noticias que creé que ira dentro de un Movieclip en la página del Hotel que estoy construyendo:

http://ritz88.110mb.com/Noticias/SistNot.html (Presionen la flecha)

Bueno, esto capaz que no lo entiendan pero quizás no es tan relevante ya que es solo para que entiendan por qué el texto debe ir estructurado asi... resulta que para que mi pelicula swf reconozca el modo del cómo va organizada la información, le puse un ActionScript en donde "&descripcion=" indica que ahí va el contenido que el dueño va a enviar a través de formulario (que son 7 partes), también "//" indica que hay una barra separadora, es decir, que cada // corresponde al texto de la siguiente habitación, y & al final obviamente es el cierre del indicador... como <? php al comienzo de un archivo php y ?> al final del mismo, bueno les dejo el .txt para que le echen un vistazo, comparen el txt con el link del swf que les puse antes y seguramente entenderán más:

http://ritz88.110mb.com/Noticias/Disponibilidad.txt

Es por eso que necesito generar el documento de texto con esa estructura, para que el Flash lo reconozca y lo sepa interpretar para organizar adecuadamente los datos dentro del texto dinámico (Sistema noticias online)...

Entonces si a tengo el formulario en Flash confeccionado... cómo hago el codigo para que estos datos se envien para generar el txt resultante (que debe guardar las modificaciones) pero personalizado como indiqué?

Se ve bastante complicado, para mi si, pero pero para los que ya han trabajo con este tipo de cosas quizás no tanto, solo el post resultó largo para poder explicarles bien lo que quiero hacer porque la idea es que entiendan tan bien como yo lo que quiero lograr para que me puedan orientar, muchas gracias y espero sus respuestas =)

Aquí les dejo una animación donde explico lo que quiero hacer:
ritz88.110mb.com/Expl.swf

Disculpen las molestias =/
  #2 (permalink)  
Antiguo 02/01/2009, 14:53
 
Fecha de Ingreso: septiembre-2008
Mensajes: 350
Antigüedad: 15 años, 7 meses
Puntos: 31
Respuesta: Formulario Flash -> Generar txt a través de PHP

Hola
aqui te dejo mas omenos como trabajar con php y Flash quizas te pueda ayudar te boy a dar una pequeña explicacion aunque
veo que manejas bien Flash.

en el primer Layer*/*Capa creas las cajas de texto
la primera tiene el Nombre*/*Instance Name: statustxtb y en Text Type Dynamic text

la segunda tiene el Nombre*/*Instance Name: inputData y en Text Type Input text

y luego la caja de texto Enviar para el Botón y presiona F8 y lo convierte a Movie Clip tiene el Nombre*/*Instance Name: submit

la tercera tiene el Nombre*/*Instance Name: responsetxtb y en Text Type Dynamic text

la cuarta tiene el Nombre*/*Instance Name: Errortrace y en Text Type Dynamic text

luego insertas un nueva Layer*/*Capa ese es para el ActionScript*/*Acciones
Click en el y F9 y le insertas este código:

Código PHP:
//Primero crea una función para ... el nombre lo dice.
function enviarDatosAlTextfile() {      
//este es el objetivo enviar loadVars, envía los datos al archivo php para que pueda ser procesado.   
submittedData = new LoadVars();      
//aquí se hace una variable "inputData" y como valor que es fijado al 
//valor de inputData del texto.     
submittedData.inputData inputData.text;      
//esta es nuestra respuesta loadVars objeto, es responsable de la recepción 
//de datos desde el Fichero php. cuando se presiona Enviar para recibirá los datos    
response = new LoadVars();      
/*
función "doThisOnResponse" en el
response.onLoad. así que cuando el onLoad se activa esta función se ejecuta.
*/      
response.onLoad doThisOnResponse;      
/* 
finalmente sendAndLoad para el Fichero PHP, es necesario 
para enviar los datos a nuestro Fichero php.
NOTA, asegúrese de establecer la Ruta correcto al archivo php o no trabajara.
*/      
submittedData.sendAndLoad("http://www.TuDominio.com/FilePHP.php"response"post");      
}; 
//esta es la función que se ejecuta en respuesta a ello, esta 
//función hace que todo se coloca en los lugares correctos. 
function doThisOnResponse(result) { 
//si el resultado es true, y los datos se ha recibido, se hace lo siguiente:     
if(result){           
//valor de "response.receivedData" en nuestro caja de texto "responsetxtb".          
responsetxtb.text response.receivedData;           
/* hacer una comprobación del estado en el archivo php, esto es cuando el 
valor de la variable que entra y
Se coloca en el "statustxtb" caja de texto. */            
statustxtb.text response.writeStatus;           
}else {
//si el Fichero PHP tiene un error de sintaxis etc. Se muestra este mensaje.
Errortrace.text "Error algo salió mal. o El Fichero PHP Tiene un Error";      
   }; 
}; 
//si se presiona Enviar enviarDatosAlTextfile() y se ejecuta la función
submit.onRelease = function() { 
enviarDatosAlTextfile(); 
}; 
Test Ctrl+Enter

no olvides editar www.TuDominio.com por la ruta del file php
y este es el código para: FilePHP.php TestPHP5
Código PHP:
<?php
$textf 
'myArchivoTest.txt';
//Recibe los datos del formulario de Flash
$RecibeDeFlash $_POST['inputData']; 
/*
Abre el fichero myArchivoTest.txt
Nota si se usa ( a ) y el fichero myArchivoTest.txt no existe lo creara.
si se usa ( r+ ) y el fichero myArchivoTest.txt no existe lanzara el mensaje de error que esta
en la linea 24
*/
$myArchivoTxt = @fopen("$textf","a"); 
$txtfileArray = @file("$textf"); 
if(
$myArchivoTxt){      
//echo "&writeStatus=txtFile is opened";      
foreach($txtfileArray as $count => $member);      
$gotoLastByteOfTxTFile = @fseek($myArchivoTxt,0,SEEK_END);      
$count $count 1;  
//Escribe el contenido del formulario Flash en el archivo   myArchivoTest.txt  
$ecribeEnArchivoTxt = @fwrite($myArchivoTxt,"\n Datos Recibidos del Formulario flash: $count = $RecibeDeFlash ");      
if(
$ecribeEnArchivoTxt){           
$writeStatus "El texto fue escrito en el Archivo $textf  ".$RecibeDeFlash;           
echo 
"&writeStatus=".$writeStatus;           
}else{      
$writeStatus "Error! No se escribio en el Archivo $textf";      
echo 
"&writeStatus=".$writeStatus;      
 }     
@
fclose($myArchivoTxt);      

}else{      
echo 
"&writeStatus=No se pudo abrir el Archivo: $textf";      
}
echo 
"&receivedData=".$RecibeDeFlash
?>
bueno ese código es para que te hagas un idea pero funciona bien y lo puedes editar
aquí te dejo una imagen.
Descargar. desde aquí Click Aquí puedes descargar todo el paquete completo incluido el file .fla


Imagen Flash

Última edición por thezzin; 02/01/2009 a las 15:39
  #3 (permalink)  
Antiguo 02/01/2009, 19:41
de-troit
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Formulario Flash -> Generar txt a través de PHP

Hola thezzin:

Primero que nada muchas gracias por el sistema me funcionó a la perfección, como dije no entiendo mucho de PHP, pero note que al introducir un nuevo texto este se guarda en el archivo txt al final conservando los otros pero necesito hacer que se borren los demás y se guarde solamente lo ultimo que se ingresa en el cuadro de texto... esta es la función que designa eso?

Código PHP:
[$gotoLastByteOfTxTFile = @fseek($myArchivoTxt,0,[B]SEEK_END[/B]); 
Cómo tendria que hacerlo para que de 7 cuadros de texto pueda el PHP recibir la información y agregarla de la siguiente forma al txt?:

&descripcion=Textocuadrotxt1//Textocuadrotxt2//...Textocuadrotxt7&

Saludos y diskulpa las molestias =)
Muchas gracias por el .fla ;)

Última edición por de-troit; 02/01/2009 a las 20:16
  #4 (permalink)  
Antiguo 02/01/2009, 22:21
 
Fecha de Ingreso: septiembre-2008
Mensajes: 350
Antigüedad: 15 años, 7 meses
Puntos: 31
Respuesta: Formulario Flash -> Generar txt a través de PHP

lo que tienes que hacer es agregar una nueva variable submittedData.inputDatab = inputDatab.text; al código del Flash y
agregar las cajas de texto.
y para que php Reescriba los datos en el file de texto cambia ( a ) por ( w+ )

Código PHP:
function enviarDatosAlTextfile() {      
submittedData = new LoadVars();
    
submittedData.inputData inputData.text;
//agregar una nueva una variable para una nueva caja de texto y así sucesivamente.
submittedData.inputDatab inputDatab.text;

response = new LoadVars(); 
response.onLoad doThisOnResponse;      
submittedData.sendAndLoad("FilePHP.php"response"post");      
};

function 
doThisOnResponse(result) { 
if(
result){           
//responsetxtb.text = response.receivedData;                 
statustxtb.text response.writeStatus;           
}else {
Errortrace.text "Error algo salió mal. o El Fichero PHP Tiene un Error";      
   }; 
}; 
submit.onRelease = function() { 
enviarDatosAlTextfile(); 
}; 
y también modificar el código php algo así como este
Código PHP:
<?php
$textf 
'myArchivoTest.txt';
//Recibe los datos del formulario de Flash
$RecibeA $_POST['inputData'];
$RecibeB $_POST['inputDatab']; 
/*para lo que tu quieres::: &descripcion=Textocuadrotxt1//Textocuadrotxt2//...Textocuadrotxt7&
 puedes hacer un arreglo algo así y así sucesivamente.
 */
$RecibeDeFlash "descripcion_1 = ".$RecibeA ." descripcion_2 = ".$RecibeB;
//y para que el file php Reescriba los datos en el file txt puedes cambia ( a ) por ( W+ )
$fpfopen("$textf","w+");
$ecribeEnArchivoTxt fwrite ($fp,"$RecibeDeFlash");

if(
$ecribeEnArchivoTxt){           
echo 
"&writeStatus=El texto fue escrito en el Archivo $textf \n".$RecibeDeFlash;           
}else{        
echo 
"&writeStatus=Error! No se escribio en el Archivo $textf";           
fclose($fp);     
}
//echo "&receivedData=".$RecibeDeFlash; 
?>
hecha un Vistazo a las Variables GET y POST y fwrite en la Web de PHP
http://us3.php.net/variables.external

http://us3.php.net/manual/es/function.fwrite.php

Recuerda que ese código flash ya lleva otra variable y tienes que agregar una nueva caja de texto con
el Nombre*/*Instance Name: inputDatab y en Text Type Input text

Última edición por thezzin; 02/01/2009 a las 22:36
  #5 (permalink)  
Antiguo 30/01/2009, 13:35
de-troit
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Formulario Flash -> Generar txt a través de PHP

Muchas gracias thezzin... me dió resultado pero la verdad es que de ActionScript no se nada, me funcionó el .php de maravilla, eso si lo probé con un formulario en html con varios textarea... pero hice el mismo formulario en Flash y se conecta con el php pero no guarda el contenido de los textarea en el txt... la verdad no se identificar que parte del código AS está mal... disculpa las molestias pero ojalá me puedas ayudar, teniendo bien esto estoy al otro lado... te dejo el código AS del formulario

Este es el formulario flash: http://chvaldivia.110mb.com/Formulario/Form.html

Aquí va el codigo AS contenido:
Código:
function enviarDatosAlTextfile() {        
submittedData = new LoadVars();      
submittedData.hab1 = hab1.TextArea;
submittedData.hab2 = hab2.TextArea;  
submittedData.hab3 = hab3.TextArea;  
submittedData.hab4 = hab4.TextArea;  
submittedData.hab5 = hab5.TextArea;  
submittedData.hab6 = hab6.TextArea;  
submittedData.hab7 = hab7.TextArea;  
response = new LoadVars();         
response.onLoad = doThisOnResponse;      
submittedData.sendAndLoad("http://chvaldivia.110mb.com/Formulario/Form.php", response, "post");
Errortxt.text = "Enviando - Esperando respuesta...";
}; 

function doThisOnResponse(result) { 
if(result){           
Errortxt.text = "Datos enviados correctamente";
}
else 
{
Errortxt.text = "Error: Los datos NO pudieron ser enviados correctamente";      
   }; 
}; 

submit.onRelease = function() { 
enviarDatosAlTextfile(); 
};
Cada textarea tiene el nombre correspondiente (hab1, hab2, hab3... hab7). Qué parte del código estará mal?

La idea es que se introduzcan los datos en este documento de texto (al no funcionar sale undefined): http://chvaldivia.110mb.com/Formulario/Disponibilidad.txt

Para que pruebes este es el formulario html que sí da resultado: http://chvaldivia.110mb.com/Formulario/Formulario.html

Saludos y muchas gracias, espero respuesta.
=)
  #6 (permalink)  
Antiguo 30/01/2009, 15:53
 
Fecha de Ingreso: septiembre-2008
Mensajes: 350
Antigüedad: 15 años, 7 meses
Puntos: 31
Respuesta: Formulario Flash -> Generar txt a través de PHP

-----------------------------------
y porque no cambias todo esto
-----------------------------------
Código:
submittedData.hab1 = hab1.TextArea;
submittedData.hab2 = hab2.TextArea;  
submittedData.hab3 = hab3.TextArea;  
submittedData.hab4 = hab4.TextArea;  
submittedData.hab5 = hab5.TextArea;  
submittedData.hab6 = hab6.TextArea;  
submittedData.hab7 = hab7.TextArea;
-----------------------------------
Por esto.
-----------------------------------
Código:
submittedData.hab1 = hab1.text;
submittedData.hab2 = hab2.text;  
submittedData.hab3 = hab3.text;  
submittedData.hab4 = hab4.text;  
submittedData.hab5 = hab5.text;  
submittedData.hab6 = hab6.text;  
submittedData.hab7 = hab7.text;

Si en el Line Type tienes definido MultiLine te tiene que funcionar


----
  #7 (permalink)  
Antiguo 30/01/2009, 22:05
de-troit
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Formulario Flash -> Generar txt a través de PHP

Ohh! Muchas gracias, fué tontera mia haber puesto

Código:
submittedData.hab1 = hab1.TextArea;
en vez de

Código:
submittedData.hab1 = hab1.text;
Pense que eso era valido para un cuadro text y no para textarea, funciona de maravilla, muchas gracias... 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:35.