分享
 
 
 

ASP教程:制作WAP留言本

王朝asp·作者佚名  2006-11-24
窄屏简体版  字體: |||超大  

【测试地址】:http://wap.blueidea.com/tutorial/wapguestbook/

后台管理地址:http://wap.blueidea.com/tutorial/wapguestbook/admin.asp

请大家测试的时候不要输入非法和反动信息,否则我就只有删掉测试文件了,谢谢大家的配合。

测试工具:WAP模拟器(如Opera,M3GATE,等),支持WAP的手机。

一直以来都有朋友在WAP的中文变量传递上面遇到问题,这里给出简单的WAP留言本的制作过程,也解决了WAP的中文传递问题。

WAP网站也和传统网站类似,同样是PC电脑来进行后台的管理。只是不同的是一个是用手机浏览,一个是用电脑浏览。前台显示页面用手机浏览,后台管理页面用IE浏览器进行查看,管理就可以了。

如果你已经能写简单的留言本程序,那么制作WAP留言本已经很简单的事情了,只是把HTML换成WML这么简单,至于WML的语法,看看教程就会了,比HTML还简单,具体教程google一下。

一些WAP教程。

www.itsalon.net/wap/

www.wapease.com/class/tip2/

tech.sina.com.cn/wap/school/index.shtml

其他就自己找找吧。

留言本的程序包括:发贴,保存,显示,编辑,回复,删除。

整个的后台管理+前台显示,也就这几个功能。

注意:以下代码,如果你是使用EditPlus编写的,请在保存的时候选择,另存为“UTF-8”编码。如果不这么做,你就会遇到WML中传递中文变量,出现乱码的问题了。

以ASP为例。那我们就先从发贴页面做起,add.asp

指定ASP页面所用的脚本和编码,CODEPAGE="65001"这个一定不能少,是表示UTF-8编码,GB2312是CODEPAGE="936"。

%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%

先声名WML的头文件信息,这样即使你用的是虚拟的空间,也不用在IIS或者是Apache里面映射MIME文件类型。

<% Response.ContentType="text/vnd.wap.wml;charset=UTF-8" %>

声名WML的头文件信息,这个是规定,规定了WAP的版本和采用的标准,如果不明白就这么写就行了,不变的,但是必须要加上。 其中encoding也是指定编码。

<?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">

接下来就是页面的显示代码了

<card id="add" title="经典WAP留言本">

<p>

昵称:<br/>

<input name="Name" emptyok="false" size="10" maxlength="10"/><br/>

标题:<br/>

<input name="Title" emptyok="false" maxlength="40"/><br/>

内容:<br/>

<input name="Content" format="false" maxlength="150"/><br/>

</p>

</card>

简单介绍一下:wml类似html标签,card代表一个卡片,这里简单理解为一个页面就行了,注意:所有的显示的内容都要放在<p> </p>标签里面,一定要注意这点,要不然就会出错。

<meta http-equiv="Cache-Control" content="max-age=0"/>

<meta http-equiv="Cache-Control" content="no-cache"/>

在meta中指定不缓存页面。

<input name="Title" emptyok="false" maxlength="40"/><br/>

emptyok不允许为空,maxlength允许输入的文字最大长度。

WML的表单提交有点不同,<postfile name="title" value="($title:n)" />是把input表单的值附给title变量,name="title" 是变量名, value="($title:n)"是变量,即input中输入的信息,content也是一样。

注:这里($title:n)是WML变量的写法,以$符号开头,类似PHP的变量声名,WML中表单提交有:n,:e,:u,和空,四种状态,其中:n是强制不进行URL转义;:e是转义;:u是反转义;如果为空,在有的手机上默认是不转义,有的是转义, 规范不统一,安全期间,如果不转义,还是写上:n为好。

WAP的变量提交也分两种情况,GET和POST,使用GET方法,对中文的支持并不是很好,所以有使用到表单提交的地方,都改为POST方式提交,代码格式为:

<anchor>POST方式提交

<go href="save.asp" method="post">

