Comunidad de diseño web y desarrollo en internet online

Contador de visitas en AS3

Citar            
MensajeEscrito el 01 Mar 2012 08:52 pm
Buenas a todos. Lo primero enhorabuena por esta maravillosa pagina.
Mi pregunta es la siguiente. Me gustaria insertar un contador de visitas en la pagina de un colegio. He leido que tengo que hacer un fichero txt, uno php y un flash. He probado varios codigos pero en ninguno me sale. Alguien sabe como tendria que hacer para insertar el contador en mi index.swf??
Gracias

Por mariobenede

9 de clabLevel



 

chrome
Citar            
MensajeEscrito el 02 Mar 2012 03:13 am
¿Tu host soporta PHP? ¿Lo que probaste usa la misma versión de AS que tu peli?

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 02 Mar 2012 10:58 am
Si el host soporta php. Y el problema es que todo lo que he encontrado no me ha funcionado. se me queda en 1 parado. No se si es AS3 o AS2. La web esta en AS3.

http://www.cristalab.com/tutoriales/contador-de-visitas-en-flash-c120l/

este es el que he seguido

Gracias

Por mariobenede

9 de clabLevel



 

chrome
Citar            
MensajeEscrito el 02 Mar 2012 11:21 am
Mira a borrar cache cada vez que cargas la página, si la has colgado pon la URL y miramos por que no suma (por ejemplo, puede que PHP no tenga derechos de escritura sobre el txt)

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 02 Mar 2012 01:25 pm
http://cp.mariobenedetti.rivas.educa.madrid.org/

Ahora no se que pasa me da undefined. Os pego los códigos.

codigo flash counter.php


<?php include("counter.php"); ?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="es" lang="es">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>flash_counter</title>
</head>
<body bgcolor="#ffffff">
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0" width="250" height="50" id="flash_counter" align="middle">
<param name="allowScriptAccess" value="sameDomain" />
<param name="movie" value="flash_counter.swf" />
<param name="quality" value="high" />
<param name="bgcolor" value="#ffffff" />
<param name="Flashvars" value="counter=<?print($total);?>" />
<embed src="flash_counter.swf" Flashvars="counter=<?print($total);?>" quality="high" bgcolor="#ffffff" width="250" height="50" name="flash_counter" align="middle" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />
</object>
</body>
</html>



codigo counter.php

<?php

// Declaramos el archivo, en donde se acumulará el numero de visitas.
$archivo = "contador.txt";

// Abrimos el archivo como solo de lectura
$abre = fopen($archivo, "r");

// Leemos el contenido del archivo, cabe decir que la funcion fread(int fp, int length), lo que hace, es leer hasta length
//bytes del archivo referenciado en el apuntador fp.
$total = fread($abre, filesize($archivo));

// Una vez leido cerramos la conexión al archivo.
fclose($abre);

// Abrimos nuevamente el archivo,pero ahora para agregar datos.
$abre = fopen($archivo, "w");

// Cada vez que se muestre la página, que se acumule una visitas, o sea aumentamos el contador en 1, cada vez.
$total = $total + 1;

// Y reemplazamos el antiguo valor, por la nueva cantidad de visitas.
$grabar = fwrite($abre, $total);

// Cerramos la conexión al archivo (Ahora si es la última).
fclose($abre);

?>



flash_counter.fla

//creamos una caja de texto
_root.createTextField("counter_txt",12369,10,10,100,30);
counter_txt.border = true;
//Le asignamos a la caja de texto, el valor de la variable declarada desde FlashVars llamada counter
counter_txt.text = _root.counter;

