Instalar Handset Detection en local con WAMP y Windows

Por: Marcos Gonzalez Sancho (Redactor y Manager) 30 09 2008

Pues a raíz de un proyecto que hemos desarrollado en el estudio , hemos empleado el servicio para detección de dispositivos del que ya os hemos hablado en ocasiones, me refiero a Handset Detection.

Pongo aquí unos breves pasos de cómo poder ponerlo a andar en local, bajo una instalación WampServer y en Windows.

Con la mayoría de las instalaciones de WampServer, viene ya preparado todo para la instalación del framework PEAR, que es el que se requiere por defecto para hacer andar el ejemplo de Handset Detection, y que evidentemente facilita las cosas para ponerlo a funcionar.

El ejemplo con PHP del sistema es éste, y en el podéis observar que se usa un require, que busca el paquete HTTP_Request. Este paquete forma parte de un framework de clases denominado PEAR.

1) Instalando el paquete

Lo primero por tanto es lograr instalar dicho paquete PEAR en nuestro servidor local bajo Windows y WampServer. Si vamos a la carpeta donde hemos instalado el WampServer y miramos en la carpeta php, veremos que existe un fichero llamado go-pear.bat y otra carpeta llamada PEAR. Para una instalación local go-pear.bat es nuestro objetivo.

Al hacer doble clic sobre él se nos pregunta si la instalación es en un servidor o en local, escribirmos "local", y confirmamos escribiendo la palabra "yes".

Una vez que hemos hecho esto nos muestra una serie de rutas a configurar, que si tu instalación de WampServer ha sido típica (c:\wamp) no debes tocar nada.

Básicamente, pongo aquí lo que representa las 3 rutas más importantes de la instalación:

  • base $prefix (esta ruta es la instalación base de php en wamp, por lo que en una instalación típica como la que he comentado sería c:\wamp\php)
  • PHP Code $php_dir (esta ruta es el directorio donde se instalaran los paquetes PEAR, y que aconsejamos colocar en al carpeta PEAR de la carpeta php, que es donde viene preparado por defecto con la instalación de wampserver, por tanto sería: c:\wamp\php\pear)
  • Path to CLI php.exe (esta es la ruta donde se encuentra el ejecutable de php, en nuestro caso: c:\wamp\php)

Una vez que hemos continuado, procede a la instalación, es posible que nos arroje algunos WARNINGS relacionados con las últimas versiones de algunos paquetes de PEAR (pero que puede deberse a que nuestra instalación de wampserver no es la última o no está actualizada),

y finalmente nos consulta si queremos modificar el php.ini durante la instalación para proceder a incluir el path de los nuevos paquetes de clases.

Yo aquí he contestado que no, porque siempre prefiero modificar el php.ini a mano. Lo que hay que hacer es abrir el php.ini ( c:\wamp\Apache 2\bin\ ), localizar las lineas de Windows donde se trabaja el include_path, y añadir la siguiente línea (siguiendo con las rutas de nuestra instalación) a las que están comentadas con el ";"

include_path = ".;c:\wamp\php\pear"

Una vez hecho esto, guardamos php.ini, reiniciamos todos los servicios de Wamp y ya estamos listos para pasar a configurar el PEAR para poder usar Handset Detection.

2) Configuración y paquetes necesarios para usar Handset Detection.

Si la instalación ha ido bien, deberíamos poder acceder mediante la ventana de comandos MSDOS a la carpeta c:\wamp\php y alli ejecutar el comando "pear". Este comando nos mostrará una lista de las opciones que tiene. Eso quiere decir que la instalación ha sido correcta.

Para usar Handset Detection, se necesita usar la clase HTTP_Request, que a su vez emplea Net_Socket y Net_URL, con lo que primero pasamos a actualizar estas dos clases, y luego a descargar la clase HTTP_Request.

Para actualizar un paquete sería en la misma línea de comandos:

> pear upgrade Net_Socket

y posteriormente

> pear upgrade Net_URL

Finalmente una vez que tenemos esos paquetes actualizados pasamos a descargar el paquete HTTP_Request de la siguiente manera (también desde la línea de comandos)

> pear install HTTP_Request

