devjoy.cn技术文档
用户注册册及确认在线的ASP程序。
1. SQL的表及储存过程
---------------------------------------------
CREATE TABLE [dbo].[userbaseinfo] (
[userid] [varchar] (50) NOT NULL ,
[password] [varchar] (50) NOT NULL ,
[validcodelogin] [char] (50) NOT NULL ,
[userlevel] [char] (1) NULL ,
[logintime] [char] (50) NULL
) ON [PRIMARY]
GO
alter table userbaseinfo
add
constraint PK_userbaseinfo_userid
primary key (userid)
Go
CREATE TABLE [dbo].[userdetailinfo] (
[userid] [varchar] (50) NOT NULL ,
[password] [varchar] (30) NOT NULL ,
[realname] [varchar] (10) NULL ,
[sex] [char] (10) NULL ,
[birthday] [datetime] NULL ,
devjoy.cn技术文档 [idcode] [varchar] (50) NULL ,
[address] [varchar] (300) NULL ,
[email] [varchar] (50) NULL ,
[telephone] [varchar] (50) NULL
) ON [PRIMARY]
GO
.net开发技术文章
alter table userdetailinfo
add
constraint PK_userdetailinfo_userid
primary key (userid)
一起娱乐网01716.comGo
快乐开发技术文档
SET QUOTED_IDENTIFIER OFF SET ANSI_NULLS ON
.net开发技术文章GO
javascript技巧尽在快乐开发CREATE proc dbo.proc_GetRandom_internal
devjoy.cn技术文档--取得校验码
@minNum integer,
@maxNum integer,
@RandomNum float output
as
set nocount on
declare @numRange integer
declare @ranSeed integer
declare @curTime datetime
begin
快乐开发技术文档 select @numRange=@maxNum-@minNum+1
select @curTime=getdate()
select @ranSeed=datediff(s,'2000-1-1',@curTime)
select @ranSeed=@ranSeed+1
select @RandomNum=rand()*@numRange+@minNum
--print @RandomNum
return
end
一起娱乐网01716.com
javascript技巧尽在快乐开发
Powered By Achely's Blog
Powered By Achely's Blog
GO
SET QUOTED_IDENTIFIER OFF
zhangyongjun.com开发网
GO
SET ANSI_NULLS ON
zhangyongjun.com开发网
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
devjoy.cn技术文档
CREATE proc dbo.proc_GetValidCode_Internal
Powered By Achely's Blog
--取得校验码
@CodeLength integer,
zhangyongjun.com开发网
@ValidCode varchar(10) output
as
set nocount on
declare @chrRnd char(1)
declare @chrRndNo integer
begin
select @ValidCode=""
zhangyongjun.com开发网 while (@CodeLength>0)
begin
exec proc_GetRandom_internal 1,52,@chrRndNo output
if @chrRndNo>26
begin
select @chrRndNo=@chrRndNo+6
end
select @chrRnd=char(@chrRndNo+64)
select @ValidCode=@ValidCode+@chrRnd
select @CodeLength=@CodeLength-1
end
print @validCode
return
end
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
devjoy.cn技术文档CREATE proc dbo.proc_UserInfoUpdate
--用户更新个人信息
@ValidCodeLogin varchar(10),
@RealName Varchar(10),
.net开发技术文章
@Sex Varchar(10),
@Birthday datetime,
@IDCode Varchar(50),
@Address Varchar(300),
@eMail Varchar(50),
一起娱乐网01716.com @Telephone Varchar(50)
快乐开发技术文档
as
.net开发技术文章set nocount on
javascript技巧尽在快乐开发declare @UserValidFlag int
devjoy.cn技术文档declare @ValidCodeReg varchar(30)
declare @UserLevel varchar(1)
declare @UserID varchar(30)
begin
exec proc_isUserValidbyCode_internal @ValidCodeLogin,@UserValidFlag output
if @UserValidFlag<0
begin
--select @UserValidFlag as resultID
-- -1 用户尚未登录
-- -2 用户超时
return @UserValidFlag
快乐开发技术文档 end
select @UserID=UserID from UserBaseinfo where ValidCodeLogin=@ValidCodeLogin
Update UserDetailInfo
set RealName=@RealName,
Sex=@Sex,
Birthday=@Birthday,
IDCode=@IDCode,
Address=@Address,
eMail=@eMail,
一起娱乐网01716.com
Telephone=@Telephone
javascript技巧尽在快乐开发
where
Powered By Achely's Blog
UserID=@UserID;
Powered By Achely's Blog
if (@RealName="" or @Birthday="" or @Sex="" or @IDCode="" or @Address="" or @eMail="" or @Telephone="")
zhangyongjun.com开发网
begin
--select -3 as resultID
zhangyongjun.com开发网
return -3 --信息尚未全部填写
end
select 0 as resultID
end
devjoy.cn技术文档
GO
Powered By Achely's Blog
SET QUOTED_IDENTIFIER OFF
GO
zhangyongjun.com开发网
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO
create proc dbo.proc_UserLogOut
--用户退出
zhangyongjun.com开发网 @ValidCodeLogin varchar(10)
as
set nocount on
declare @UserValidFlag int
declare @UserLevel varchar(9)
begin
exec proc_isUserValidbyCode_internal @ValidCodeLogin,@UserValidFlag output
if (@UserValidFlag<0)
begin
--select @UserValidFlag as resultID
return @UserValidFlag
-- -1 用户尚未登录
-- -2 用户超时
end
Update UserBaseInfo
set ValidCodeLogin='',
LoginTime='1970-1-1'
where
ValidCodeLogin=@ValidCodeLogin
--select 0 as resultID
return 0
end
devjoy.cn技术文档GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
.net开发技术文章
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
一起娱乐网01716.com快乐开发技术文档
CREATE proc dbo.proc_UserRegBase
--用户基本资料注册
.net开发技术文章 @UserID Varchar(30),
javascript技巧尽在快乐开发 @Password Varchar(30)
as
devjoy.cn技术文档set nocount on
declare @UserLevel varchar(9)
--declare @ValidCodeReg varchar(10)
declare @ValidCodeLogin varchar(10)
declare @LoginTime datetime
declare @userExist int
declare @PwdLength int
begin
select @UserLevel="0"
快乐开发技术文档select @PwdLength=4
if (datalength(@Password)<@PwdLength)
begin
select -4 as returnID
return -4 --密码长度不够
end
--exec proc_GetValidCode_internal 10,@ValidCodeReg output --取得用户注册校验码
exec proc_GetValidCode_internal 10,@ValidCodeLogin output --取得用户登录校验码
exec proc_isUserExist_internal @UserID,@userExist output --取得用户存在标志
select @LoginTime=getdate()
一起娱乐网01716.com
print @userExist
javascript技巧尽在快乐开发
if @userExist=0
Powered By Achely's Blog
begin
Powered By Achely's Blog
select -1 as resultID
return -1 --用户已存在
zhangyongjun.com开发网
end
zhangyongjun.com开发网
--插入用户基本信息表
insert into UserBaseInfo
(UserID,Password,UserLevel,ValidCodeLogin,LoginTime)
Values(@UserID,@Password,@UserLevel,@ValidCodeLogin,@LoginTime)
--插入用户详细信息表
insert into UserDetailInfo
(UserID,Password) Values(@UserID,@Password)
devjoy.cn技术文档
Powered By Achely's Blog
--取得用户注册校验码,登录校验码
zhangyongjun.com开发网
select 0 as resultID
select ValidCodeLogin from UserBaseInfo where UserID=@UserID
return 0
end
GO
SET QUOTED_IDENTIFIER OFF
GO
zhangyongjun.com开发网SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
create proc dbo.proc_isUserExist_internal
--判断用户名是否存在
@UserID Varchar(30),
@existFlag int output
as
set nocount on
begin
if not EXISTS(select * from UserBaseInfo where UserID=@UserID)
begin
select @existFlag =-1
return
end
select @existFlag =0
return
end
GO
devjoy.cn技术文档SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER OFF
.net开发技术文章
GO
SET ANSI_NULLS ON
GO
一起娱乐网01716.comcreate proc dbo.proc_isUserValidbyCode_internal
快乐开发技术文档
--用户身份检验(根据登录校验码)
@ValidCodeLogin varchar(10),
.net开发技术文章 @validFlag int output
javascript技巧尽在快乐开发as
devjoy.cn技术文档set nocount on
declare @LoginTime datetime
declare @curTime datetime
declare @diffTime datetime
begin
if not EXISTS(select * from UserBaseInfo where ValidCodeLogin=@ValidCodeLogin)
begin
select @validFlag=-1 --用户尚未登录
return
end
快乐开发技术文档select @LoginTime = (select LoginTime from UserBaseInfo where ValidCodeLogin=@ValidCodeLogin)
select @curTime=getdate()
select @diffTime=datediff(hh,@LoginTime,@curTime)
if @diffTime>=10
begin
select @validFlag=-2 --用户超时
return
end
select @LoginTime=getdate() --取得用户最后登录时间
一起娱乐网01716.com
update UserBaseInfo set LoginTime=@LoginTime where ValidCodeLogin=@ValidCodeLogin
javascript技巧尽在快乐开发
Powered By Achely's Blog
select @validFlag=0
Powered By Achely's Blog
return
end
zhangyongjun.com开发网
GO
zhangyongjun.com开发网
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO