首页   |  注册   |  登录   |  关于蓝鸟   |  技术文章   |  蓝鸟作品   |  给我留言   |  实用工具   |  繁体版
技术文章
   当前位置:首页 > 技术文章 > ASP专区 > ASP应用实例 > 所有信息
ASP开发的WAP格式简易邮件系统实例(2)
文章作者::懒羊    文章来源:IT168    录入时间:2008-5-26    浏览次数:      字体: 放大 默认 缩小

*name属性:指定了用来存储该输入文本的变量名字。

*title属性:该输入框的名字,同样可被用来作为概要CARD页中的选项名。

*type属性:默认值为text,如选择password,则输入的数据显示为*。

*&#118alue属性:在语法和行为上等同于下面的default属性,

*default属性:指定输入框的默认值,即name属性指定变量的默认值,当用户输入新值时,该值无效,如果该值不符合以下format属性的规定,则手机也忽略该默认值。

*format 属性:用来格式化输入的数据,可用的标记如下,使用时可用“一位数字标记”和“*标记”的形式,前者代表N个标记型字符,如3X, 后者代表任意个(小于maxlength属性的值)标记型字符。

标记   描述

A     任何符号或者大写字母(不包括数字)

a     任何符号或者小写字母(不包括数字)

N     任何数字(不包括符号或者字母)

X     任何符号、数字或者大写字母(不可改变为小写字母)

x     任何符号、数字或者小写字母(不可改变为大写字母)

M     任何符号、数字或者大写字母(可改变为小写字母)或者多个字符,默认为首字大写

m     任何符号、数字或者小写字母(可改变为大写字母)或者多个字符,默认为首字小写

*maxlength属性:指定了用户可输入的最大字符长度,最大限制为256个字符。

*emptyok属性:表示用户可否不填输入框,默认为false,即要填。

*size属性:输入框显示长度,目前未被支持。

*tabindex属性:类似于在HTML表单中按TAB键后,焦点落在哪个选项上,该值决定了这个选择顺序,数字大的排在后面。目前未被支持。

示例:
〈input type="text" title="用户名" name="user" maxlength="50"/〉

2、do元素

Do是WML语言中最有有价值的元素之一,它给用户提供一种在当前Card上进行"动作"的通用方法。

属性列表:

*type属性:告诉浏览器动作的意图。

WML总共声明了9个类型的动作,最常用的动作类型是"accept"和"option"。

1、accept,接受、确认

2、prev,返回上一个历史堆栈中的URL

3、help,请求帮助

4、reset,清除或者重置状态

5、options,根据当前页面的功能设置选项。

6、delete,删除选择条目

7、unknow,相当于空白字串

8、vnd.*。vnd.*及其它不同大小写组合[Vv][Nn][Dd].*。这种类型定义的都是vnd.cotype,用于激活供应商或用户浏览器自定义的某个特定功能,其中co为公司(company)名的缩写。

9、X-*与X-*。扩展类型,目前WML中还没有使用。

*label属性:设置按钮标题,显示在浏览器定义好的屏幕位置,不同浏览器地显示位置不同。如果不设置标题,按钮会按照浏览器的缺省格式显示,不同浏览器的缺省格式不同。

* name属性:按钮名称,可以用Card级的动作覆盖template上的同名动作,重新赋予那些动作新的任务。

*optional属性:来定义一个按钮是否显示,设置为True时会被浏览器忽略。

〈do type="accept" label="发送" optional="false"〉
{Content}
〈/do〉

3、go元素

用来指示浏览器显示指定的URL,包括DECK的第一个CARD或者指定的CARD。语法如下:

〈go href="url" sendreferer="false|true" method="get|post" accept-charset="charset"〉
  〈postfield name="name" &#118alue="&#118alue"/〉
  〈setvar name="name" &#118alue="&#118alue"/〉
  〈/go〉

其中href属性为必选,其他为可选。

*sendreferer属性:是否传递当前页的URL,默认值为false。

*method属性:和HTML中的表单FORM的method属性一样,指定表单是以get的方式还是post的方式递交,默认的值为get,但如果未指定method但〈go〉〈/go〉间存在〈postfield〉,手机自动以post方式传递。

*accept-charset 属性:可覆盖在HTTP头里指定的字符集,可以写多个字符集,如accept-charset="UTF-8,US-ASCII, ISO-8859-1"。

〈postfield name="name" &#118alue="&#118alue"/〉可以看作是HTML表单FORM中的〈INPUT TYPE="HIDDEN" NAME="变量名" &#118alue="值"〉,通过它可以向指定的URL传递以“变量名/值”形式的数据。name和&#118alue属性都是必选的。注意只有这里的变量是用来递交给CGI程序的。