<postfield name="Name" value="$(Name:n)" />

<postfield name="Title" value="$(Title:n)" />

<postfield name="Content" value="$(Content:n)" />

<postfield name="Method" value="POST" />

</go>

</anchor>

当然对于英文和数字,简单的,使用GET方式提交会比较方便一些,代码格式为:

<a href="save.asp?Name=$(Name:n)&amp;Title=$(Title:n)&amp;Content=$(Content:n)&amp;Method=GET">GET方式提交</a>

注:连接不同变量字符的&符号要写为&amp;

发表留言页面add.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>

<head>

<meta http-equiv="Cache-Control" content="max-age=0"/>

<meta http-equiv="Cache-Control" content="no-cache"/>

</head>

<card id="add" title="经典WAP留言本">

<p>

昵称:<br/>

<input name="Name" emptyok="false" size="10" maxlength="10"/><br/>

标题:<br/>

<input name="Title" emptyok="false" maxlength="40"/><br/>

内容:<br/>

<input name="Content" format="false" maxlength="150"/><br/>

<br/><anchor>POST方式提交

<go href="save.asp" method="post">

<postfield name="Name" value="$(Name:n)" />

<postfield name="Title" value="$(Title:n)" />

<postfield name="Content" value="$(Content:n)" />

<postfield name="Method" value="POST" />

</go>

</anchor>

<br/><a href="save.asp?Name=$(Name:n)&amp;Title=$(Title:n)&amp;Content=$(Content:n)&amp;Method=GET">GET方式提交</a><br/><br/>

<a href="index.asp">返回留言列表</a>

</p>

<p>

有任何疑问,请访问:http://www.designer5.net或<br/>

蓝色理想论坛WAP版:http://www.blueidea.com/bbs<br/>

广告:蓝色理想WAP网站改版了,使用手机访问<a href="http://wap.blueidea.com

http://wap.blueidea.com">http://wap.blueidea.com</a><br/>

如果您参考了此程序,有WAP站点,请做上http://wap.blueidea.com的链接。

</p>

<do type="prev" label="返回"><prev/></do>

</card>

</wml>

接下来是保存数据。

保存页面save.asp,代码如下:

<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>

<!--#include file="conn.asp"-->

<%

Function inWML(str)

' 把字符串存入数据库,单引号过滤,'==Chr(39)

sTemp = Replace(str, Chr(39), "&#39;") '单引号过滤

inWML = sTemp

End Function

IF Request("Method")<>"" Then

Name=inWML(Trim(Request("Name")))

Title=inWML(Trim(Request("Title")))

Content=inWML(Trim(Request("Content")))

Method=Request("Method")

Sql = "INSERT INTO guestbook(Name, Title, Content, Method) values('"&Name&"', '"&Title&"', '"&Content&"', '"&Method&"')"

Conn.Execute Sql

End IF

Response.Redirect ("index.asp")

%>

最后是显示把留言的内容显示出来。

显示数据的时候需要注意字符的替换,因为有些字符是不能直接显示的,需要转换为Ascii码,在WML里面“$”符号是表示变量,如果要显示“$”,需要写为“$$”,例:“一共有$$315元RMB”,显示为“一共有$315元RMB”。

必须要替换的字符,已经写为函数,方便大家使用。

Function outHTM(str)

' 把字符串进行HTM解码,输出字符串

Dim sTemp

sTemp = str

outHTM = ""

If IsNull(sTemp) Then

Exit Function

End If

sTemp = Replace(sTemp, "&#39;", "'") '还原单引号

sTemp = Replace(sTemp, "&", "&amp;")

sTemp = Replace(sTemp, "<", "&lt;")

sTemp = Replace(sTemp, ">", "&gt;")

sTemp = Replace(sTemp, "$", "$$")

sTemp = Replace(sTemp, "", "&nbsp;")

sTemp = Replace(sTemp, Chr(10), "<br/>")

outHTM = sTemp

End Function

显示留言的页面index.asp,代码如下:

<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>

<!--#include file="con

[1] [2] [3] 下一页

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有