设为首页
  网站地图
  联系我们

繁體 网通 English
香草种子
花卉种子
药材种子
蔬菜种子
草坪种子
更多分类
种子价格
栽培种植
动态 | 图片 | 邮箱 | 搜索 | 视频 | 黄页 | 图书 | 学院 | 供求 | 法规 | 地图 | 网址 | 工具 | 林木种子 | 城市 | 论坛
您目前所在的位置

首页>>网络学院>>正文

最新滚动新闻

福娃挂件
音像VCD光盘图片
种子中国祝全国人民新年快乐!
2008年适宜种植的中药材品种
黄金广告位 先到先得
注册阿里妈妈赚广告费
超级经典网页小图标
网通用户请点此处访问
在线电子万年历查询
玫瑰花种子

WAP网站(wml)开发技术


        $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") {
// Force the browser to load the WML file instead
    header("302 Moved Temporarily");
    header("Location: ".$wmlredirect);
    exit;
   }
   else {
// Force the browser to load the HTML file instead
    header("302 Moved Temporarily");
    header("Location: ".$htmlredirect);
    exit;
   }
  ?> 
    这个判断是在服务端完成的, PHP代码将首先查看网关是否接收text/vnd.wap.vml MIME类型。如果不是,将检测前面的字符,查看是否为WML浏览器。如果不符合,那么就假设为HTML浏览器。如果有新的WML浏览器,那么ID字符串也要增加。
    这个代码基于Robert Whitinger(robert@wapsight.com)的代码,使用了Don Amaro(donamaro.concepcion@nl.unisys.com)提供的列表。
    注意:由于只需要四个字符串就可以辨别,因此例如:"WapIDE-SDK/2.0;(R320s(Arial))" 可以使用“WapI”来代替是可行的做法,也是足够的。
    同样的功能也可以通过ASP来解决。先判断请求的是“/index.wml” 或者 “/index.html” 和所需要的MIME类型。另外以下的脚本辨别的方式和上面不一样。另外还需要网关告诉服务器它能接收 的text/vnd.wap.wml MIME类型。该例子如下所示:
<%
Response.Buffer = TRUE
  Dim IsWap
  httpAccept = LCase(Request.ServerVariables("HTTP_ACCEPT"))
  if Instr(httpAccept,"wap") then
  IsWap=1
  Else Response.Redirect "/index.html" : Response.Flush : Response.End
End if
%>
<%Response.ContentType = "text/vnd.wap.wml"%><?xml version="1.0"?>
<%Response.Flush%>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN"
"http://www.wapforum.org/DTD/wml_1.1.xml">
  <wml>
  <card id="redirect">
  <onevent type="onenterforward">
  <go href="/index.wml"/>
  </onevent>
  <p>
  <a href="/index.wml">enter</a>
  </p>
  </card>
  </wml>
  <%Response.Flush:Response.End%>
30. 如何判断访问者是来自哪个浏览器或者移动电话?
    可以通过检查HTTP_USER_AGENT标签来判断。例如试着使用Microsoft Internet Explorer访问一个站点的时候,HTTP_USER_AGENT将返回:Mozilla/4.0 (compatible;MSIE 5.0; Windows 98);在同样的情况下使用Nokia 7110访问这个站点,HTTP_USER_AGENT就会是:Nokia7110/1.0(04.73)。据此可以判断用户代理是什么类型的。
31. 可以得到用户代理的电话号码吗?
    不可以,除非网关支持这个特点,WAP没有办法知道用户的电话号码。
32. 可以通过WML使得可以用WAP设备进行拨号吗?
    WAP的电话功能可以使用Wireless Telephony Application Interface(WTAI)。
    例如:
        WMLScript: WTAPublic.MakeCall("9287787"); 
    但是第一代的WAP设备不支持这个功能。

