Foros del Web » Programando para Internet » PHP »

Pasar una variable a través de varias páginas

Estas en el tema de Pasar una variable a través de varias páginas en el foro de PHP en Foros del Web. Buenas. Estoy creando una página web donde se puede jugar a minijuegos flash, los cuales también estoy creando yo. Puedes jugar a ese juego contra ...
  #1 (permalink)  
Antiguo 23/03/2012, 05:43
liranan
Invitado
 
Mensajes: n/a
Puntos:
Pasar una variable a través de varias páginas

Buenas.
Estoy creando una página web donde se puede jugar a minijuegos flash, los cuales también estoy creando yo.

Puedes jugar a ese juego contra otro usuario que está registrado en la base de datos.

El caso es que en una tabla de base de datos recojo quién está jugando contra quién en cada momento, sus datos y un código de partida para que cada partida sea única.

Este código tiene que crearse en el momento que se crea la partida y luego recogerse al final, para comparar resultados entre ambos jugadores, incluyendo su paso por AS3, mientras juegas al juego, que ahí es donde ya le pierdo la pista.

Uso PHP para conexión con base de datos.

Gracias
  #2 (permalink)  
Antiguo 23/03/2012, 06:33
 
Fecha de Ingreso: julio-2008
Ubicación: Barcelona
Mensajes: 2.100
Antigüedad: 15 años, 8 meses
Puntos: 165
Respuesta: Pasar una variable a través de varias páginas

No entiendo muy bien el problema..
__________________
Gracias por el Karma :D

empleo ofertas de trabajo
  #3 (permalink)  
Antiguo 23/03/2012, 06:38
liranan
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Pasar una variable a través de varias páginas

Supongo que el problema podría definirse así:

- Recoger una variable php con as3, realizar el juego, y después volver a mandar esa misma variable a php desde as3.

ó

- Recuperar una variable php después de que termine un juego flash. Por ejemplo con el Game Over
  #4 (permalink)  
Antiguo 23/03/2012, 07:09
 
Fecha de Ingreso: julio-2008
Ubicación: Barcelona
Mensajes: 2.100
Antigüedad: 15 años, 8 meses
Puntos: 165
Respuesta: Pasar una variable a través de varias páginas

No se si esto te servirá:

http://www.wuup.co.uk/as3-basics-sen...rom-as3-to-php

Un saludo!
__________________
Gracias por el Karma :D

empleo ofertas de trabajo
  #5 (permalink)  
Antiguo 23/03/2012, 07:29
liranan
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Pasar una variable a través de varias páginas

Gracias por el interés.

Esa parte ya la tengo resuelta, he logrado mandar una variable de as3 a php anteriormente (en concreto la puntuación).

Lo que no logro es hacer lo contrario, recoger con as3 una variable de php... he visto montones de tutoriales y en algun punto lo hago mal, pero el código es muy difícil de rastrear para ver el problema.

También me pregunto si sería posible la opción dos:

De alguna forma determinar que el juego flash ha terminado de jugarse...
  #6 (permalink)  
Antiguo 23/03/2012, 08:37
Avatar de JairLizcano  
Fecha de Ingreso: junio-2008
Ubicación: Santander, Colombia
Mensajes: 608
Antigüedad: 15 años, 10 meses
Puntos: 53
Respuesta: Pasar una variable a través de varias páginas

Para tu primer caso lo idea es que en un determinado archivo PHP hagas un output con cierto formato, posiblemente JSON, y evidentemente sea AS3 quien lo interprete. Desconozco AS3 realmente, pero debería tener ese formato de intercambio de datos.

Y para tu opción dos, ¿lo que quieres es indicarle al servidor que el juego ha terminado y posteriormente registrarlo en la base de datos?
__________________
Programar dejó de ser una profesión acusada en la oscuridad y disfrutada fríamente... para convertirse en un arte.
  #7 (permalink)  
