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

Saber desde que dirección han cargado un archivo flash de mi servidor

Estas en el tema de Saber desde que dirección han cargado un archivo flash de mi servidor en el foro de Flash y Actionscript en Foros del Web. Hola, a ver si me se explicar... quiero controlar desde que URLs cargan archivos flash de mi servidor... Lo que he hecho ha sido llamar ...
  #1 (permalink)  
Antiguo 01/08/2006, 15:43
 
Fecha de Ingreso: diciembre-2002
Ubicación: bilbao
Mensajes: 345
Antigüedad: 15 años
Puntos: 3
Saber desde que dirección han cargado un archivo flash de mi servidor

Hola, a ver si me se explicar...

quiero controlar desde que URLs cargan archivos flash de mi servidor...

Lo que he hecho ha sido llamar a un archivo PHP desde mis flash e intentar guardarlo con $_SERVER['HTTP_REFERER'] pero no lo guarda, ya que lo que hace es cargar el archivo flash en su servidor, nada q ver con esta variable...

quiero saber como poder hacer el saber desde que direccion cargan mis flashes toy desesperao

gracias de antemano
__________________
aste nagusia
  #2 (permalink)  
Antiguo 01/08/2006, 16:47
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Si conoces que FLash se ejecuta del lado del "cliente" .. veras que la única cosa que puedes hacer es ver donde se ejecuta la "pagina" que llama a tu flash .. (por lo demás "HTTP_REFERER" no es para nada seguro para ese tipo de validaciones) ..

Otra cosa será si el Action Script de Flash tiene algún tipo de soporte para ver el "cliente" donde se ejecuta o en que página va montado? .. En tal caso en el foro de Flash te orientaran.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #3 (permalink)  
Antiguo 01/08/2006, 16:54
 
Fecha de Ingreso: diciembre-2002
Ubicación: bilbao
Mensajes: 345
Antigüedad: 15 años
Puntos: 3
antes de venir al foro de PHP he preguntado en flash y me han dicho que venga a este.

