Comunidad de diseño web y desarrollo en internet online

Ayuda con contador de visitas en AS3-PHP. Devuelve undefined.

Citar            
MensajeEscrito el 24 Sep 2012 05:06 pm
Saludos:
Voy a tratar de explicar el problema lo mas resumido posible. Tengo un contador de visitas que hice en AS3 y PHP. Lo hice siguiendo un videotutorial de YouTube.
El problema surge que cuando lo pruebo en servidor local, me da el siguiente error:

undefined
TypeError: Error #2007: El valor del parámetro text debe ser distinto de null.
at flash.text::TextField/set text()
at CreaTexto()
at MethodInfo-190()
at flash.events::EventDispatcher/dispatchEventFunction()
at flash.events::EventDispatcher/dispatchEvent()
at flash.net::URLLoader/onComplete()

El "undefined" lo tengo por un trace que le hago a la variable que deberia volver de php. Pero el archivo sigue sumando, es decir que el php deberia funcionar bien. Hice la prueba en servidor tambien y no muestra nada.
Estoy con una clase de texto que cree para hacer los textos de la pagina, tambien he probado con textos dinamicos que trae el mismo flash, pero igualmente siguen los problemas. Les dejo el codigo:

En la linea de tiempo de flash:

Código ActionScript :

function contador()
{
   var variableURL:URLVariables = new URLVariables();
   var varEnvio:URLRequest = new URLRequest("./php/contador.php");
   varEnvio.method = URLRequestMethod.POST;
   varEnvio.data = variableURL;

   var varLoader:URLLoader = new URLLoader();
   varLoader.dataFormat = URLLoaderDataFormat.VARIABLES;
   varLoader.addEventListener(Event.COMPLETE, envioCompleto);

   variableURL.requestCode = "add1";
   varLoader.load(varEnvio);




   function envioCompleto(event:Event):void
   {
      var countVar = event.target.data.phpCountVar;

      trace(countVar);
      var contador_txt:CreaTexto = new CreaTexto(countVar,cuadro,20,50,0,0,"0x000000");
      cuadro.addChild(contador_txt);
      cuadro.cuenta_txt.text = countVar;

   }
}


Y el codigo de php:

Código PHP :

<?php
   if ($_POST['requestCode'] == "add1") {
      $txtDatabase = "contador.txt";
      $currentNumber = file_get_contents($txtDatabase,true);
      
      $fh = fopen($txtDatabase,'w') or die("No puedo abrir el archivo");
      
      $newNumber = $currentNumber + 1;
      
      $data = "$newNumber";
      fwrite($fh, $data);
      fclose(fh);
      
      print "phpCountVar=$newNumber";
      
   }
?>


He intentado reemplazar el "print" por "echo" en php pero el resultado es el mismo. Ejecutando la pagina php desde mi servidor local, imprime esto:

Notice: Undefined index: requestCode in C:\wamp\www\pruebas\2012\php\contador.php on line 2

Pero, si esta mal el php ¿porque el txt sigue sumando de a uno?. Si vuelvo a inicializar la variable de php, pierdo el valor que trae del txt ¿no?.
En cuanto al fla, ¿puede ser el hecho de que tenga funciones anidadas que de error?, porque el ejemplo que vi no estaba todo el codigo dentro de la funcion. Yo llamo a la funcion "contador()" una linea antes de definirla. Pero tambien le he cambiado de lugar y el resultado es el mismo.
Tambien intente colocar a todos los archivos en la misma carpeta del fla, pero todo igual.

Agradezco cualquier tipo de ayuda que pueda guiarme.
Muchas gracias.
STARLANCER :wink:

Por starlancer

59 de clabLevel



 

msie
Citar            
MensajeEscrito el 25 Sep 2012 12:31 pm
Para evitar el notice, agrega esta linea al principio de tu PHP

error_reporting(E_ALL ^ E_NOTICE);

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 25 Sep 2012 05:36 pm
Gracias por responder.
Ya agregue la linea, ahora me sale la pagina en blanco cuando ejecuto el php desde el navegador, siempre en mi servidor local. ¿Eso esta correcto, no?. Ahora me queda el error desde flash, el "undefined".

STARLANCER :wink:

Por starlancer

59 de clabLevel



 

msie
Citar            
MensajeEscrito el 25 Sep 2012 05:40 pm
La URL que tenes que poner es