33. 能够从WAP设备中读取数据吗,例如:电话号码?
    这里有一些通过HTTP的信息,但是十分有限。既然只有网关发送过来少量的信息,像WAP设备的号码可能无法读取。同时,在某些国家这还涉及到个人隐私的问题。
    基本上丢弃的内容就是WAP网关传送给HTTP服务器的内容。这不同于WAP网关到网关。Phone.com的UP.Link网关是一个最好的例子。因为它在HTTP头中返回一个字符串叫做 UP_X_SUBNO,里面包含了电话号码。Ericsson网关将传送一个辨别设备用的字符串,但是在明文中没有电话号码。
    每次WAP设备向HTTP服务器请求一个URL,WAP网关就会将信息传送给HTTP服务器。
    以下的PHP脚本显示了从网关过来的所有HTTP头的信息。可以使用WML浏览器进行测试。(http://wap.colorline.no/clientinfo.html)。其他的例子也可以在下面的UTL中找到:http://wap.colorline.no/demos.html
    第一个部分是取得所有的标准HTTP头信息。第二个部分是提取一个内容。
<?
  header("Content-type: text/vnd.wap.wml");
  echo("<?xml version=\"1.0\"?>\n");
echo("<!DOCTYPE wml PUBLIC \"-//WAPFORUM//DTD WML 1.1//EN\"
\"http://www.wapforum.org/DTD/wml_1.1.xml\">\n\n");
  echo("<!—Code written in Microsoft NOTEPAD.EXE  \n");
?>
<wml>
  <card id="init" title="Client Info">
    <p>
      <?
        // First part – standard HTTP stuff
        $headers = getallheaders();
        while (list($header, $value) = each($headers)) {
          echo strtoupper($header). ": ". $value. "<br/>\n";       
        }
        // Second part
// IP address of the client side
        echo("REMOTE_ADDR: ".$REMOTE_ADDR. "<br/>\n");
// Port at the client side
        echo("REMOTE_PORT: ".$REMOTE_PORT. "<br/>\n");
// Name of authenticated user
        echo("REMOTE_USER: ".$REMOTE_USER. "<br/>\n");
// Gateway Interface type
        echo("GATEWAY_INTERFACE: ".$GATEWAY_INTERFACE. "<br/>\n");
// Protocol used by the server
        echo("SERVER_PROTOCOL: ".$SERVER_PROTOCOL. "<br/>\n");
// Request Method
        echo("REQUEST_METHOD: ".$REQUEST_METHOD. "<br/>\n");
// Connection type
        echo("HTTP_CONNECTION: ".$HTTP_CONNECTION. "<br/>\n");
// Host it connected via (proxy)
        echo("HTTP_VIA: ".$HTTP_VIA. "<br/>\n");
      ?>
    </p>
  </card>
</wml> 
    Henrik Gemal (gemal@dk.net)也有一个在线的基于WML的工具BrowserSpy,来显示更多关于HTTP头的信息、服务器环境和用户的浏览器等等。有关这个工具的详细情况可以浏览http://wap.gemal.dk/
    Werner Forkel 提交了一个Perl的脚本,可以显示电话号码(如果有)。可以在以下位置测试:http://wap.colorline.no/wap-faq/apps/subnotest.wml,同样也收集在:http://wap.colorline.no/demos.html.
    这些程序只适合某个网关。如果要测试其他的网关,可能就显示不出电话号码。因此电话号码不能作为ID号来处理。至少因为不是一个全球的标准。

本内容共8页,当前在第4页  1  2  3  4  5  6  7  8  

更多精彩内容请点击 更多精彩内容请点击
 
下一篇
WEB标准
上一篇
CSS完全教程

点此处与我们在线交流&或给我们留言
Copy Of Right © 2004 - 2008 Zhongzi.net, All Rights Reserved
版权所有:种子中国 运营:种子中国网络信息中心
电话:021-54081687 传真:021-51901687
Email/Msn: web@zhongzi.net
沪ICP备05000005号 公安机关网络备案许可证
支付宝信任商家
工商执照
支付宝信任商家
Seedchina,chinaseed,Seeds,flowers