• <label id="pxtpz"><meter id="pxtpz"></meter></label>
      1. <span id="pxtpz"><optgroup id="pxtpz"></optgroup></span>

        當前位置:雨林木風下載站 > 技術開發教程 > 詳細頁面

        用戶注冊及跟蹤代碼(一)

        用戶注冊及跟蹤代碼(一)

        更新時間:2022-05-13 文章作者:未知 信息來源:網絡 閱讀次數:

        用戶注冊冊及確認在線的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


        溫馨提示:喜歡本站的話,請收藏一下本站!

        本類教程下載

        系統下載排行

        主站蜘蛛池模板: 无码国产精品一区二区免费 | 国色精品卡一卡2卡3卡4卡免费| 亚洲国产福利精品一区二区| 成**人免费一级毛片| gogo免费在线观看| 亚洲视频在线观看视频| 免费永久看黄在线观看app| 精品一卡2卡三卡4卡免费视频| 亚洲首页国产精品丝袜| 亚洲午夜精品第一区二区8050| 最近中文字幕免费完整| 国产亚洲精品精品精品| 亚洲视频免费在线看| 亚洲国产精品日韩专区AV| 在线精品一卡乱码免费| 精品一区二区三区高清免费观看| 亚洲午夜精品在线| 亚洲色WWW成人永久网址| 全免费一级午夜毛片| 嫩草在线视频www免费观看| 国内成人精品亚洲日本语音| 亚洲高清日韩精品第一区 | 亚洲午夜在线播放| 亚洲熟女少妇一区二区| 日本一道在线日本一道高清不卡免费 | 77777_亚洲午夜久久多人| 亚洲精品视频免费| 免费可以在线看A∨网站| 日本人成在线视频免费播放| 午夜亚洲国产精品福利| 中文字幕在线观看亚洲日韩| 亚洲精品福利视频| 亚洲三区在线观看无套内射| 亚洲?V乱码久久精品蜜桃| 在线a级毛片免费视频| 日韩午夜理论免费TV影院| 免费无码又爽又刺激一高潮| 无码毛片一区二区三区视频免费播放 | 亚洲伊人久久大香线蕉苏妲己| 亚洲一区二区精品视频| 情侣视频精品免费的国产|