Lo que quiero es saber desde que dirección cargan un flash de mi servidor en su web :(
__________________
aste nagusia
  #4 (permalink)  
Antiguo 01/08/2006, 21:37
 
Fecha de Ingreso: enero-2006
Ubicación: Buenos Aires, Argentina
Mensajes: 299
Antigüedad: 11 años, 11 meses
Puntos: 5
Buenas, cuál es exactamente la situación? Les proveés contenido Flash a otros sitios driectamente desde tu servidor y querés "trackear" cuántas visitas tiene ese contenido?

Te digo porque tal vez podrías arreglar con quienes incluyen el contenido que le pases un parámetro al swf, y desde el swf harías una llamada con LoadVars a un script php en tu server que llevaría el registro de visitas / url's.

Igual, hay una manera de hacer lo que buscás exclusivamente del lado del cliente, sin usar el referer que manda el navegador, aunque es un poco truculenta y requiere de una condición de parte de quien incluye un contenido:

Tendrías que compilar el swf para FlashPlayer 7 y quien lo incluye no debe agregar el tag "allowScriptAccess", que por defecto para FP7 y anteriores es always (bueno, si lo pone en always no hay problema). En FP8, por defecto el valor de ese parámetro es "sameDomain", por lo que explícitamente debería estar seteado en 'always', y eso depende del html que incluye el swf que está en tu servidor; el html está en el servidor de tu "cliente", llamémosle así, y no tenés control sobre él.

Pero fuera de eso, con un mínimo de javascript y usando un SharedObject (más php en tu servidor para llevar el "log)", se me ocurre una forma -- tal vez haya otras.

De todas formas, estás seguro de que no podés hacerlo como te dije más arriba?

Suerte
Califa
  #5 (permalink)  
Antiguo 02/08/2006, 02:10
 
Fecha de Ingreso: diciembre-2002
Ubicación: bilbao
Mensajes: 345
Antigüedad: 15 años
Puntos: 3
mira te explico se trata de una web de musica, entonces si eres webmaster y te gusta una cancion en concreto puedes coger el embed que ofrezco y pegarlo en tu web y te aparece la canción, ahora lo que quiero es saber en que webs pegan los embed...

saludos
__________________
aste nagusia
  #6 (permalink)  
Antiguo 02/08/2006, 19:18
 
Fecha de Ingreso: enero-2006
Ubicación: Buenos Aires, Argentina
Mensajes: 299
Antigüedad: 11 años, 11 meses
Puntos: 5
Bueno, la manera que se me ocurre de hacerlo, si no podés contar con que quien incluye el contenido te pase manualmente un parámetro, sería así.

Desde el swf, con javascript tomás la url del html que lo embebe, hacés una redirección a un script que lleve un "log", pasando esa url como parámetro. Ese script, pongamos en php, lo que hace es registrar en un txt esa url y la hora (o lo que fuera, podría grabar en una base de datos) e inmediatamente redirecciona al contenido original.

Con el SharedObject (las "cookies" de flash), te fijás si el usuario está entrando como lo haría normalmente, o si llega redireccionado desde tu server (si no chequearas esto, harías un "loop" infinito de redireccionamientos).

En caso de que haya entrado "normalmente", lo mandás a tu server, pasando la url; ahí grabás en el so un flag que indica que está registrado. Cuando vuelva al sitio original, redireccionado desde tu server, invertís el valor del flag, para que la próxima vez que entre, siga "trackeando".

Antes de hacer cualquier redirección, te fijás también si podés grabar SharedObjects (si no pudieras, entrarías en el loop infinito y sería bastante engorroso para el usuario).

Bueno, esa es la idea básica. Lo que tiene de "truculento" es que estás haciendo un redireccionamiento en vez de pasar parámetros en segundo plano, pero no veo otra forma, porque desde el swf no podés obtener la url (si podés, pero te daría la url desde donde el cliente descargó el swf, o sea tu servidor, lo cual no te sirve); y getURL() te permite ejecutar javascript, pero no devuelve valores al código actionscript, así que tenés que hacer todo en una misma operación. Que cargue dos veces el mismo swf no sería mayor problema, porque la segunda vez el archivo estaría cacheado por el navegador.

No es lo más elegante ni lo más óptimo, pero funciona y dadas las restricciones, puede ser una alternativa

Código:
var reg_so = SharedObject.getLocal("fReg","/");
reg_so.data.test = "1";
reg_so.flush();
if (reg_so.data.test != undefined ) {
	if (!reg_so.data.flagRegistrado || reg_so.data.flagRegistrado == undefined) {
		var str_js = "javascript:location.href = 'http://www.tuserver.com/trackearFlashl/log.php?url=' + window.location ; void(0);";
		reg_so.data.flagRegistrado = true;
		getURL(str_js);
	} else {
		reg_so.data.flagRegistrado = false;
	}
	reg_so.flush();
} else {
        // si no funciona el track, porque no se pueden usar SharedObjects
       // entrarías acá. Podrías mostrar o no el contenido, acá sería tu criterio...  
        trace("no se pueden guardar sharedObjects");
}
El log de php mínimamente podría ser algo así:

log.php
Código PHP:
error_reporting(E_NONE);
if (
$fp fopen("log.txt","a")) {
    
$str date("d-m-Y H:i:s") . "\t" $_GET['url'] . "\n";
    
fwrite($fp,$str);
    
fclose($fp);
}
header("location: {$_GET['url']}"); 

Para que funcione el código AS, el parámetro allowScriptAccess no puede estar ni en "never" ni en "sameDomain" (en esos casos no se ejecutaría el código javascript). Si el swf está exportado para FP7 o FP6 puede no estar o estar en "always" (que es el valor por defecto). Si es para 8, tiene que estar explícitamente en "always".

Suerte
Califa

Última edición por califa010; 02/08/2006 a las 19:43
  #7 (permalink)  
Antiguo 17/06/2008, 10:20
 
Fecha de Ingreso: junio-2008
Mensajes: 5
Antigüedad: 9 años, 5 meses
Puntos: 0
Respuesta: Saber desde que dirección han cargado un archivo flash de mi servidor

podre revivir este post?
pq veo que aca,,,tal vez me puedan ayudar.
necesito algo similar...pero distinto
necesito saber desde que pagina se esta cargando el flash, para poder mostrarla en un cuadro de texto.
por ejemplo, si la estoy cargando desde www.mipagina.com.ar/inicio.php querría mostrar inicio, si estoy en www.mipagina.com.ar/contacto.php mostrar contacto, y así, es por esto q quiero saber donde estoy :(.
y con this._url solo obtengo www.mipagina.com.ar/archivoswf.swf osea la dirección del archivo y no de donde lo cargo.

no se si tengo q meterle el código fla, o pasárselo por php .
Me podrán ayudar?
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 08:00.