除了〈postfield〉,还可以在〈go〉和〈/go〉间加入一句或者多句〈setvar name="name" &#118alue="&#118alue"/〉,该语句的意思是,当触发某一事件时,给变量赋值。

示例:
〈go href="main.asp" method="post" accept-charset="utf-8"〉
  〈postfield name="user" &#118alue="$(user)"/〉
  〈postfield name="pwd" &#118alue="$(pwd)"/〉〈/go〉
  〈/do〉

邮件登陆界面源码: Index.asp

〈% @LANGUAGE="VBSCRIPT" CODEPAGE="65001" %〉
  〈%Response.ContentType = "text/vnd.wap.wml; charset=UTF-8"%〉
  〈?xml version="1.0" encoding="utf-8"?〉
  〈!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml"〉
  〈wml〉
  〈card title="邮箱登陆"〉
  〈p align="center"〉
  Welcome To Sohu-WAP-Mail〈/p〉
  〈p〉
  用户名:
  〈input type="text" title="用户名" name="user" maxlength="30"/〉
  〈br/〉密 码:
  〈input type="password" title="密码" name="pwd" maxlength="30"/〉〈br/〉
  〈do type="accept" label="发送" optional="false"〉
  〈go href="main.asp" method="post" accept-charset="utf-8"〉
  〈postfield name="user" &#118alue="$(user)"/〉
  〈postfield name="pwd" &#118alue="$(pwd)"/〉〈/go〉
  〈/do〉
  〈/p〉
  〈/card〉
  〈/wml〉

2) 邮件主页面

邮件主页面主要功能为验证登陆页面传过来的用户名与密码是否正确,如果正确则显示相关的邮件操作链接(如图四),反之则提示密码错误要求重新输入(如图三)。由于某些移动设备不支持跳转,程序尽量避免使用跳转语句。

 

图三 (登陆失败)

邮件主页面源代码: main.asp

  〈% @LANGUAGE="VBSCRIPT" CODEPAGE="65001" %〉
  〈%Response.ContentType = "text/vnd.wap.wml; charset=UTF-8"%〉
  〈?xml version="1.0" encoding="utf-8"?〉
  〈!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml"〉
  〈wml〉
  〈card id="main" title="Sohu-PALM-MAIL平台"〉
  〈p〉
  〈%
  on error resume next
  user=request("user")
  pwd=request("pwd")
  Set pop3 = Server.CreateObject( "JMail.POP3" )
  pop3.connect user,pwd,"http://pop3.sohu.com"
  pop3.Disconnect
  if err.number〈〉0 then
  response.write("登陆错误,请检查用户名密码是否正确!〈br/〉")
  response.write("〈a href='index.asp'〉重新登陆〈/a〉〈/p〉〈/card〉〈/wml〉")
  response.End()
  end if
  response.write("欢迎你"&user&"@sohu.com〈br/〉")
  %〉
  〈a href="email_title.asp?user=〈%=user%〉&pwd=〈%=pwd%〉"〉收件箱〈/a〉〈br/〉
  〈a href="send.asp?user=〈%=user%〉&pwd=〈%=pwd%〉"〉发件箱〈/a〉〈br/〉
  〈a href="index.asp"〉重新登陆〈/a〉〈br/〉
  〈/p〉
  〈/card〉
  〈/wml〉

注:


〈a href="email_title.asp?user=〈%=user%〉&pwd=〈%=pwd%〉"〉收件箱〈/a〉

由于某些移动设备并不支持session,为了更好的应用,故采用url参数传递,遗憾的是这样做安全性不高,为了提高安全性,建议对参数进行明文加密后再进行传递,在接收页面在做相对应的解密处理,当然如果你有什么更好的办法,还请发邮件指出,谢谢。

录入编辑:极速蓝鸟
www.roc3000.com 设计网
注意:本站《技术文章》栏目的文章内容大部份是<蓝鸟>从2003年来由网络上收集的,小部份由<蓝鸟>本人原创。本站《技术文章》栏目的创建不含任何商业目的,只限于网页设计爱好者间的技术经验交流,纯属个人爱好行为。如有个别文章内容与原创作者冲突,请与本站联系,本站会尽快删除原创者文章。本站任何文章和图片没有经原创作者许可,不可用于任何商业,营利行为,否则本站对其造成的后果概不负责,亦不承担任何法律责任。谢谢合作!