Comunidad de diseño web y desarrollo en internet online

Enviar varible GET a Flash

Citar            
MensajeEscrito el 15 Sep 2008 04:33 pm
Se que esto se ha explicado muchísimas veces en este foro, pero lo que me ocurre es muy extraño, le estoy enviando a Flash una variable que viene por GET, resulta que tengo el swf incrustado en una página .php que le envía a Flash la variable de la siguiente manera:

Código :

echo chr(38) . "user=" . $_GET["username"] . chr(38);

Y en Flash la recibo así:

Código :

var lv_user:LoadVars = new LoadVars();
lv_user.load("trivias.php");//Trivias es el mismo archivo donde está alojado el swf
lv_user.onLoad = function(exito:Boolean):Void{
   if(exito){
      _global.username = lv_user.user;
   }else{
      _global.username = "No user";
   }
};

Lo hago con una variable global porque la película tiene una precarga que está en una escena aparte.

La cosa es que a Flash no llega el valor del $_GET, si hago esto:

Código :

echo chr(38) . "user=El user es " . $_GET["username"] . chr(38);

La película me imprime:
El user es

Nada más, no entiendo qué es lo que estoy haciendo mal, también lo he intentado por Flashvars y envíandolo por el embed pero ocurre lo mismo.

Si me pueden ayudar con esto se los agradezco un montón.
Buen día.

Por JohnRestrepo

21 de clabLevel



 

firefox
Citar            
MensajeEscrito el 15 Sep 2008 04:45 pm
No le veo mucho sentido a tu script. Una variable via GET va explícitamente en la url, así para que imprimiera algo deberías hacer

lv_user.load("trivias.php?user=pepe")

Pero en ese caso ya sabes el user. El PHP debe pasarle a Flash un dato que este no sepa. ¿Cual es el objetivo de la consulta al PHP? Si es una página que recibe por GET la variable y carga todo el swf, lo que tienes que hacer es ponerlo en el Object y Embed ( src="algun.swf?user<?php echo $_GET['user']; ?>") o por flashvars

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 15 Sep 2008 04:49 pm
También lo intenté con ambas opciones y ocurre lo mismo, el objetivo del script es traerme el nombre del usuario de un CMS al que no tengo acceso, por lo tanto me van a enviar el username por la url como "trampa", por lo menos para validar quién está jugando, alguna sugerencia para recibir este username?
Gracias

Por JohnRestrepo

21 de clabLevel



 

firefox
Citar            
MensajeEscrito el 15 Sep 2008 05:19 pm
Me parece que tienes una confusión. El workflow que describo es el siguiente:

1. La url es http://www.misitio.com/mihome.php?user=pepe
2. En el tag embed y object le escribo el $_GET['user'] directamente a la url del swf que voy a cargar (de hecho yendo al source code cuando lo cargo en el navegador lo veo)
3. En Flash aparece como una variable "mágicamente" en root, como ocurre con cualquier otro flashvars

Si este no es el workflow que necesitas, describe el tuyo

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 15 Sep 2008 05:29 pm
Así tal cual lo describes fue que hice una de las opciones que no funcionó.
Por eso es que cuando en el código HTML escribo lo siguiente:

Código :

      echo chr(38) . "user=cualquier texto " . $_GET["username"] . chr(38);


En Flash puedo leer la variable, incluso logro que me la imprima en un campo de texto dinámico, el problema es que en vez de imprimir:
cualquier texto pepe
(en caso de que pepe venga por la url como - user=pepe)

Me imprime:
cualquier texto

Esto quiere decir que la variable la estoy recibiendo bien pero el valor que viene por GET no llega hasta Flash, en cambio, esta si se imprime en el archivo .php, aparece lo siguiente al lado de la película:
&user=cualquier texto pepe$

No entiendo cuál pueda ser el problema, también lo intenté con Flashvars y ocurre igual.

Al hacer esto, recibo bien la variable pero no lo que trae el GET:

Código :

_global.username = _root.user;

Al parecer se pierde en algún lugar de la nada antes de entrar a Flash.

Por JohnRestrepo

21 de clabLevel



 

firefox
Citar            
MensajeEscrito el 15 Sep 2008 05:41 pm
Si el workflow es el que he explicado, para que muestre pepe la URL que tienes que tipear en tu navegador es:

http://www.misitio.com/mihome.php?user=pepe

Si pones

http://www.misitio.com/mihome.php

Lo imprime vacío, get it?

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 15 Sep 2008 06:14 pm
Got it,
eso hice, por eso es que la página imprime "pepe" al lado de la película.
Todo está en orden, el código está bien, es algo que he hecho varias veces antes y me ha funcionado, el problema debe ser algo extraño que no ocurre muy comúnmente, por favor, espero que le haya ocurrido a alguien antes para que me pueda ayudar.

Por JohnRestrepo

21 de clabLevel



 

firefox

 

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