Con eso todo debería estar listo. Solo nos queda poder hacer una prueba para ver si nos funciona correctamente. En general para conocer el nombre de cualquier paquete que necesitemos, ya sea para este caso o para cualquier otro, podéis encontrar la lista aquí.

3) Probando la instalación y configuración

Para probarlo lo mejor es crear en la carpeta www de la instalación wamp una página PHP que contenga el ejemplo de Handset Detection, o si queréis este otro (siemrpe que hayáis obtenido de la web de Handset Detection vuestra API KEY una vez registrados de forma gratuita):

PHP:
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  5. <title>[Q] :: Test Detección de Móvil</title>
  6.  
  7. </head>
  8.  
  9. <?php
  10. include "HTTP/Request.php";
  11. define('APIKEY','XXXXXXXXXX');
  12. define('HD_SERVER','http://c1.handsetdetection.com');
  13.  
  14. function sendxml($data, $url) {
  15.    
  16.     $str = "<?xml version=\"1.0\"?><request>";
  17.     foreach($data as $key => $value) {
  18.             $str .= "<$key>$value</$key>";
  19.     }
  20.     $str .= "</request>";
  21.    
  22.     // echo("Peticion: ".$str."<br />");
  23.    
  24.     $req =& new HTTP_Request($url);+
  25.     $req->addHeader("Content-Type", "text/xml");
  26.     $req->setMethod(HTTP_REQUEST_METHOD_POST);
  27.     $req->addRawPostData($str);
  28.     $req->sendRequest();
  29.     $reply = $req->getResponseBody();
  30.    
  31.     // echo("RESPUESTA: ".$reply." <br />");
  32.     return simplexml_load_string($reply);
  33. }
  34.  
  35.  
  36. function doDetect() {
  37.     $options = array('display','flash_lite');
  38.    
  39.     $data = array();
  40.     $data['apikey'] = APIKEY;
  41.  
  42.     // Pick up user agent from headers passed to the server 
  43.     $data['User-Agent'] = $_SERVER['HTTP_USER_AGENT'];
  44.    
  45.     // Random ip address. (Yes - its designed to get it totally wrong sometimes)
  46.     $data['ipaddress'] = $_SERVER['REMOTE_ADDR'];
  47.  
  48.     $str = ""
  49.     // Load up the options array with some random data;
  50.     for($i=0; $i <count($options); $i++)
  51.     {   
  52.           $str .= $options[$i].",";
  53.     }
  54.     $data['options'] = substr($str, 0, sizeof($str)-2);;
  55.  
  56.     // Passing $_SERVER options in is optional.
  57.     $data = array_merge ($data, $_SERVER);
  58.    
  59.     // $result = sendjson($data, HD_SERVER."/devices/detect.json");
  60.     $result = sendxml($data, HD_SERVER."/devices/detect.xml");
  61.  
  62.     return $result;
  63. }
  64.  
  65.  
  66. ?>
  67.  
  68. <body>
  69.     <h1>Test detección de Móvil</h1>
  70.     <h2>Handset Detection System</h2>
  71.     <h3>Resultado del test:</h3>
  72.    
  73.     <?php
  74.         $resultado = doDetect();
  75.     ?>
  76.    
  77.     <dl>
  78.         <dt>MENSAJE:</dt>
  79.         <dd><?php echo($resultado->message); ?></dd>
  80.         <dt>DISPLAY WIDTH:</dt>
  81.         <dd><?php echo($resultado->display->resolution_width); ?></dd>
  82.         <dt>DISPLAY HEIGHT:</dt>
  83.         <dd><?php echo($resultado->display->resolution_height); ?></dd>
  84.         <dt>FLASH LITE SCREENSAVER:</dt>
  85.         <dd><?php echo($resultado->flash_lite->fl_screensaver); ?></dd>
  86.         <dt>FLASH LITE STANDALONE:</dt>
  87.         <dd><?php echo($resultado->flash_lite->fl_standalone); ?></dd>
  88.     </dl>
  89. </body>
  90. </html>

Donde XXX...XXX es la APIKEY que hemos logrado al registrarnos en el sistema.

