WAP y Nombres de Dominio

Es muy práctico reutilizar un código existente de HTML, esto puede ser de beneficio para tener su primera página (homepage) diferenciada entre un navegador de escritorio HTML y un navegador móvil WML y servir el contenido según sea el caso. Esto le permite el mismo URL (sunombre.com) para ser usado tanto por su sitio HTML como por su sitio WAP.  

 

El siguiente código PHP le permite implementar este código en una página  INDEX.PHP  antes que cualquier contenido de su sitio sea cargado. Este primero tratará de identificar que tipo de navegador está tratando de alcanzar su sitio. Si el código PHP identifica un usuario WAP de la lista de posibles navegadores WAP, redireccionará al usuario a la página VML especificada. Si este no identifica un navegador WAP o cualquier otro navegador, lo redireccionará a la página HTML especificada.

 

Implementación Avanzada: Esto necesita ser hecho en el lado del servidor y el siguiente código PHP primero intentará descubrir si la entrada WAP que está siendo utilizada puede aceptar el tipo MIME text/vnd.wap.vml. Si no, revisará los primeros cuatro caracteres en la cadena de identificación (ID string) para determinar si es un navegador VML. Si no hay concordancia, este asume que es un navegador HTML. Como un navegador VML vaya saliendo, sus cadenas de Identificación (ID strings) deben ser añadidos a la lista.

 

El código está basado en el código propuesto por Robert Whitinger (robert@wapsight.com) en la lista de correo de PHP con varias adiciones para los ID string de los archivos logs del navegador por Don Amaro (donamaro.concepcion@nl.unisys.com).

 

 

 

Ejemplo de Código:

<?

 // Debido a que este script envía un encabezado de información HTTP el primer carácter en el archivo debe ser el

 <? PHP tag.

  $htmlredirect = "/html/my_htmlpage.html";  // URL relativo a su archivo HTML

  $wmlredirect = "http://wap.mysite.com/wml/my_wmldeck.wml"; // URL ABSOLUTO para su archivo VML  

  if(strpos(strtoupper($HTTP_ACCEPT),"VND.WAP.WML") > 0) {  // Revisa si el navegador/gateway dice si acepta VML.

    $br = "WML";

  }

  else {

    $browser=substr(trim($HTTP_USER_AGENT),0,4);

    if($browser=="Noki" || // Teléfonos Nokia y emuladores

      $browser=="Eric" || // Ericsson WAP teléfonos y emuladores

      $browser=="WapI" || // Ericsson WapIDE 2.0

      $browser=="MC21" || // Ericsson MC218

      $browser=="AUR " || // Ericsson R320

      $browser=="R380" || // Ericsson R380

      $browser=="UP.B" || // UP.Browser

      $browser=="WinW" || // WinWAP browser

      $browser=="UPG1" || // UP.SDK 4.0

      $browser=="upsi" || // another kind of UP.Browser ??

      $browser=="QWAP" || // unknown QWAPPER browser

      $browser=="Jigs" || // unknown JigSaw browser

      $browser=="Java" || // unknown Java based browser

      $browser=="Alca" || // unknown Alcatel-BE3 browser (UP based?)

      $browser=="MITS" || // unknown Mitsubishi browser

      $browser=="MOT-" || // unknown browser (UP based?)

      $browser=="My S" || // unknown Ericsson devkit browser ?

      $browser=="WAPJ" || // Virtual WAPJAG www.wapjag.de

      $browser=="fetc" || // fetchpage.cgi Perl script from www.wapcab.de

      $browser=="ALAV" || // yet another unknown UP based browser ?

      $browser=="Wapa")// another unknown browser (Web based "Wapalyzer"?)

        {

        $br = "WML";

    }

    else {

      $br = "HTML";

    }

  }

  if($br == "WML") {

    header("302 Moved Temporarily");  // Forza al navegador a cargar el archivo VML en su lugar

    header("Location: ".$wmlredirect);

    exit;

  }

  else {

    header("302 Moved Temporarily");       // Forza al navegador a cargar el archivo HTML en su lugar

    header("Location: ".$htmlredirect);

    exit;

  }

?>