• <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


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

        本類教程下載

        系統下載排行

        主站蜘蛛池模板: 亚洲精品国产精品乱码不99| 免费观看大片毛片| 中文字幕亚洲综合久久菠萝蜜| 又粗又大又黑又长的免费视频| 日本成人免费在线| 亚洲国语精品自产拍在线观看| 亚洲国产精品无码第一区二区三区| 日本视频免费观看| 免费成人午夜视频| 一区二区免费电影| 曰韩亚洲av人人夜夜澡人人爽 | 国产亚洲精品线观看动态图| 人妻仑乱A级毛片免费看| 亚洲免费在线视频播放| 国产a v无码专区亚洲av| g0g0人体全免费高清大胆视频| 亚洲午夜国产精品无码老牛影视| 免费无码一区二区三区蜜桃| 午夜亚洲av永久无码精品| 亚洲人成黄网在线观看| 国产永久免费高清在线| 亚洲人成亚洲精品| 中文字幕中韩乱码亚洲大片 | 黄色网址大全免费| 成人无码区免费A片视频WWW| 亚洲av无码成h人动漫无遮挡| 午夜精品免费在线观看 | 久久亚洲精品国产精品| 精品熟女少妇AV免费观看| 亚洲国产精品久久久久婷婷老年| h片在线免费观看| 国产精品亚洲а∨天堂2021| 免费观看一级毛片| 特级毛片A级毛片免费播放| 久久精品国产69国产精品亚洲| kk4kk免费视频毛片| 91情国产l精品国产亚洲区| 99热这里只有精品免费播放| 在线观看亚洲AV每日更新无码| 中文字幕不卡亚洲| 毛片免费全部免费观看|