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;"&amp;"Data Source=" &amp; 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中的应用。

相关文章

Moondy 发表于 2009-2-9 6,509 Views | 类别: Flash/AS3

12条留言 立即发表评论

  1. #1swing @ 2009-7-9 12:11 回复

    想问一下博主..为什么我发布之后在本地测试会发生以下的错误的
    TypeError: Error #1090: XML 分析器失败: 元素格式不正确。
    at book/xmlcomplete()
    at flash.events::EventDispatcher/dispatchEventFunction()
    at flash.events::EventDispatcher/dispatchEvent()
    at flash.net::URLLoader/onComplete()
    这是什么回事阿请问~~

    • Moondy @ 2009-7-9 16:14 回复

      ASP文件需要服务器环境的呀,你要在本地看的话要用IIS打开,直接打开当然不行的啦。

  2. #2Arnold26 @ 2009-10-23 05:28 回复

    These rights, however, are not unlimited in scope. ,

    • moondy @ 2009-10-26 15:15 回复

      Thanks!
      这位朋友是哪里人呀 :icon37

  3. #3kyod @ 2010-7-17 23:22 回复

    版主您好:
    我參考了您的留言板設計
    我在提交留言的時候
    僅有時間有進去資料庫
    其他資料皆無法寫入資料庫
    不知道是什麼原因呢?
    懇請版主替小弟解答 :icon02

    • moondy @ 2010-7-18 01:49 回复

      应该是缺少对中文的支持吧,AS3里输出的话默认会是UTF-8,看看你接收页的编码格式,不一样的话也许会因为乱码而无法写入。又也许是写的参数名不一致。总之,把接收到的数据在页面上打出来,多方调式下就能找到原因的。

  4. #4kyod @ 2010-7-23 17:54 回复

    我是利用您所提供的下載包來練習
    並未做到修改
    我還在摸索您的寫法
    應該是把壓縮包裡面東西掛在IIS底下就可以執行了吧?
    我是把fla發佈成網頁
    而且在開啟網頁後
    無法看到您所提供book_data.mdb裡面的留言內容

    不知道是哪裡出了錯呢?
    懇請您替小弟解答

    • Moondy @ 2010-7-26 17:31 回复

      用IIS来打开浏览啊,说得简单点就是你浏览器打开的路径要是http://XXXXX什么的,而不是file://XXXXXX什么的

  5. #5Mr'C @ 2010-10-28 17:58 回复

    moondy兄你好,前几日下载到你的留言板源文件,后来没做修改直接上传到空间去,发现留言列表显示不出来,但是留言的时候,数据有存入数据库。详见:
    http://anydo.web-26.com/guestbook/book.html

    另外,本地测试时,由于没有IIS环境,于是就用用AWS.EXE文件模拟IIS环境,发现留言功能可以,显示列表页可以显示,但是中文会乱码,是怎么回事呐?我在源文件里加入System.useCodePage=true没法解决问题。

    请帮忙解答,谢谢了。

    • moondy @ 2010-11-3 15:53 回复

      乱码的话,保证你的输出格式是UTF-8就可以了。至于你网上的为什么不能显示,你自己抓下包好好看看吧,估计你那是个免费空间还是什么的,最末尾被加上了一句AD代码,破坏了XML格式。

  6. #6 @ 2010-11-17 23:50 回复

    哪里可以下载源码呢?我怎么没发现啊

    • Moondy @ 2010-11-23 10:06 回复

      教程的第二部分里

评论

:icon07 :icon02 :icon16 :icon23 :icon37 :icon05 :icon38 :icon35 more »
(Ctrl + Enter)