php注册时候邮箱验证的原理

其实原理很简单,你说自动生成URL那一步不会,首先URL分为两部分:
第一部分是一个验证地址并且带一个标识用户id的参数,比如:http://www.xxx.com/active.php?uid=1
第二部分其实就是一个用来验证的字符串,比如:authcode=asdad1f323ff43f
合起来就是http://www.xxx.com/active.php?uid=1&authcode=asdad1f323ff43f

第一部分是你来决定的,active.php就是你写的那个做验证脚本,所以你可以知道地址了?
第二部分不就是个随机生成的字符串吗?你可以用:md5(自己的域名+时间戳+验证的用户名)这个公式来生成这个串。当然你可以自己定义如何组合这个串,只要保证他们不是有规律让人一下猜到的,也别重复的就可以。
很简单是吗?

至于何时生成,何时验证,你可以这样设计:
你可以在用户表中,加两个字段:1 (bool isActive)用户是否已激活,默认为false。2 (string authcode)临时激活码。
当用户注册后,或点击激活按钮后,就执行你的一个脚本:
1 生成激活码,就是我上面说的方法。
2 将这个激活码,存储这个激活码到用户表的authcode字段。
3 将你的完整激活地址,用邮件发送到用户的邮箱
4 你的那个脚本,在接收到请求时,将两个参数取下来去用户表中搜索uid=1的用户的authcode是否与数据库中的相等,如果相等,验证通过,并清空update isActive字段为true,authcode字段更新为空。

就是这样,当然,为了避免生成了重复的验证码和别人的猜解,你可以给authcode设置超时时间。这个有很多种做法,你可以给用户表再加个字段是一个时间戳,用当前时间戳+有效的时间戳期限,比如time()+3600,这个就是一个小时的超时时间,验证时,你可以同时再比对下是否在这个时间戳之内。这种东西,你也可以放在缓存或内存中。这样会更好。

你可能还需要做一个开关,也许你今天想让新注册的用户都需要邮件激活,而明天也许你又不想了。用来控制,是否需要邮件激活。首先判断这个值为true的话,所有注册用户的isActive都为false,否则都为true。

时间: 2024-08-01 10:44:50

php注册时候邮箱验证的原理的相关文章

邮箱验证功能原理 语法 属性

邮箱验证功能原理 1 [已解决问题] 浏览: 3508次 很多地方都在注册账号的时候使用邮箱验证功能.注册后发送一封邮件到注册邮箱里面.然后点击 邮箱里面的链接 激活邮箱. 还有手机验证 这些的原理是 怎么样的.忘指点 .NET技术 ASP.NET yzy | 菜鸟二级 | 园豆:295 提问于:2012-03-20 18:26 < > 找找看 关注 最佳答案 2 这个其实就是通过第三方,将数据传递给用户,然后用户通过比如邮箱 来获取验证码,然后注册信息,起到一个比较安全的的作用..邮箱验证就

Django 实现网站注册用户邮箱验证功能

我们在很多网站上都可以看到用户注册使用电子邮件激活或启用的方式.也就是说,用户在注册后填写正确的电子邮件地址,接着网站会发送一封启用电子邮件到用户设置的电子邮件的邮箱中,并在邮件中提供一个激活或启用的链接,在用户单击此链接后,账号正式激活或启用. 这里我们使用 Django 的 django-registration 模块可以快速实现这一过程. 1. django-registration 安装与设置 使用 pip 安装: pip install django-registration 此模块暂

通过邮箱验证注册——.net代码

在写一些面向用户的网站类的程序时,必不可少的一个就是注册,通常情况下,我们会选择邮箱验证后注册,或者手机发送验证码注册.上篇文章中已经简单的描述了手机验证注册,这篇主要介绍一下邮箱验证. 邮箱验证的步骤主要是:用户填写邮箱账号并提交.后台判断输入是否是有效邮箱,如果为有效邮箱,发送验证链接到输入的邮箱中,用户通过邮箱的链接,成功注册. 想实现这个功能,首先,在填写注册信息时,后台生成一个默认的状态(例如:state=0,表示未验证)存入数据库.提交表单后,把输入的内容存入数据库,然后通过send

C# 注册邮箱验证的实现代码

本文介绍下,C#实现注册用户时,通过邮箱进行验证的思路与代码,有需要的朋友,不妨参考下. 一.思路 1,数据库加两个字,state字段(0:未激活,1:激活成功),ActiCode:(放激活码). 2,用户填写资料,插入数据成功,state字段默认是0,同时生成一个ActiCode也存入数据库. 3,提示用户激活.发送邮件.邮件中带一个激活成功页的URL,URL里有两个参数(1,用户ID,2:激活码). 4,用户点击链接,回到激活成功页.激活成功页的Load事件,得到两个参数,以这两个参数为条件

JavaMail实现注册邮箱验证案例

在日常生活中,我们在一个网站中注册一个账户时,往往在提交个人信息后,网站还要我们通过手机或邮件来验证,邮件的话大概会是下面这个样子的:用户通过点击链接从而完成注册,然后才能登录. 也许你会想,为什么要这么麻烦直接提交注册不就行了吗?这其中很大一部分原因是为了防止恶意注册.接下来让我们一起来使用最简单的JSP+Servlet的方式来完成一个通过邮箱验证注册的小案例吧. 准备工作前提知识动手实践之前,你最好对以下知识有所了解: (1)JSP和Servlet(2)MySQL(3)c3p0(4)SMTP

asp.net 邮箱验证 操作

哥们喜欢直接上代码,虽然这种方法不对,但是可以解决实际中的应急问题,等解决后,希望有心的同学可以去研究一下原理,理解才能硬道理! public void SendEmailUser() { MailMessage msg = new MailMessage(); int j; for (j = 0; j < 10; j++) { msg.To.Add("[email protected]"); }; /* * msg.CC.Add("[email protected]&

在Maven项目中关于SSM框架中邮箱验证登陆

1.你如果要在maven项目中进行邮箱邮箱验证,你首先要先到pom.xml文件中配置mail.jar,activation.jar包 <dependency> <groupId>javax.mail</groupId> <artifactId>mail</artifactId> <version>1.4</version> </dependency> <dependency> <groupId

jquey ui 实现注册,邮箱自动补全

//----------------------------------------------------------------------------------------------- //----------------------------------------------------------------------------------------------- //静态页面 <!DOCTYPE html> <html> <head> <

JavaMai——邮箱验证用户注册

这篇文章简单的模拟了网上利用邮箱激活用户注册这样的一个功能 1. 呈现给用户的注册界面:(为了简单起见,就剩下两个输入域,邮箱和昵称) [html] view plain copy print? <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01