Si entramos con el navegador, y nos arroja resultados, ya sea un mensaje de Not Found o un mensaje con unos valores, quiere decir que la instalación de pear y la comunicación con Handset Detection está realizada de forma correcta!

Si accedemos a esta página desde un terminal móvil (se puede acceder a un servidor local desde un móvil habilitando una serie de parámetros en la instalación del equipo local, y accediendo con la IP local, por ejemplo: http://192.168.1.34/testmovil/index.php), debería detectarnos nuestro terminal y sacar el ancho de pantalla, el alto y las capacidades flash lite que se indican.

Finalmente esperamos poder poneros la segunda parte de este tutorial que será la que explique como instalarlo en un hosting compartido, sin acceso como administrador del mismo (que según PEAR, es posible mediante un go-pear.php).

Compártenos:
  • Digg
  • del.icio.us
  • Facebook
  • Google Bookmarks
  • LinkedIn
  • Meneame
  • Netvibes
  • RSS
  • Technorati
  • Twitter
  • Yahoo! Bookmarks

 

Si te ha gustado esta entrada quizá también te puede interesar:



Acciones

Informacion

3 respuestas a “Instalar Handset Detection en local con WAMP y Windows”

30 09 2008
Raul Jimenez (23:23:07) :

Plas! Plas! Plas!

Bravo, buenísimo el tutorial. Yo he de decir que antes era de WampServer, aunque ahora me estoy decantando más por XAMPP, que me parece algo más completo.

De todas formas, ambos programas son muy buenos y cualquier elección creo que es acertada ;)

Por cierto, un buen complemento al tutorial de instalación de WURFL y WALL.

Deu!!

4 10 2008
Instalar Handset Detection en local con WAMP y Windows | 2flash2furious :: diseño gráfico, web & multimedia :: por [Q] interactiva (10:01:44) :

[...] Blocketpc > Instalar Handset Detection en local con WAMP y Windows [...]

14 02 2009
Instalar Handset Detection en un Hosting Compartido LAMP | BlocketPc :: Flash Lite y Mobile Web (00:21:30) :

[...] ya os indicamos el paso a paso para probar Handset Detection en local con WAMP, ahora toca el turno a la versión más práctica del mismo proceso, que es la que nos permite [...]

Deje un comentario

usted puede usar estos tags : <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>



Get Adobe Flash playerPlugin by wpburn.com wordpress themes
cialis every day cialis viagra paypal discount viagra, cialis cialis for order cialis canada cialis splitting cialis dosing sublingual cialis super cialis cialis for daily use cialis generic cialis soft tabs online cialis + alcohol lisinopril and cialis interaction cialis en ligne buy generic cialis how often can you take cialis cheep daily cialis coreg cialis viagra cialis cialis comprar cialis dosage super cialis cheap reviews for viagra cialis and levitra cialis kaufen cialis demonstration cialis from india cialis example cialis without prescription cialis + pricing online cialis super active no prescription generic generic cialis overnight comprar cialis levitra cialis overnight shipping of professional cialis buying cialis 36 hour cialis tadafil generic cialis cialis coments blog cialis from india comparison cialis levitra clinical performance cialis free sample coupon generic cialis in stock india viagra cialis vicodin cialis brand cialis fast shipping cialis sales cialis coupons buy cialis canada generic cialis from india cialis professional chewable cialis athletes and cialis why the bath tub in cialis commercials cheap generic cialis cialis by mail cialis release news cialis compra cialis 20mg generic cialis cheapest cialis sample pamphlet non generic cialis cialis and women cialis sildenafil comparison cheap cialis si cialis cialis 36 cialis levitra sales viagra cheapest generic cialis cialis bathtub viagra cialis extra buy cialis no prescription cialis in stock side effects of cialis cialis on line cialis generic cheapest cialis online cialis for women side effects cialis buy sustanon cialis cialis for less cialis forum how to take cialis cialis free samples cialis 72 hour cialis prescription cialis coupon cialis paypal order cialis online cialis attorney ohio cialis discounts online generic cialis cialis generic sales in united states cialis in mexico cialis discount overnight generic cialis cialis versus viagra cialis patent cialis side affects cialis acheter cialis online australia women and cialis liquid cialis cialis and effet thrapeutique