Antiguo 23/03/2012, 09:13
liranan
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Pasar una variable a través de varias páginas

Gracias por la respuesta, JairLizcano.

Con que uno de los métodos me funcione me vale, no sé nada de json pero intentaré mirarlo antes de volver a currar el lunes.

Voy a explicar el caso paso a paso por si a ti o a otra persona se le ocurre otra solución:

- Al pulsar sobre el perfil de otro jugador, se crea en la base de datos un registro de que ambos van a efectuar una partida. Esa partida se graba con un código único (auto-incremental). Ese es el valor clave. (página: juegos.php)

- Se manda al usuario a la página donde está alojado el juego, que comienza directamente. En este momento el valor clave está recogido en una variable gracias al método POST (página: pantallaJuego.php)

- Comienza el juego, al terminar, se manda al usuario a otra página donde se muestran los resultados de la partida. Para mostrarlos, debo poder acceder al valor clave en la base de datos, pero he perdido la variable de referencia en el paso anterior. (página: pantallaResultado.php)

En este paso, es donde me pierdo: las opciones son las que he dicho,

- recoger el dato en as3 y luego mandarlo junto con la puntuación del juego a php cuando el as3 redireccione a la página pantallaResultado.php

- o bien esperar a que el juego termine, y crear un botón "Terminar" o "Seguir" que te envíe a la página pantallaResultado.php junto con la variable mediante POST o GET.
  #8 (permalink)  
Antiguo 26/03/2012, 03:15
liranan
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Pasar una variable a través de varias páginas

Buenas, al final lo conseguí resolver por pura casualidad; así que dejo la SOLUCIÓN por si alguien tuviera el mismo problema.

Para pasar una variable de php a as3 y luego de vuelta:

- Al embeber el archivo flash, se puede definir un parámetro que se llama "FlashVars", en el cual por pares puedes definir nombre de variable y valor que vas a pasar a actionscript3, de la siguiente manera:

<PARAM NAME="FlashVars" VALUE="variable1=Hola%Mundo">

ó

<PARAM NAME="FlashVars" VALUE="variable1=$miTexto">

En el archivo flash recibes la variable con un sencillísimo comando:

var variableRecibida:Object =
LoaderInfo(this.root.loaderInfo).parameters.variab le1;

Para devolver la variable de as3 a php, también es sencillo, si alguien tiene que llegue a leer esto tiene dudas a ese respecto que ponga un comentario en este tema y yo le cuento.
  #9 (permalink)  
Antiguo 26/03/2012, 06:00
Avatar de Nemutagk
Colaborador
 
Fecha de Ingreso: marzo-2004
Ubicación: México
Mensajes: 2.633
Antigüedad: 20 años
Puntos: 406
Respuesta: Pasar una variable a través de varias páginas

Tu solución es sencilla, pero espero que esa variable no sea en absoluto importante, ya que cualquiera que juegue puede manipularla como el quiera! espero allas pensado en esto!
__________________
Listo?, tendría que tener 60 puntos menos de IQ para considerarme listo!!!
-- Sheldon Cooper
http://twitter.com/nemutagk
PD: No contestaré temas vía mensaje personal =)
  #10 (permalink)  
Antiguo 26/03/2012, 06:35
liranan
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Pasar una variable a través de varias páginas

No sabía que pudiera ser modificada por alguien que juegue. Cómo es posible? Pueden acceder al código del juego?

En temas de seguridad no tengo ni idea. Alguna sugerencia entonces?
  #11 (permalink)  
Antiguo 26/03/2012, 06:40
Avatar de Nemutagk
Colaborador
 
Fecha de Ingreso: marzo-2004
Ubicación: México
Mensajes: 2.633
Antigüedad: 20 años
Puntos: 406
Respuesta: Pasar una variable a través de varias páginas

Si yo accedo a tu página puedo manipular todo el DOM de la página web en tiempo real desde el navegador, por lo tanto ese tag HTML yo le puedo dar el valor que yo quiero a tu "variable1", la única opción que tienes es que flash le pregunte directamente a PHP sobre dicha variable, checa la documentación sobre URLRequest() de as3!
__________________
Listo?, tendría que tener 60 puntos menos de IQ para considerarme listo!!!
-- Sheldon Cooper
http://twitter.com/nemutagk
PD: No contestaré temas vía mensaje personal =)
  #12 (permalink)  
Antiguo 26/03/2012, 07:48
liranan
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Pasar una variable a través de varias páginas

Muchas gracias por la info. En un futuro de momento bastante lejano, se espera que la página conlleve movimientos de dinero, así que no puedo permitirme fallos de seguridad de este tipo.

Ya había estado tonteando con el paso de variables php a as3; así que dejaré esto de momento como solución temporal y seguiré intentando el otro sistema.
  #13 (permalink)  
Antiguo 28/06/2012, 09:28
 
Fecha de Ingreso: junio-2012
Mensajes: 1
Antigüedad: 11 años, 9 meses
Puntos: 0
Respuesta: Pasar una variable a través de varias páginas

Hola liranan, pudiste resolver el problema de pasar la variable de AS3 a PHP, tengo el mismo problema y no logro solucionarlo, tienes algún ejemplo que me pueda ayudar.
  #14 (permalink)  
Antiguo 29/06/2012, 00:56
liranan
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Pasar una variable a través de varias páginas

Sí que lo logré, Jo_man17. Te cuento un poco cómo lo hago.

Pasar una variable de actionscript a php es bastante sencillo, necesitas hacer lo siguiente

documento flash

Lo primero de todo, importar al principio de tu documento los eventos necesarios para lo que queremos hacer:

Código:
import flash.net.*
De esa forma importarás todos los eventos necesarios, y algunos que no, pero no sé exactamente cuáles son así que mejor asegurarse.

Luego necesitas crear las variables que vas a necesitar, que serían estas:

Código:
private var req:URLRequest=new URLRequest("http://www.tupagina.php");
private var loader:URLLoader = new URLLoader();
private var variable:URLVariables;
- La variable "req" recoge la dirección de la página a la que quieres enviar la información. A mi me dio muchos quebraderos de cabeza porque uso un servidor local: mi url queda más o menos así: "http://127.0.0.1/pantallaFinJuego.php", por si te sirve de guía.
- La variable loader es la que cargará la página
- La variable "variable" (o como la quieres llamar) es en la que almacenarás los datos que se pasarán de una página a otra.

Ahora solo tienes que meter la variable as3 que quieras dentro de la variable "variable", de la siguiente manera:

Código:
variable.datosphp = datosas3;
req.method = URLRequestMethod.POST;
req.data = variable;
navigateToURL(req, '_self');
En el ejemplo, tienes una variable llamada datosas3 que es una variable de actionscript normal y la estás metiendo dentro de una especie de paquete de información (la variable "variable", y concretamente dentro de una nueva variable, digamos "puente", que se llama datosphp y conectará ambos lenguajes).
Después eliges el método de envío, si eliges POST irá oculto, y si eliges GET se mostrará en la barra de navegación.
Indicas que los datos que vas a mandar son los que están incluidos dentro de la variable de nombre "variable" y le mandas a navegar hacia tu página.
Ya está hecho, ahora solo tienes que recoger los datos en php como lo harías con cualquier POST, te dejo un ejemplo de código por si acaso.

codigo php
Código PHP:
     $datosrecogidos $_POST['datosphp']; 
Ya tienes los datos en php para hacer con ellos lo que quieras. Si necesitas saber cómo mandar datos de php a as3 dímelo pero no te podré contestar hasta la semana que viene.
Por cierto, recientemente también he aprendido a pasar datos de javascript a actionscript y viceversa, y es bastante más fácil.

Etiquetas: as3
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 16:48.