|
| |
名片设计 CorelDRAW Illustrator AuotoCAD Painter 其他软件 Photoshop Fireworks Flash |
|
用户注册册及确认在线的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 , [idcode] [varchar] (50) NULL , [address] [varchar] (300) NULL , [email] [varchar] (50) NULL , [telephone] [varchar] (50) NULL ) ON [PRIMARY] GO alter table userdetailinfo add constraint PK_userdetailinfo_userid primary key (userid) Go SET QUOTED_IDENTIFIER OFF SET ANSI_NULLS ON GO CREATE proc dbo.proc_GetRandom_internal --取得校验码 @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 GO SET QUOTED_IDENTIFIER OFF GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER OFF GO SET ANSI_NULLS ON GO CREATE proc dbo.proc_GetValidCode_Internal --取得校验码 @CodeLength integer, @ValidCode varchar(10) output as set nocount on declare @chrRnd char(1) declare @chrRndNo integer begin select @ValidCode="" 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 CREATE proc dbo.proc_UserInfoUpdate --用户更新个人信息 @ValidCodeLogin varchar(10), @RealName Varchar(10), @Sex Varchar(10), @Birthday datetime, @IDCode Varchar(50), @Address Varchar(300), @eMail Varchar(50), @Telephone Varchar(50) as set nocount on declare @UserValidFlag int 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, Telephone=@Telephone where UserID=@UserID; if (@RealName="" or @Birthday="" or @Sex="" or @IDCode="" or @Address="" or @eMail="" or @Telephone="") begin --select -3 as resultID return -3 --信息尚未全部填写 end select 0 as resultID end GO SET QUOTED_IDENTIFIER OFF GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO SET ANSI_NULLS ON GO create proc dbo.proc_UserLogOut --用户退出 @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 GO SET QUOTED_IDENTIFIER OFF GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER OFF GO SET ANSI_NULLS ON GO CREATE proc dbo.proc_UserRegBase --用户基本资料注册 @UserID Varchar(30), @Password Varchar(30) as 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() print @userExist if @userExist=0 begin select -1 as resultID return -1 --用户已存在 end --插入用户基本信息表 insert into UserBaseInfo (UserID,Password,UserLevel,ValidCodeLogin,LoginTime) Values(@UserID,@Password,@UserLevel,@ValidCodeLogin,@LoginTime) --插入用户具体信息表 insert into UserDetailInfo (UserID,Password) Values(@UserID,@Password) --取得用户注册校验码,登录校验码 select 0 as resultID select ValidCodeLogin from UserBaseInfo where UserID=@UserID return 0 end GO SET QUOTED_IDENTIFIER OFF GO 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 SET QUOTED_IDENTIFIER OFF GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER OFF GO SET ANSI_NULLS ON GO create proc dbo.proc_isUserValidbyCode_internal --用户身份检验(根据登录校验码) @ValidCodeLogin varchar(10), @validFlag int output as 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() --取得用户最后登录时间 update UserBaseInfo set LoginTime=@LoginTime where ValidCodeLogin=@ValidCodeLogin select @validFlag=0 return end GO SET QUOTED_IDENTIFIER OFF GO SET ANSI_NULLS ON GO 返回类别: 教程 上一教程: 通过ASP,想ACCESS数据库中建立相应表 下一教程: 下载网页中的所有资源 您可以阅读与"用户注册及跟踪代码(一)"相关的教程: · 用户注册及跟踪代码(三) · 用户注册及跟踪代码(二) · 建立一个广告交换及跟踪系统 · 注册帐号时密码随机生成的ASP代码 · 使用COOKIE来跟踪用户 |
| 快精灵印艺坊 版权所有 |
首页 |
||