http://localhost/mi.php?requestCode=add1

Donde tienes que adecuar la ruta, claro.

Lo que deberías ver es

phpCountVar=1

PHP tiene que tener derechos de escritura donde esté ... pero si no puede igual te imprime error

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 25 Sep 2012 05:47 pm
Me sigue imprimendo una pagina en blanco, tampoco puedo ver phpCountVar.

STARLANCER :wink:

Por starlancer

59 de clabLevel



 

msie
Citar            
MensajeEscrito el 25 Sep 2012 06:42 pm
¿Estas poniendo la URL correcta?, es decir

http://localhost/pruebas/2012/php/contador.php?requestCode=add1

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 26 Sep 2012 04:28 pm
Si, si.
Ejecuto desde el navegador el php y me sale la pagina en blanco. Desde flash y cambiando la direccion del URLRequest, el error es el mismo.
El error exacto es:

TypeError: Error #2007: El valor del parámetro text debe ser distinto de null.
at flash.text::TextField/set text()
at prueba_php_fla::MainTimeline/envioCompleto()
at flash.events::EventDispatcher/dispatchEventFunction()
at flash.events::EventDispatcher/dispatchEvent()
at flash.net::URLLoader/onComplete()


Espero puedas seguir ayudandome, medio extraño el error. Cree un nuevo .fla para probar solo esto y el error sigue.
Gracias
STARLANCER :wink:

Por starlancer

59 de clabLevel



 

msie
Citar            
MensajeEscrito el 26 Sep 2012 05:12 pm
Tienes que estar mirando el Flash desde el servidor, si quieres probarlo desde entro de Flash pon la ruta completa al PHP (http://localhost/...../tu.php) Como el argumento es por POST, al cargarlo directamente en el navegador no sale nada (deberías cambiarlo a GET para que funciona la URL http://localhost/mi.php?requestCode=add1 , en eso me equivoqué :(

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 26 Sep 2012 06:32 pm
Nada, me sigue todo igual.
Cambien los POST por GET de flash y de php tambien y nada, asique volvi como estaban.
Sinceramente no se porque sera porque al codigo lo vi funcionando.
Si tenes otra sugerencia te estoy agradecido, sino bueno, gracias igual por el tiempo que te tomaste. Me tiene muy desorientado esto.
Gracias
STARLANCER :wink:

Por starlancer

59 de clabLevel



 

msie
Citar            
MensajeEscrito el 26 Sep 2012 06:36 pm
Retrocede a lo mas básico, en PHP deja solo esto

echo "phpCountVar=2";

Ahora debiera funcionar desde Flash, aunque muestre siempre 2. Cambia el 2 por otro número, asegúrate que funciona. Si esto te anda, luego arrancamos

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 26 Sep 2012 06:51 pm
Nada. Desde flash sigue insistiendo en que "El valor del parámetro text debe ser distinto de null.". ¿No hay nada mal en el codigo?.
Desde el servidor si muestra phpCountVar=2.
Desde el servidor, note que en el archivo de texto el valor se incremente cada vez que actualizo la pagina, solo que no muestra nada en pantalla. Pero, esta actualizacion la hace cuando suprimo la primer linea:

Código PHP :

if ($_POST['requestCode'] == "add1") {


Al menos encontre que es lo que molesta, pero sigo sin entender porque el valor del archivo de texto se incremente, pero no lee nada desde flash. El, insiste en que el valor es nulo.

STARLANCER :wink:

Por starlancer

59 de clabLevel



 

msie
Citar            
MensajeEscrito el 26 Sep 2012 06:52 pm
Perdon, abriendo "contador.php" desde el servidor me muestra phpCountVar=2, nada desde flash. Se me paso, perdon.

STARLANCER

Por starlancer

59 de clabLevel



 

msie
Citar            
MensajeEscrito el 26 Sep 2012 06:54 pm
Entonces no est{a mandando el POST, puedes usar un sniffer com charlesproxy.com (o el mismo Firebug) para ver que esta pasando el flash y qu responde PHP

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 26 Sep 2012 07:01 pm
Tengo charlesproxy, pero necesitaria que me des una manito a ver como funciona y que debo ver en el.
STARLANCER :wink:

Por starlancer

59 de clabLevel



 

msie
Citar            
MensajeEscrito el 26 Sep 2012 07:29 pm

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox

 

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