经典论坛's Archiver

chooseflash 发表于 2007-3-22 14:38

[教程]Flash与ASP--用户登录--用户注册程序

查看效果:[url]http://gzks188.com/anli/file/login.html[/url]
源文件:[url]http://gzks188.com/anli/file/Flash与ASP.rar[/url]
Flash一帧可以完成.asp也可以一个文件完成.
这里我将用户登录和用户注册分为两部做,方便大家理解;
Flash分两帧,asp分两个文件,
准备:Flash8 , IIS ,Miscrosoft Access 2003;
开始:
数据库中:
用设计视图新建一个名为 UserTable 的表,三个字段分别为 id 为自动编号,username为文本,password为文本;
输入一条数据 username 和 password 都为chooseflash;
如图:
[attach]68989[/attach]
Flash中:
新建文件命名为login.fla,舞台大小设置为250*200,背景随意;
第一帧:用户登录
新建三个图层分别命名为 bg 和 body 和as;
舞台中的实例:
一个 window 组件到舞台命名为 win;
win(背景),放到 bg 层;
设置如图:
[attach]68990[/attach]
二个按钮组件分别命名为: login 和 register;
login(登录),register(注册),放到 body 层;
设置如图:
[attach]68991[/attach]
[attach]68992[/attach]
三个 TextInput 文本输入组件分别命名为 username 和 password 和 msg;
username(用户名输入框),password(密码输入框),msg(消息框),放到 body 层;
第一帧是用户登录脚本.代码如下:

[code]

//此帧是用户登录脚本
stop();
//将window组件设置为不可用.因为是做背景
win.enabled = false;
//新建LoadVars对象,用来发送和接收数据;
var loginData:LoadVars = new LoadVars();
//注册按钮
register.onRelease=function(){
        win.title="(教程Flash与ASP)用户注册";
        msg.text="";
        gotoAndStop(2);
}
//登录按钮.
login.onRelease = function() {
        //判断用户名和密码是不是为空.
        if ((username.text == "") || (password.text == "")) {
                msg.text = "请正确输入用户名或密码!";
                //判断用户名和密码是否小于8位.
        } else if((username.length<8)||(password.length<8)){
                msg.text = "用户名和密码不能小于8位!";
        } else {
                msg.text = "验证中...";
                //将用户名文体框的值付给loginData对象的username变量;
                loginData.username = username.text;
                //将用户密码文体框的值付给loginData对象的password变量;
                loginData.password = password.text;
                //使用get方法发送用户名和密码到login.asp中验证;再返回给loginData对象;
                loginData.sendAndLoad("login.asp", loginData, "get");
        }
};
//调用LoadVars对象的onLoad事件.
loginData.onLoad = function(success) {
        //判断加载login.asp是否成功;
        if (success) {
                //这个是ASP中查询数据库中返回的值;
                if (loginData.success !=0) {
                        msg.text = "登录成功";
                        //这里大家可以写自己的代码.
                        username.text="";
                        password.text="";
                } else {
                        msg.text = "用户名和密码不正确";
                }
        }else{
                msg.text="连接网络失败";
        }
};

[/code]

下面是 login.asp 中的代码:

[code]

<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
<%
'声明变量
dim db,conn,div,rs,success,username,password
'获取Flash中传过来的变量
username=Request("username")
password=Request("password")
'设置一个连接对象
set conn=Server.Createobject("adodb.connection")
'数据库的相对路径
db=Server.MapPath("UserTable.mdb")
'数据库的驱动
div="Provider=Microsoft.Jet.OLEDB.4.0;"&"Data Source="&db
'打开连接
conn.Open div
'新建记录集对象
set rs=server.createobject("adodb.recordset")
'SQL查询语句,用来查询数据库中是否有数据;
sql="select * from UserTable where username='"&username&"' and password='"&password&"'"
'打开查询语句
rs.open sql,conn,1,1
'如果数据库中没有数据rs.RecordCount将返回0;
success=rs.RecordCount
'将success变量发送到Flash中
Response.Write("success="&success)
'关闭记录集
rs.close
'释放记录集对象rs
set rs=nothing
'关闭打开的连接
conn.close
'释放连接对象conn
set conn=nothing
%>

[/code]

到这里.用户登录就可以了.下面我们做的是用户注册;
第二帧:用户注册
在 body 层 按F6插入关键帧.分别修改舞台中的两个按钮的实例名为,fanghui 和 tijiao;
fanghui(返回),tijiao(提交);
然后在第二帧输入代码:

[code]
//此帧是用户注册脚本
stop();
//返回按钮.
fanghui.onRelease = function() {
        win.title = "(教程Flash与ASP)用户登录";
        msg.text = "";
        gotoAndStop(1);
};
//提交按钮.
tijiao.onRelease = function() {
        //判断用户名和密码是不是为空.
        if ((username.text == "") || (password.text == "")) {
                msg.text = "用户名和密码不能为空!";
                //判断用户名和密码是否小于8位.
        } else if ((username.length<8) || (password.length<8)) {
                msg.text = "用户名和密码不能小于8位!";
        } else {
                msg.text = "注册中...";
                //将用户名文体框的值付给loginData对象的username变量;
                loginData.username = username.text;
                //将用户密码文体框的值付给loginData对象的password变量;
                loginData.password = password.text;
                //使用get方法发送用户名和密码到add.asp中查询;再返回给loginData对象;
                loginData.sendAndLoad("add.asp", loginData, "get");
        }
};
//调用LoadVars对象的onLoad事件.
loginData.onLoad = function(success) {
        //判断加载login.asp是否成功;
        if (success) {
                //这个是ASP中查询数据库中返回的值;
                if (loginData.zhucei == "true") {
                        //这里大家可以写自己的代码.
                        msg.text = "注册成功";
                        username.text = "";
                        password.text = "";
                } else {
                        msg.text = "用户名已存在";
                }
        } else {
                msg.text = "连接网络失败";
        }
};



[/code]

下面是 add.asp 中的代码:

[code]

<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
<%
'声明变量
dim db,conn,div,rs,username,password
'获取Flash中传过来的变量
username=Request("username")
password=Request("password")
'设置一个连接对象
set conn=Server.Createobject("adodb.connection")
'数据库的相对路径
db=Server.MapPath("UserTable.mdb")
'数据库的驱动
div="Provider=Microsoft.Jet.OLEDB.4.0;"&"Data Source="&db
'打开连接
conn.Open div
'新建记录集对象
set rs=server.createobject("adodb.recordset")
'SQL查询语句,用来查询数据库中是否有数据;
sql="select * from UserTable where username='"&username&"'"
'打开查询语句
rs.open sql,conn,1,1
'如果没有数据rs.RecordCount将返回0;
if rs.RecordCount=0 then
   '关闭上面的查询对象.
   rs.close
   'SQL插入语句.插入新用户用的.这里的 password 因为是SQL中的关键字.所以要用[]括起来.
   sql="insert into UserTable (username,[password]) values ('"&username&"','"&password&"')"
   '打开插入语句
   rs.open sql,conn,1,3
        '输出true告诉Flash用户已注册.
   Response.Write("zhucei=true")   
else
        '否则就输出false告诉Flash用户已存在.
Response.Write("zhucei=false")
end if
'释放记录集对象rs
set rs=nothing
'关闭打开的连接
conn.close
'释放连接对象conn
set conn=nothing
%>


[/code]

完整图片如图:
[attach]68993[/attach]
全部文件如图:
[attach]68994[/attach]
到这里就全部完成了.大家可以测试了.
运行IIS;
新建网站,路径为你的asp文件的路径.
在IE输入http://localhost/login/login.html 这是我电脑上的.

[[i] 本帖最后由 moby 于 2007-11-22 03:21 编辑 [/i]]

bmxcn 发表于 2007-3-22 14:45

不错~我正在 搞一个 asp.net 2.0 +flash 呵!

jevin 发表于 2007-3-22 15:23

恩 不错 LZ源文件打个包啊

chooseflash 发表于 2007-3-23 11:44

To: bmxcn
我现在正在学.NET.
等着看你的.一起学习.呵呵

31342610 发表于 2007-3-23 13:23