index.html


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="es" xml:lang="es">
<head>
<title>flash_counter</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<style type="text/css" media="screen">
html, body { height:100%; background-color: #ffffff;}
body { margin:0; padding:0; overflow:hidden; }
#flashContent { width:100%; height:100%; }
</style>
</head>
<body>
<div id="flashContent">
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="250" height="50" id="flash_counter" align="middle">
<param name="movie" value="flash_counter.swf" />
<param name="quality" value="high" />
<param name="bgcolor" value="#ffffff" />
<param name="Flashvars" value="counter=<($total)>/>
<param name="play" value="true" />
<param name="loop" value="true" />
<param name="wmode" value="window" />
<param name="scale" value="showall" />
<param name="menu" value="true" />
<param name="devicefont" value="false" />
<param name="salign" value="" />
<param name="allowScriptAccess" value="sameDomain" />
<!--[if !IE]>-->
<object type="application/x-shockwave-flash" data="flash_counter.swf" width="250" height="50">
<embed src="flash_counter.swf" Flashvars="counter=<?print($total);?> />
<param name="movie" value="flash_counter.swf" />
<param name="quality" value="high" />
<param name="bgcolor" value="#ffffff" />
<param name="play" value="true" />
<param name="loop" value="true" />
<param name="wmode" value="window" />
<param name="scale" value="showall" />
<param name="menu" value="true" />
<param name="devicefont" value="false" />
<param name="salign" value="" />
<param name="allowScriptAccess" value="sameDomain" />
<!--<![endif]-->
<a href="http://www.adobe.com/go/getflash">
<img src="http://www.adobe.com/images/shared/download_buttons/get_flash_player.gif" alt="Obtener Adobe Flash Player" />
</a>
<!--[if !IE]>-->
</object>
<!--<![endif]-->
</object>
</div>
</body>
</html>



Para editar flash uso adobe flash professional 5.5

Gracias por el interes

Por mariobenede

9 de clabLevel



 

chrome
Citar            
MensajeEscrito el 02 Mar 2012 02:10 pm
Pero tienes que usar el primer HTML que pusiste, y estás usando el último, donde el flashvars no está

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 02 Mar 2012 02:47 pm
Mira ahora he probado asi.
Creo que yo solo me estoy liando

index.html

<html xmlns="http://www.w3.org/1999/xhtml" lang="es" xml:lang="es">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>flash_counter</title>
</head>
<body bgcolor="#ffffff">
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0" width="250" height="50" id="flash_counter" align="middle">
<param name="allowScriptAccess" value="sameDomain" />
<param name="movie" value="flash_counter.swf" />
<param name="quality" value="high" />
<param name="bgcolor" value="#ffffff" />
<param name="Flashvars" value="counter=<?print($total);?>" />
<embed src="flash_counter.swf" Flashvars="counter=<?print($total);?>" quality="high" bgcolor="#ffffff" width="250" height="50" name="flash_counter" align="middle" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />
</object>
</body>
</html>


flash_counter.php

<?php include("counter.php"); ?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="es" lang="es">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>flash_counter</title>
</head>
<body bgcolor="#ffffff">
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0" width="250" height="50" id="flash_counter" align="middle">
<param name="allowScriptAccess" value="sameDomain" />
<param name="movie" value="flash_counter.swf" />
<param name="quality" value="high" />
<param name="bgcolor" value="#ffffff" />
<param name="Flashvars" value="counter=<?print($total);?>" />
<embed src="flash_counter.swf" Flashvars="counter=<?print($total);?>" quality="high" bgcolor="#ffffff" width="250" height="50" name="flash_counter" align="middle" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />
</object>
</body>
</html>


counter.php

<?php

// Declaramos el archivo, en donde se acumulará el numero de visitas.
$archivo = "contador.txt";

// Abrimos el archivo como solo de lectura
$abre = fopen($archivo, "r");

// Leemos el contenido del archivo, cabe decir que la funcion fread(int fp, int length), lo que hace, es leer hasta length
//bytes del archivo referenciado en el apuntador fp.
$total = fread($abre, filesize($archivo));

// Una vez leido cerramos la conexión al archivo.
fclose($abre);

// Abrimos nuevamente el archivo,pero ahora para agregar datos.
$abre = fopen($archivo, "w");

// Cada vez que se muestre la página, que se acumule una visitas, o sea aumentamos el contador en 1, cada vez.
$total = $total + 1;

// Y reemplazamos el antiguo valor, por la nueva cantidad de visitas.
$grabar = fwrite($abre, $total);

// Cerramos la conexión al archivo (Ahora si es la última).
fclose($abre);

?>


contador.txt
0

flash_counter.fla (igual que venia, publico el swf con adobe flash professional cs5.5)

//creamos una caja de texto
_root.createTextField("counter_txt",12369,10,10,100,30);
counter_txt.border = true;
//Le asignamos a la caja de texto, el valor de la variable declarada desde FlashVars llamada counter
counter_txt.text = _root.counter;


Y ya puedes ver el resultado en el link
http://cp.mariobenedetti.rivas.educa.madrid.org/
un desastre :shock:

Por mariobenede

9 de clabLevel



 

chrome
Citar            
MensajeEscrito el 02 Mar 2012 03:03 pm
En el código fuente, donde tienes

<?print($total);?>

pon

<?php echo $total; ?>

Si soporta PHP y la variable no ha sido seteada debería salir en blanco.
Igual para asegurarte que tienes PHP, sube una página con esto:

<?php
phpinfo();
?>

Llámala info.php y abrela en el navegador, te debería tirar toda la info sobre el PHP instalado

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 02 Mar 2012 03:24 pm
ya esta el info.php

cp.mariobenedetti.rivas.educa.madrid.org/info.php

¿Lo que me estas diciendo que cambie es el el flash_counter.php?¿tambien en el index.html?

Por mariobenede

9 de clabLevel



 

chrome
Citar            
MensajeEscrito el 02 Mar 2012 03:27 pm
Esta claro que algo mal debo estar haciendo porque ahora me sale

<?php echo $total; ?> dentro del recuadro

Una pregunta, en el archivo fla no tengo que hacer nada dentro del cuadro de texto como lei en un foro en ingles no?
Crear una texto dinamico o algo asi?

Por mariobenede

9 de clabLevel



 

chrome
Citar            
MensajeEscrito el 02 Mar 2012 03:30 pm
Bien, tienes PHP, quita ese info.php ya mismo, era solo a nivel informativo
Ahora renombra el HTML a index.php y prueba de nuevo

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 02 Mar 2012 06:04 pm
Buenas noticias parece que esto avanza.
Ahora el cuadrado me sale en blanco.

Por mariobenede

9 de clabLevel



 

chrome
Citar            
MensajeEscrito el 02 Mar 2012 06:10 pm
¿Ok, tienes el include de contador.php?
Ves un archivo que se llama "contador.txt ?

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 02 Mar 2012 06:11 pm
si tengo un contador.txt dentro escribi 0

Por mariobenede

9 de clabLevel



 

chrome
Citar            
MensajeEscrito el 02 Mar 2012 06:15 pm
Asegúrate que el archivo de texto tiene permisos de escritura. Desde tu programa de FTP, dale click derecho al archivo y cambiale los permisos a 777

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 02 Mar 2012 06:22 pm
el problema que tengo ahora es que lo subo desde el servidor de educamadrid. No me da opcion cambiar eso a 777. Solo veo chmod cuando pulso boton derecho. Pero cuando le doy para que me cambie a write no me deja.
Podria hacerlo desde un programa ftp si me dices alguno, que no conozco ninguno

Por mariobenede

9 de clabLevel



 

chrome
Citar            
MensajeEscrito el 02 Mar 2012 06:31 pm
ya me he instalado uno el filezilla.
Puede ser que mi servidor tenga restringido el cambio a 777? Porque le he puesto 777 a ese archivo y me ha dicho esto
Comando: SITE CHMOD 777 contador.txt
Respuesta: 500 Unknown SITE command.

Por mariobenede

9 de clabLevel



 

chrome
Citar            
MensajeEscrito el 02 Mar 2012 06:41 pm
Si no le das permiso de escritura (intenta con 775) no hay manera de que PHP escriba la cantidad de visitas. Eventualmente deberás contactar con algún administrador del sistema

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 02 Mar 2012 06:48 pm
Bueno seguire intentandolo, sino tendre que esperar al lunes.
Una preguntilla mas. por cierto enhorabuena por tu web muy currada e interesante.
A la hora de incrustar mi contador en la web del colegio, supongo que tendre que introducir la información del fla en una capa nueva y las acciones en esa misma capa no?

Por mariobenede

9 de clabLevel



 

chrome
Citar            
MensajeEscrito el 02 Mar 2012 06:52 pm
Pones la caja de texto en algún lado y la programación en el timeline donde tengas la caja de texto, el ejemplo que estás haciendo está en AS2, así que tienes que setear la publicación de esa forma.

rivas.educa.madrid.org ?

¿Estás en Rivas Vaciamadrid?, yo viví 3 años allí !

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 02 Mar 2012 07:14 pm
El contador esta en AS2
pues vaya la pagina web la tengo entera en AS3 asi que no creo que me valga de nada.
si en el mario benedetti de rivas

Por mariobenede

9 de clabLevel



 

chrome
Citar            
MensajeEscrito el 02 Mar 2012 07:44 pm
Usando flashvars necesitas solamente una sola línea (suponiendo que el campo de texto lo agregues a mano)

counter_txt.text = LoaderInfo(this.root.loaderInfo).parameters.counter;

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 02 Mar 2012 08:24 pm
vaya pues muchas gracias
mañana intentare avanzar en lo de 777 y te comentare.
ERes una maquina

Por mariobenede

9 de clabLevel



 

chrome
Citar            
MensajeEscrito el 05 Mar 2012 02:40 pm
Buenas Jorge. A ver te comento

me han puesto el contador .txt con permiso 744. Es decir, lectura, escritura y ejecución para su usuario, que me han dicho que soy quien lo ejecuta.
Por motivos de seguridad no puede haber ficheros con 777. Pero esto no es problema ya que, como me han indicado, es mi usuario quien lo ejecuta y puedo hacer lo que precise con el archivo.

De hecho, me han dicho que han ejecutado desde su navegador el fichero counter.php, y han visto como si que se escribe correctamente sobre el fichero contador.txt. Lo han cargado un par de veces y ahora guarda el valor 2. O sea que desde php si que tiene permisos para escribir dicho fichero. Yo lo he comprobado y efectivamente si avanza. Lo que pasa es que me debe fallar algo en el codigo o no he hecho algo para que no se vea nada.

Por cierto este codigo era para AS2 no? Para AS3 si consigo que funcione algun dia este es muy dificil adaptarlo?

Gracias
Nacho

Por mariobenede

9 de clabLevel



 

msie7
Citar            
MensajeEscrito el 05 Mar 2012 02:47 pm
Usando flashvars necesitas solamente una sola línea (suponiendo que el campo de texto lo agregues a mano)

counter_txt.text = LoaderInfo(this.root.loaderInfo).parameters.counter;

Con eso debería aparecerte en as3, suponiendo que el flashvars se lo estés pasando y que el código este en la misma línea de tiempo que el campo de texto

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

safari
Citar            
MensajeEscrito el 05 Mar 2012 02:52 pm
Lo que no acabo de entender, es lo siguiente. Yo solo he dejado en el servidor los archivos del contador. Luego entiendo que da igual que sea as2 que as3. Entonces que tengo mal en el código si en el counter.php si se escribe porque no me sale en pantallla?

Gracias Jorge

Por mariobenede

9 de clabLevel



 

chrome
Citar            
MensajeEscrito el 05 Mar 2012 03:59 pm
Si la pagina es http://cp.mariobenedetti.rivas.educa.madrid.org/ , no veo que este imprimiendo el flashvars (esto es previo a lo de flash)

Carga esa URL y mira el codigo fuente de la página, veras algo asi:

<embed src="flash_counter.swf" Flashvars="counter=" quality="high"

Donde dice Flashvars="counter=" el PHP no esta imprimiento la cantidad, es decir parece que no abre el archivo o que algo esta fallando, sino debiera decir algo asi

Flashvars="counter=2"

Si Flash no recibe el flashvars no mostrara nada, no importa si es as2 o as3, lo primero es que reciba el dato

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

msie

 

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