用户注册及跟踪代码(一)

用户注册册及确认在线的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

时间: 2024-09-13 17:55:14

用户注册及跟踪代码(一)的相关文章

用户注册及跟踪代码(二)

2. ASP代码(设立一DSN,请改动begin.asp)----------------------------------------文件begin.asp<%Set Con = Server.CreateObject( "ADODB.Connection" )Con.Open "test" ,"test","test"%>-----文件reg_step1.asp<html><head>

用户注册及跟踪代码(三)

2. ASP代码(设立一DSN,请改动begin.asp)---------------------------------------文件reg_step2.asp<% ValidCodeLogin=Request.QueryString("VailCodeLogin")u_name=Request.QueryString("name") if ValidCodeLogin="" or u_name="" thenRe

特征融合的粒子滤波目标跟踪代码

问题描述 特征融合的粒子滤波目标跟踪代码 30C 请问哪位大神有'粒子滤波视频目标跟踪'的完整实现代码啊?最近在研究这个,却一直束手无措,急求啊,感谢分享~ 解决方案 目标跟踪-粒子滤波粒子滤波 目标跟踪目标跟踪之粒子滤波

视频-求用opencv实现的车辆检测跟踪代码,高分悬赏,急

问题描述 求用opencv实现的车辆检测跟踪代码,高分悬赏,急 有人有用opencv实现的车辆检测跟踪代码吗?能在原视频上框出车辆并且有跟踪轨迹.高分悬赏,多谢! 解决方案 http://www.codeforge.cn/article/218179

Google的跟踪代码 动态加载js代码方法应用_javascript技巧

复制代码 代码如下: <script type="text/javascript"> var _gaq = _gaq || []; //如果变量 _gaq 存在,就等于他自己,否则为一个空数组 _gaq.push(['_setAccount', 'UA-24479793-2']); //是个2维数组 _gaq[0] = array(0=>'_setAccount', 1=>'UA-24479793-2');(设置本跟踪代码所对应的Google帐户) _gaq.p

treeview-明明Treeview1有很多节点,但是跟踪代码却只有1个节点,为什么?

问题描述 明明Treeview1有很多节点,但是跟踪代码却只有1个节点,为什么? 请各位大神帮忙,确定TREEVIEW1里面有很多节点,treeview1.nodes.count只有1个? Private Sub Button7_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button7.Click mycn.ConnectionString = "Data Source=" &am

在设计期跟踪代码 (.NET)

设计 在开发中碰到这样的问题: winform窗口中定义了基类窗体,在设计器中打开子类窗体的时候出现诸如"窗口无法使用设计器进行进行设计,发生了......的异常"的信息,并且窗体无法打开,也就没办法使用窗体设计器进行界面的设计.但是运行起来一切正常. 这个问题的原因就是在解决方案资源管理器中双击窗体打开进行设计的时候,会去执行它的基类,也就是父窗体中的一些代码,例如: 建立一个基类窗体,名为FormBase,再建立一个子类窗体FormDerive,从FormBase继承public

如何解决linux gdb 跟踪代码错行问题

今天突然出现的一个奇怪的问题,gdb跟踪的时候老是错位了几行,执行step命令的时候也无法进入,本着一次解决的决心,开始查找问题: 1.先确认了是按最新文件编译的 2.确认了编译后库文件有install的(因为错位的是so) 3.在source insight和vi下面看确认了文件代码行是一样的 @@,迷茫了一下,然后开始怀疑跟windows拷贝到linux编译有关,开始用vi看代码文件,果然看到了符号^M. 这位兄台为何方神圣呢?传说中windows换行符为0d 0a,linux换行符为0a,

用户注册常用javascript代码_表单特效

复制代码 代码如下: <%@ page contentType="text/html; charset=gb2312" language="java"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head&