if ((username.text == "") || (password.text == "")) {
        msg.text = "用户名和密码不能为空!";


用户如果连着输入几个空格怎么办?

kobexiang 发表于 2007-3-23 14:28

不错不错,经典教学~

psqq 发表于 2007-3-25 12:01

学习着,就是要这样的教程哦!~~

chooseflash 发表于 2007-3-25 18:50

To:31342610             这个我现在也没解决办法.不过也没那么多的无聊之人吧.如果真是无聊的人.乱打几个字跟空格一样.呵.........    我做了两个这样的教程.一个ASP和一个JSP.好像喜欢ASP的多很多.呵.下一个教程也是FLASH和ASP或JSP.

yeqingit 发表于 2007-5-7 17:11

楼主哦,用trim()啊。把空格去了。

chooseflash 发表于 2007-5-7 20:42

呵.如果做的严格.可以在Flash中禁止输入空格.比那样好点.而且可以节省数据资源.

Jansing 发表于 2007-5-7 21:03

还应该在加一个退出登陆!

chooseflash 发表于 2007-5-8 01:13

那看你用在什么地方.这些自己做的时候在加吧.
利用 ShareObject 类可以做到记住用户登录数据.
有兴趣的可以看看帮助:自己尝试着做.不懂在问.

yeqingit 发表于 2007-5-8 09:47

也是哦,用户敲入空格的键码时进行转换呵呵。

yzgxww 发表于 2007-10-23 10:28

不难

这些都只是传几个值和参数,没什么复杂的!

ttde 发表于 2007-11-19 12:56

学习了,收集中

banggegebi 发表于 2007-11-20 21:52

在网上看到的都是flash+asp制作留言版,找到这个真不容易,收了

Abner 发表于 2007-11-21 00:09

学习中~~~~~~~

skmtpsh 发表于 2007-11-21 15:39

还是经典的教程多。。搜着搜着到了这里:D

xbrr 发表于 2007-11-21 16:39

意义何在?

357567696 发表于 2007-12-4 21:21

大虾,我登陆怎么老说连接失败啊.并且还弹出这个对话框啊.我这文件都放在IIS里面的,这到底是什么原因啊,能解释下吗??谢谢...
Error opening URL "file:///e|/网络编程/我的站点/login.asp?password=retretretre&username=drtrtreter&onLoad=%5Btype%20Function%5D"

357567696 发表于 2007-12-5 18:47

:( :( :( 没人帮我啊....

[[i] 本帖最后由 357567696 于 2007-12-5 19:05 编辑 [/i]]

hzlei 发表于 2007-12-6 10:38

你不要直接在flash中导出的文件中测试嘛,直接在地址栏输导出的这个swf的地址,然后测试

xinliu 发表于 2008-2-19 09:30

需要这样的教程,谢谢了,蓝色经典就是就是经典

ly6329853 发表于 2008-4-26 10:14

为什么我登录好使,可是我注册不了呢,出现“连接网络错误”

请帮帮忙吧,我研究好长时间了,闹心中!

ly6329853 发表于 2008-4-27 01:36

为什么我登录好使,可是我注册不了呢,出现“连接网络错误”

请帮帮忙吧,我研究好长时间了,闹心中!

怎么没人啊!

qbq1234 发表于 2008-7-4 20:14

经典东西 就在于人的挖掘
谢谢楼主了

ayewhy 发表于 2008-7-5 10:32

[quote]原帖由 [i]357567696[/i] 于 2007-12-4 21:21 发表 [url=http://bbs.blueidea.com/redirect.php?goto=findpost&pid=3730419&ptid=2729523][img]http://bbs.blueidea.com/images/common/back.gif[/img][/url]
大虾,我登陆怎么老说连接失败啊.并且还弹出这个对话框啊.我这文件都放在IIS里面的,这到底是什么原因啊,能解释下吗??谢谢...
Error opening URL "file:///e|/网络编程/我的站点/login.asp?password=retretretre&user ... [/quote]


你这个地址。。。 还中英文,硬盘地址。。。 你要么用相对地址咯,要么用Localhost打头的asp页绝对地址来引用咯

rock1518 发表于 2008-7-14 18:13

注册后,用Access打开UserTable表,找不到注册用户名啊,请问在那找到?

beays 发表于 2008-7-15 07:53

不错.下载来看看.

wyksin 发表于 2008-7-17 11:18

為什麼現在附件不能下載了

页: [1]



Powered by Discuz! Archiver 6.1.0  © 2001-2007 Comsenz Inc.