Comunidad de diseño web y desarrollo en internet online

Object AsyncToken

Citar            
MensajeEscrito el 30 Mar 2009 04:25 am
hola que tal queiro poner el contador de visitas en mi web el tema es que estoy trabajando con php + mysql con weborb.. pasa que cuando mi remoteobject pide el numero de visitas en vez de poner el numero pone... Object AsyncToken
dejo codigos..

Aplicacion Flex

Código :

<?xml version="1.0" encoding="utf-8"?>
<mx:Canvas label="Home" creationComplete="init()" xmlns:mx="http://www.adobe.com/2006/mxml"  width="100%" height="100%">
   <mx:Script>
      <![CDATA[
         import mx.rpc.events.ResultEvent;
         import mx.controls.Alert;
         import mx.rpc.events.FaultEvent;
         
            public function onServiceFault(fault:FaultEvent):void{
      Alert.show("Codigo:\n" + fault.fault.faultCode + "\n\nMensaje:\n" 
                                      + fault.fault.faultString + "\n\nDetalles:\n" + fault.fault.faultDetail);
   }
   
         private function init():void{
            this.contVisitas.contador();
         }
         
          private function onResult(event:ResultEvent):void{
                this.visitas.text = this.contVisitas.getVisitas().toString();
            }
            
            
      ]]>
   </mx:Script>          
             
   <mx:RemoteObject id="contVisitas"  
        destination="contador"

        showBusyCursor="true"
        fault="onServiceFault(event)"
        result="onResult(event)" 
    >        

    </mx:RemoteObject>
            
            <mx:Label text="Visitas:" y="374" x="437.5" fontWeight="bold"/>
            <mx:Label x="482.5" y="374" id="visitas"  />
         
         
</mx:Canvas>


codigo php

Código :

<?
require('inc_sql.php');
class contador{

   
    var $dbhost = HOSTNAME;
    var $dbname = DATABASE;
    var $dbuser = USERNAME;
    var $dbpass = PASSWORD;
   var $visitas=0;

    function contador(){
       $IP = $_SERVER['REMOTE_ADDR'];
       $fecha = date("j del n de Y");
       $hora = date("h:i:s");
       $segundos = time();
       $can = "3600";
       $resta = $segundos-$can;
       
       $this->conn = mysql_connect($this->dbhost, $this->dbuser, $this->dbpass) or die ("No se pudo conectar al motor");
        mysql_select_db ($this->dbname) or die ("No se pudo agarrar la bd");
      $sql = "SELECT segundos, IP ";
      $sql.= "FROM contador WHERE segundos >= $resta AND IP LIKE '$IP' ";
      mysql_query($sql); 
      $es = mysql_query($sql) or die("Error al leer base de datos: ".mysql_error);
      //se buscan los registros que num de seg mayor a num de seg hace una hora e IP
      if(mysql_num_rows($es)>0)
      {//no se cuenta la visita
      }
      else
      {
      $sql = "INSERT INTO contador (id, IP, fecha, hora, segundos) ";
      $sql.= "VALUES ('','$IP','$fecha','$hora','$segundos')";
      $es = mysql_query($sql) or die("Error al grabar un mensaje: ".mysql_error);
      }
      //creamos el condicionamiendo para loguearlo o no. 
      $sql = "SELECT * ";
      $sql.= "FROM contador WHERE id ";
      $es = mysql_query($sql) or die("Error al leer base de datos: ".mysql_error);
      $this->visitas = mysql_num_rows($es);
      
      }
      function getVisitas(){
      return $this-visitas;
      }
      
   }


?> 


que es lo que esta pasando? parece que el label no puede mostrar ese dato... como soluciono esto? gracias

Por aggust

26 de clabLevel



 

Argentina

firefox
Citar            
MensajeEscrito el 30 Mar 2009 12:09 pm
No estoy muy puesto con Weborb, pero en principio veo que estás haciendo el incremento de visitas en el constructor de la clase y que llamas a un nuevo método en el onResult ... considera hacer todo en un solo método que no sea el constructor, (por ejemplo poner todo en un método addVisit), ya que PHP no es persistente en el servidor, entonces la llamada a getVisitas te devolvera null

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 30 Mar 2009 01:52 pm
Muy bien hice lo que me dijiste y tenia un error de concepto en el weborb, tengo que mandar a correr la aplicacion y depsues ene l result tengo el valor que me devuelve , muchas gracias quedari asi el result.

private function onResult(event:ResultEvent):void{
this.visitas.text = event.result.toString();
}

gracias!

Por aggust

26 de clabLevel



 

Argentina

firefox

 

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