搜索
首页后端开发php教程php怎么实现,E-mail验证激活用户

php如何实现,E-mail验证激活用户?
意思是说,如何实现,用E-mail实现,发邮件来激活用户?
我的程序已经用了一个e-mail类了!
用于找回密码!
但是我想注册时,在加个用邮件来验证用户才能激活用户!
大家应该知道很多程序都带有,注册时 程序就会执行自动生成URL地址,发送至用户的邮件上!
用户点击了URL链接,就会激活用户!
但是我想知道如何实现呢?
就是自动生成URL地址那步不会,还有验证时不会,不过有段源码也不知道能不能用!
谁能告诉我自动生成URL地址怎么实现啊?


最好能给个实例代码,或者提供开源的程序带有我所说的功能!

  谢谢..

------解决方案--------------------
实例代码目前手上没有,开源程序有你说这功能的很多,比如uchome,discuz什么的。


其实原理很简单,你说自动生成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。
------解决方案--------------------
除了考虑发邮件给客户


还要考虑,邮箱收不到的情况。因为不能保证100%的到达率

所以,还要提供一个邮箱,让客户发一邮件到指定邮箱

程序读取邮件列表,如果有来自A邮箱的邮件,并有注册用户用了该邮箱,就验证通过A

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
PHP函数介绍—get_headers(): 获取URL的响应头信息PHP函数介绍—get_headers(): 获取URL的响应头信息Jul 25, 2023 am 09:05 AM

PHP函数介绍—get_headers():获取URL的响应头信息概述:在PHP开发中,我们经常需要获取网页或远程资源的响应头信息。PHP函数get_headers()能够方便地获取目标URL的响应头信息,并以数组形式返回。本文将介绍get_headers()函数的用法,以及提供一些相关的代码示例。get_headers()函数的用法:get_header

怎样透过几个步骤获取您的 Steam ID?怎样透过几个步骤获取您的 Steam ID?May 08, 2023 pm 11:43 PM

现在很多热爱游戏的windows用户都进入了Steam客户端,可以搜索、下载和玩任何好游戏。但是,许多用户的个人资料可能具有完全相同的名称,这使得查找个人资料或什至将Steam个人资料链接到其他第三方帐户或加入Steam论坛以共享内容变得困难。为配置文件分配了一个唯一的17位id,它保持不变,用户无法随时更改,而用户名或自定义URL可以更改。无论如何,一些用户并不知道他们的Steamid,这对于了解这一点非常重要。如果您也不知道如何找到您帐户的Steamid,请不要惊慌。在这篇文

为什么NameResolutionError(self.host, self, e) from e,怎么解决为什么NameResolutionError(self.host, self, e) from e,怎么解决Mar 01, 2024 pm 01:20 PM

报错的原因NameResolutionError(self.host,self,e)frome是由urllib3库中的异常类型,这个错误的原因是DNS解析失败,也就是说,试图解析的主机名或IP地址无法找到。这可能是由于输入的URL地址不正确,或者DNS服务器暂时不可用导致的。如何解决解决此错误的方法可能有以下几种:检查输入的URL地址是否正确,确保它是可访问的确保DNS服务器可用,您可以尝试在命令行中使用"ping"命令来测试DNS服务器是否可用尝试使用IP地址而不是主机名来访问网站如果是在代理

如何在Java中使用URL编码和解码如何在Java中使用URL编码和解码May 08, 2023 pm 05:46 PM

使用url进行编码和解码编码和解码的类java.net.URLDecoder.decode(url,解码格式)解码器.解码方法。转化成普通字符串,URLEncoder.decode(url,编码格式)将普通字符串变成指定格式的字符串packagecom.zixue.springbootmybatis.test;importjava.io.UnsupportedEncodingException;importjava.net.URLDecoder;importjava.net.URLEncoder

html和url的区别是什么html和url的区别是什么Mar 06, 2024 pm 03:06 PM

区别:1、定义不同,url是是统一资源定位符,而html是超文本标记语言;2、一个html中可以有很多个url,而一个url中只能存在一个html页面;3、html指的是网页,而url指的是网站地址。

Scrapy优化技巧:如何减少重复URL的爬取,提高效率Scrapy优化技巧:如何减少重复URL的爬取,提高效率Jun 22, 2023 pm 01:57 PM

Scrapy是一个功能强大的Python爬虫框架,可以用于从互联网上获取大量的数据。但是,在进行Scrapy开发时,经常会遇到重复URL的爬取问题,这会浪费大量的时间和资源,影响效率。本文将介绍一些Scrapy优化技巧,以减少重复URL的爬取,提高Scrapy爬虫的效率。一、使用start_urls和allowed_domains属性在Scrapy爬虫中,可

SpringBoot多controller如何添加URL前缀SpringBoot多controller如何添加URL前缀May 12, 2023 pm 06:37 PM

前言在某些情况下,服务的controller中前缀是一致的,例如所有URL的前缀都为/context-path/api/v1,需要为某些URL添加统一的前缀。能想到的处理办法为修改服务的context-path,在context-path中添加api/v1,这样修改全局的前缀能够解决上面的问题,但存在弊端,如果URL存在多个前缀,例如有些URL需要前缀为api/v2,就无法区分了,如果服务中的一些静态资源不想添加api/v1,也无法区分。下面通过自定义注解的方式实现某些URL前缀的统一添加。一、

nginx怎么配置url重定向nginx怎么配置url重定向May 12, 2023 am 10:31 AM

本文系统:centos6.5_x64三台主机:nginx主机,hostname:master.lansgg.comip:192.168.10.128apache主机,hostname:client1.lansgg.comip:192.168.10.129一、nginx地址重定向二、nginx反向代理1、地址重定向:是指当使用者浏览某个网址时,将他导向到另一个网址的技术。常用在把一串很长的网址,转成较短的网址。因为当要传播某网站时,常常因为网址太长,不好记忆;又有可能因为换了网路的免费网页空间,网

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
2 周前By尊渡假赌尊渡假赌尊渡假赌
仓库:如何复兴队友
4 周前By尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒险:如何获得巨型种子
4 周前By尊渡假赌尊渡假赌尊渡假赌

热工具

WebStorm Mac版

WebStorm Mac版

好用的JavaScript开发工具

MinGW - 适用于 Windows 的极简 GNU

MinGW - 适用于 Windows 的极简 GNU

这个项目正在迁移到osdn.net/projects/mingw的过程中,你可以继续在那里关注我们。MinGW:GNU编译器集合(GCC)的本地Windows移植版本,可自由分发的导入库和用于构建本地Windows应用程序的头文件;包括对MSVC运行时的扩展,以支持C99功能。MinGW的所有软件都可以在64位Windows平台上运行。

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

Atom编辑器mac版下载

Atom编辑器mac版下载

最流行的的开源编辑器

SublimeText3 英文版

SublimeText3 英文版

推荐:为Win版本,支持代码提示!