WAP et les noms de domaine

Il est très pratique de réutiliser des codes HTML déjà existants, il peut donc être bénéfique que votre première page (page d’accueil) voit la différence entre un fureteur HTML et un fureteur mobile WML et qu’ainsi elle offre le contenu en conséquence. Ceci permet à la même adresse URL (votrenom.com) d’être utilisée afin de visualiser votre site HTML et votre site WAP.   

 

Le code PHP ci-dessous vous permet justement de le faire. Implanter ce code à l’intérieur d’une page INDEX.PHP, avant de charger votre site. Il tentera tout d’abord d’identifier le type de fureteur tentant d’accéder à votre site. Si le code PHP identifie un utilisateur WAP à partir de la liste potentielle de fureteurs WAP, il redirigera l’utilisateur (de manière transparente) vers les pages WML spécifiées. S’il n’identifie pas un fureteur WAP ou n’importe quel autre fureteur, il effectuera la redirection vers votre page HTML spécifiée. 

 

Implentation avancée: Ceci doit également être effectué sur le côté serveur, et le code PHHP suivant tentera de découvrir si la passerelle WAP en utilisation peut accepter le type MIME text/vnd.wap.vml. Sinon, il vérifiera les quatre premiers caractères dans la chaîne d’identification pour déterminer s’il s’agit d’un futeteur WML . S’il n’existe aucune correspondance, il est convenu qu’il s’agit d’un fureteur HTML. Avec la venue de nouveaux fureteurs WML, leurs chaînes d’identification doivent être ajoutées à la liste.   

 

Le code est basé sur le code de Robert Whitinger (robert@wapsight.com), lequel code est soumis à la liste de distribution de PHP, comprenant plusieurs additions de chaînes d’identification de fureteurs de la liste journaux de Don Amaro (donamaro.concepcion@nl.unisys.com).

 

 

 

Exemple de code:

<?

 // Puisque le script achemine de l’information en-tête HTTP, les premiers caractères dans le fichier doit être l’étiquette <? PHP tag.

  $htmlredirect = "/html/my_htmlpage.html";                          // URL relatif à votre fichier HTML 

  $wmlredirect = "http://wap.mysite.com/wml/my_wmldeck.wml";         // URL ABSOLUE vers votre fichier WML

  if(strpos(strtoupper($HTTP_ACCEPT),"VND.WAP.WML") > 0) {        // Vérifie si le fureteur/passerelle accepte WML.

    $br = "WML";

  }

  else {

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

    if($browser=="Noki" || // Téléphones Nokia phones et émulateurs

      $browser=="Eric" || // Téléphones Ericsson WAP et émulateurs

      $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" || // Fureteur WinWAP 

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

      $browser=="upsi" || // un autre type de fureteur UP  ??

      $browser=="QWAP" || // fureteur inconnu QWAPPER 

      $browser=="Jigs" || // fureteur inconnu JigSaw 

      $browser=="Java" || // fureteur inconnu Java based 

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

      $browser=="MITS" || // fureteur inconnu Mitsubishi 

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

      $browser=="My S" ||   // fureteur inconnu Ericsson devkit ?

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

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

      $browser=="ALAV" || // un autre fureteur inconnu UP based ?

      $browser=="Wapa")   // encore un autre fureteur inconnu (Web based "Wapalyzer"?)

        {

        $br = "WML";

    }

    else {

      $br = "HTML";

    }

  }

  if($br == "WML") {

    header("302 Moved Temporarily");       // Force le fureteur à charger le fichier WML au lieu de l’en-tête ("Location: ".$wmlredirect);

    exit;

  }

  else {

    header("302 Moved Temporarily");       // Force le fureteur à charger le fichier HTML au lieu de l’en-tête ("Location: ".$htmlredirect);

    exit;

  }

?>