Comunidad de diseño web y desarrollo en internet online

Flash remoting y GeoIp

Citar            
MensajeEscrito el 14 Abr 2006 04:37 pm
Tengo un problema. Estoy intentado crrear una aplicacion que desde el ordenador cliente y usando remoting, saque a traves de la IP la ciudad del cliente. El php y la base de datos, ya la tengo, la base de datos es un archivo .dat.
Si navego al php directamente funciona a la perfeccion.
El problema viene cuando intento que me pase los resultados a traves de remoting.
Intuyo que el problema esta en que el player, sea como un compilado o directamente sin usar el navegador, creo que no envia el encabezamiento http necesario para que el php funcione.
Dejo la funcion en Php por si alguien pudiera ayudarme a lograrlo.

Código :

<?php
class HelloWorld{
      function HelloWorld(){
         $this->methodTable = array(
            "getMessage" => array(
               "description" => "Este metodo regresa una cadena",
               "access" => "remote",
            )
         );
      }
      function getMessage(){
include("../../geoip/geoipcity.inc");

$gi = geoip_open("../../geoip/GeoIPCity.dat",GEOIP_STANDARD);

$record = geoip_record_by_addr($gi,$REMOTE_ADDR);

$mensaje = " Codigo pais " .$record->country_code. " Iniciales " .$record->country_code3. " Pais " .$record->country_name. " Ciudad " .$record->city. "\n";
     geoip_close($gi);
      return $mensaje;

      }
}
?>

####################################################
en el fla:

Código :

import mx.remoting.Connection;
import mx.remoting.Service;
import mx.remoting.PendingCall;
import mx.rpc.ResultEvent;
import mx.rpc.RelayResponder;
urlGateway = "http://localhos/conector/amfphp/gateway.php";
var myService:Service = new Service(urlGateway, null, "HelloWorld", null, null);
var Call:PendingCall = myService.getMessage();
Call.responder = new RelayResponder(this, "getData");
function getData(re:ResultEvent):Void {
   trace("Resultados: "+re.result);
   _root.respuesta.text = "Resultados: "+re.result;
}

Si en el PHP pongo:
$mensaje = print " Codigo pais " .$record->country_code. " Iniciales " .$record->country_code3. " Pais " .$record->country_name. " Ciudad " .$record->city. "\n";
la respuesta que me da es 1
si uso directamente
$REMOTE_ADDR en result, me da null

y tal y como esta ahora el mensaje que me da es
Codigo pais Iniciales Pais Ciudad

si uso el php directamente, reescrito que me de la respuesta a traves de un print, funciona a la perfeccion.
¿Que estoy haciendo mal?, ¿que estoy ignorando?.


De antemano, gracias por vuestra ayuda.

Por Crop

187 de clabLevel

2 tutoriales

 

firefox
Citar            
MensajeEscrito el 14 Abr 2006 06:14 pm
no soy ningun experto en este tema, pero no se debe escribir localhost???? tu has puesto localhos.... en tu urlgateway

Por DEPECHEBOY

6 de clabLevel



Genero:Masculino  

lima

opera
Citar            
MensajeEscrito el 14 Abr 2006 07:53 pm
El localhost es solo para este ejemplo, lo tengo en mi servidor en otra url, no la pongo porque no quiero visitas a un servicio que no esta disponible al publico

Por Crop

187 de clabLevel

2 tutoriales

 

firefox
Citar            
MensajeEscrito el 15 Abr 2006 08:26 pm
En el servidor esta instalado flash remoting o el AMFPHP?

Por edumaca

8 de clabLevel



Genero:Masculino  

Caracas

firefox
Citar            
MensajeEscrito el 15 Abr 2006 11:41 pm
Tengo instalado el paquete de AMFPHP

Por Crop

187 de clabLevel

2 tutoriales

 

firefox
Citar            
MensajeEscrito el 15 Abr 2006 11:45 pm
Mas exactamente, amfphp-1.2.3.
Tambien tengo la duda de si estoy tratando los datos correctamente o tendria que guardarlos como una variable y transformarlos en un string en el php, no soy muy ducho en la materia, pero creo que tal y como estan ahora son un objeto que no reconoce flash.

Por Crop

187 de clabLevel

2 tutoriales

 

firefox
Citar            
MensajeEscrito el 17 Abr 2006 12:46 pm
Comparto con la comunidad la solucion parcial que logre.
Tratando la ip de la siguiente forma logro que al menos me de La ciudad y el codigo regional, aunque aun no se porque no me da el resto de datos necesarios.
$ip = getenv('REMOTE_ADDR');
No me da ni el pais ni el codigo iso 3166, con lo que aun no puedo sacar la region ni el pais.
Estoy usando la api de maxmind.
Alguien tiene alguna idea.

Por Crop

187 de clabLevel

2 tutoriales

 

firefox

 

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