一直以來都有朋友在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)&Title=$(Title:n)&Content=$(Content:n)&Method=GET">GET方式提交< /a>
注:連接不同變量字符的&符號要寫為&
發表留言頁面add.asp的代碼如下:
接下來是保存數據。
保存頁面save.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, "'", "'") '還原單引號 sTemp = Replace(sTemp, "&", "&") sTemp = Replace(sTemp, "<", "<") sTemp = Replace(sTemp, ">", ">") sTemp = Replace(sTemp, "$", "$$") sTemp = Replace(sTemp, "", " ") sTemp = Replace(sTemp, Chr(10), "<br/>") outHTM = sTemp End Function
顯示留言的頁面index.asp,代碼如下:
后臺管理頁面admin.asp,代碼如下:
連接數據庫conn.asp,代碼如下:
源碼下載地址:點擊下載

