如何验证会员系统中用户的邮箱是否真实存在
在开发网站时,我们需要对用户注册的邮箱进行核对与验证,用户填写的邮箱是否有效邮箱。 好吧,我们先从数据库入手,修改用户表让用户有填写email的字段,添加了2个字段:
由于你需要做2个功能,一个是要求用户验证邮箱有效性,也有可以以邮箱来让用户修改用户密码。因此需要创建一个表来存储这2个类型的数据:
接下来,你还需要创建另外一张表,是记用户请求的事件,记录用户的一些信息,如帐号,邮箱,链接有时效性等:
当用户更改邮箱成功时,需要同进对[IsVerify] 更改为false。因此你需要对最开始的表写一个触发器:
@old_email)
UPDATE [dbo].[Users] SET [IsVerify] = 0 WHERE [U_nbr] = @U_nbr
GO
Source Code
当用户发出验证邮箱或是更改密码时,让程序执行下面的存储过程:
用户验证邮箱有效性,是在登录之后进行的,因此只需要点击“验证”铵钮即可,系统即发送验证的邮件至用户的邮箱中。 均是使用这个存储过程[dbo].[usp_UserRequestAction_Request]。 接下来的流程是,用户会打开他的邮箱,查阅刚刚系统发送的邮件。邮件内容就是看实际需求了,如提示用户,是不是自己本人操作,安全性等,这些都不是怎样重要,重要的是那一条链接。 指示用户点击链接。这个链接会导上到网站一个页面。当到这个页面时,系统会在这页面进行一些程序处理,检查链接有效性,时间是否过期,如果一切没有问题,会进更新IsVerify字段为ture. 如果是用户忘记密码的话,在用户点击链接,系统也会检有效性,没有期,面会出现更改密码的form,让用户进行更改全新的密码。 Ok,还差2个存储过程,第一个是更新IsVerify字段值:
= CURRENT_TIMESTAMP)
BEGIN
DECLARE @Account NVARCHAR(30)
SELECT @Account = [Account] FROM [dbo].[UserRequestAction] WHERE [Token] = @token
UPDATE [dbo].[Users] SET [IsVerify] = 1 WHERE [U_nbr] = @Account
UPDATE [dbo].[UserRequestAction] SET [Expire] = DATEADD(DAY,-1,CURRENT_TIMESTAMP) WHERE [Token] = @token
END
GO
Source Code
另一个是ResetPassword的,重设密码:
= CURRENT_TIMESTAMP)
BEGIN
DECLARE @Account NVARCHAR(30)
SELECT @Account = [Account] FROM [dbo].[UserRequestAction] WHERE [Token] = @token
DECLARE @pwd VARBINARY(MAX) = ENCRYPTBYPASSPHRASE('insus#sec!%y',@Password)
UPDATE [dbo].[Users] SET [Pwd] = @pwd WHERE [U_nbr] = @Account
UPDATE [dbo].[UserRequestAction] SET [Expire] = DATEADD(DAY,CURRENT_TIMESTAMP) WHERE [Token] = @token
END
ELSE
BEGIN
RAISERROR(N'无法更改密码,请联系客服或网络管理员。',1)
RETURN
END
Source Code
数据库方面开发就这样子,程序方面看你自己发挥了。 以上所述是小编给大家介绍的验证会员系统中用户的邮箱是否真实存在的方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持! (编辑:鄂州站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |