AS3+ASP+ACCESS的FLASH留言版教程(一)
有不少朋友问起flash留言版的问题,其实说白了flash跟数据库的交互并不是什么高深的技术,只要掌握了原理,便可一通百通。我很少写教程,也不太会写,我是属于那种会做但不太会说的人,但现在网络上相关的资料也不多,我也试着写一个吧。一个简易的AS3留言版。
大家应该都知道,flash与数据库交互的话要借助第三方语言,在这里我们需要的是一个生成XML格式的动态页。本例用的是ASP+ACCESS,因为本民工只对ASP比较熟罢了,熟悉PHP的朋友完全可以改成PHP+MYSQL的,因为AS3读的只是XML的格式,至于用何种语言来生成都没有关系。ACCESS我就不讲了,相信大家都会用,对照一下下面的字段名就好了。
先建配置文件
conn.asp
1 2 3 4 5 6 | <% on error resume next datapath = "date/book_data.mdb"//数据库的路径 set conn=Server.Createobject("adodb.connection") connstr = "Provider=Microsoft.Jet.OLEDB.4.0;"&"Data Source=" & Server.MapPath(datapath) conn.open connstr %> |
接下来是获取数据的动态页,也就是生成XML的页面
getinfo.asp
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | <!--#include file="conn.asp"--> <% set rs=server.createobject("adodb.recordset") sql="select * from book order by book_id desc" rs.open sql,conn,1,1 rs.pagesize=8 i=1 mypage=request("page") if mypage="" then mypage=1 else mypage=cint(mypage) end if pages=rs.pagecount rs.absolutepage=mypage %> <?xml version="1.0" encoding="utf-8"?> <guestbook page="<%=pages%>"> <% do while not rs.eof%> <item book_name="<%=rs("book_name")%>" book_mail="<%=rs("book_mail")%>" book_qq="<%=rs("book_qq")%>" book_title="<%=rs("book_title")%>" book_time="<%=rs("book_time")%>" book_date="<%=rs("book_date")%>" ><![CDATA[<%=rs("book_info")%>]]></item> <% if i=rs.pagesize then exit do end if i=i+1 rs.movenext loop %></guestbook> |
在这里把分页功能也做了进来,也就是在AS3中通过加载getinfo.asp?page=XX来获取分页。而留言内容部分用CDATA,是为了能正常显示一些特殊字符。生成的XML格式如下
1 2 3 4 5 | <?xml version="1.0" encoding="utf-8"?> <guestbook> <item book_name="姓名" book_mail="16955732@qq.com" book_qq="16955732" book_title="标题名称" book_time="2009-1-13 下午 10:36:21" book_date="2009-1-13" ><![CDATA[留言内容]]></item> </guestbook> |
最后是把从flash里传递出来的表单参数写入数据库的页面
sendinfo.asp
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | <!--#include file="conn.asp"--> <% Dim book_name,book_qq,book_mail,book_title,book_info book_name=request("book_name") book_qq=request("book_qq") book_mail=request("book_mail") book_title=request("book_title") book_info=request("book_info") set rs = server.createobject("adodb.recordset") sql = "select top 1 * from book" rs.open sql,conn,1,3 rs.addnew rs("book_name") = book_name rs("book_qq") = book_qq rs("book_mail") = book_mail rs("book_title") = book_title rs("book_info") = book_info rs.update rs.close:set rs = nothing %> |
现在准备工作都做好了,下一篇再讲解在AS3中的应用。
12条留言 立即发表评论
想问一下博主..为什么我发布之后在本地测试会发生以下的错误的
TypeError: Error #1090: XML 分析器失败: 元素格式不正确。
at book/xmlcomplete()
at flash.events::EventDispatcher/dispatchEventFunction()
at flash.events::EventDispatcher/dispatchEvent()
at flash.net::URLLoader/onComplete()
这是什么回事阿请问~~
ASP文件需要服务器环境的呀,你要在本地看的话要用IIS打开,直接打开当然不行的啦。
These rights, however, are not unlimited in scope. ,
Thanks!
这位朋友是哪里人呀
版主您好:
我參考了您的留言板設計
我在提交留言的時候
僅有時間有進去資料庫
其他資料皆無法寫入資料庫
不知道是什麼原因呢?
懇請版主替小弟解答
应该是缺少对中文的支持吧,AS3里输出的话默认会是UTF-8,看看你接收页的编码格式,不一样的话也许会因为乱码而无法写入。又也许是写的参数名不一致。总之,把接收到的数据在页面上打出来,多方调式下就能找到原因的。
我是利用您所提供的下載包來練習
並未做到修改
我還在摸索您的寫法
應該是把壓縮包裡面東西掛在IIS底下就可以執行了吧?
我是把fla發佈成網頁
而且在開啟網頁後
無法看到您所提供book_data.mdb裡面的留言內容
不知道是哪裡出了錯呢?
懇請您替小弟解答
用IIS来打开浏览啊,说得简单点就是你浏览器打开的路径要是http://XXXXX什么的,而不是file://XXXXXX什么的
moondy兄你好,前几日下载到你的留言板源文件,后来没做修改直接上传到空间去,发现留言列表显示不出来,但是留言的时候,数据有存入数据库。详见:
http://anydo.web-26.com/guestbook/book.html
另外,本地测试时,由于没有IIS环境,于是就用用AWS.EXE文件模拟IIS环境,发现留言功能可以,显示列表页可以显示,但是中文会乱码,是怎么回事呐?我在源文件里加入System.useCodePage=true没法解决问题。
请帮忙解答,谢谢了。
乱码的话,保证你的输出格式是UTF-8就可以了。至于你网上的为什么不能显示,你自己抓下包好好看看吧,估计你那是个免费空间还是什么的,最末尾被加上了一句AD代码,破坏了XML格式。
哪里可以下载源码呢?我怎么没发现啊
教程的第二部分里