ThinkPHP 3.2 用户注册邮箱验证帐号找回密码

当然现在有的网站也有手机短信的方式找回密码,原理就是通过发送验证码来验明正身,和发送邮件验证一样,最终还是要通过重置密码来完成找回密码的流程。本文将使用PHP+Mysql+jQuery来实现一个密码找回的功能,一般步骤是:1.表单输入注册时的邮箱;2.验证用户邮箱是否正确,如果用户邮箱不存在网站的用户表中,则提示用户邮箱未注册;3.发送邮件,如果用户邮箱确实存在用户表中,则组合用于验证用户信息的字符串,并构造URL发送到用户邮箱中;4.用户登录邮箱收取邮件,点击URL链接到网站验证程序;5.网站程序通过用户请求的字符串查询本地用户表,比对用户信息是否正确;6.如果正确则转到重置密码页面重新设置新密码,反之则提示用户验证无效。我们在找回密码的页面上放置一个要求用户输入注册时所用的邮箱,然后提交前台js来处理交互。<p><strong>输入您注册的电子邮箱,找回密码:</strong></p><p><inputtype="text"class="input"name="email"id="email"><span...

ThinkPHP 3.2 用户注册邮箱验证激活帐号

本文将结合实例,讲解如何使用PHP+Mysql完成注册帐号、发送激活邮件、验证激活帐号、处理URL链接过期的功能。业务流程1、用户提交注册信息。2、写入数据库,此时帐号状态未激活。3、将用户名密码或其他标识字符加密构造成激活识别码(你也可以叫激活码)。4、将构造好的激活识别码组成URL发送到用户提交的邮箱。5、用户登录邮箱并点击URL,进行激活。6、验证激活识别码,如果正确则激活帐号。准备数据表用户信息表中字段Email很重要,它可以用来验证用户、找回密码、甚至对网站方来说可以用来收集用户信息进行Email营销,以下是用户信息表t_user的表结构:DROPTABLEIFEXISTS`wechat_user`;CREATETABLE`wechat_user`(`id`int(11)NOTNULLAUTO_INCREMENT,`orgId`int(11)DEFAULT'0'COMMENT'组织ID',`username`varchar(40)DEFAULTNULL,`password`varchar(40)NOTNULL,`nickName`varchar(40)DEFAULTNULL,...

ThinkPHP 3.2 vendor()方法的深入研究及Phpqrcode的正确扩展

 第三方类库指除了ThinkPHP框架、应用项目类库之外的其他类库,一般由第三方系统或产品提供,如Smarty、Zend等系统的类库等。前面使用自动加载或import方法导入的类库,ThinkPHP约定是以.class.php为后缀的,非这类的后缀,需要通过import的参数来控制。但对第三类库,由于不会有此约定,其后缀只能认为是php。为了方便的引入其他框架和系统的类库,ThinkPHP特意提供了导入第三方类库的功能。第三方类库统一放置在ThinkPHP系统目录/Vendor下面,并且使用vendor方法导入。语法:boolenvendor(class,baseUrl,ext)参数说明:参数说明class必须,表示要导入的类库,采用命名空间的方式。baseUrl可选,表示导入的基础路径,省略的话系统采用ThinkPHP系统目录/Vendor目录。ext可选,表示导入的类库后缀,默认是.php。与import方法的区别在于,vendor方法默认的导入路径为ThinkPHP系统目录/Vendor目录,默认后缀为.php。当我们想在ThinkPHP中引入第三方扩展,而第三方扩展又...

ThinkPHP 3.2 DEMO案例系列【phpmailer批量发送邮件】

但是邮件和短信相比在一些场景依然有着重要的意义和优势;1:零成本;发邮件没有费用;2:内容丰富且量大;邮件可以长篇大论;图文并茂;3:增加访问量;用户很容易通过邮件中的链接访问网站;好了;下面来来为thinkphp集成邮件系统;示例项目:https://github.com/Tinywan/ThinkPhpStudy一、引入phpmail从示例项目中复制两个文件到自己的项目;/ThinkPHP/Library/Org/Nx/class.phpmailer.php;/ThinkPHP/Library/Org/Nx/class.smtp.php;二、设置配置项//***********************************邮件服务器**********************************'EMAIL_FROM_NAME'=>'tinywan@163.com',//发件人'EMAIL_SMTP'=>'smtp.163.com',//smtp'EMAIL_USERNAME'=>'tinywan@163.com',//账号'EMAIL_PASSWORD'=...

PHP 错误 系列:编码格式错误解决

一、Phalcon模型代码日志错误代码错误页面显示:Log日志错误代码:PHPmessage:PHPFatalerror:Namespacedeclarationstatementhastobetheveryfirststatementinthescriptin/home/www/mlk/app/common/models/AclRole.phponline3处理办法:用notepad++把页面转为utp-8无dom格式就好了 二、数据库连接失败错误处理(ThinkPHP配置文件出现的问题)错误代码:SQLSTATE[HY000][1045]Accessdeniedforuser'wechatu'@'218.108.35.150'(usingpassword:YES)处理办法:用notepad++把页面转为utp-8无dom格式就好了 ...

ThinkPHP 3.2公共类库、应用类库ThinkPHP/Library讲解

一、ThinkPHP的类库主要包括公共类库和应用类库,都是基于命名空间进行定义和扩展的。只要按照规范定义,都可以实现自动加载。       公共类库公共类库通常是指ThinkPHP/Library目录下面的类库,例如:         Think目录:系统核心类库         Org目录:第三方公共类库      这些目录下面的类库都可以自动加载,你只要把相应的类库放入目录中,然后添加或者修改命名空间定义。你可以在Org/Util/目录下面添加一个Image.class.php文件,然后添加命名空间如下:         namespaceOrgUtil;   ...

ThinkPHP中RBAC权限带菜单栏显示和详细权限操作

RBAC是Role-BasedAccessControl的首字母,译成中文即基于角色的权限访问控制,说白了也就是用户通过角色与权限进行关联[其架构灵感来源于操作系统的GBAC(GROUP-BasedAccessControl)的权限管理控制]。简单的来说,一个用户可以拥有若干角色,每一个角色拥有若干权限。这样,就构造成“用户-角色-权限”的授权模型。在这种模型中,用户与角色之间,角色与权限之间,一般者是多对多的关系。其对应关系如下:在许多的实际应用中,系统不只是需要用户完成简单的注册,还需要对不同级别的用户对不同资源的访问具有不同的操作权限。且在企业开发中,权限管理系统也成了重复开发效率最高的一个模块之一。而在多套系统中,对应的权限管理只能满足自身系统的管理需要,无论是在数据库设计、权限访问和权限管理机制方式上都可能不同,这种不致性也就存在如下的憋端:维护多套系统,重复造轮子,时间没用在刀刃上用户管理、组织机制等数据重复维护,数据的完整性、一致性很难得到保障权限系统设计不同,概念理解不同,及相应技术差异,系统之间集成存在问题,单点登录难度大,也复杂的企业系统带来...

【精选】Nginx负载均衡学习笔记(一)实现HTTP负载均衡和TCP负载均衡(官方和OpenResty两种负载配置)

说明:很简单一个在HTTP模块中,而另外一个和HTTP是并列的Stream模块(Nginx1.9.0支持)1、HTTP负载均衡:http{includemime.types;default_typeapplication/octet-stream;upstreamlive_node{server127.0.0.1:8089;server127.0.0.1:8088;}server{listen80;server_namelocalhost;location/{        proxy_passhttp://live_node;}}server{listen8088;server_namelocalhost;location/{root/usr/local/nginx/html2;indexindex.htmlindex.htm;}}server{listen8089;server_namelocalhost;location/{root/usr/local/nginx/html3;indexindex.htmlindex.htm;}}}以上测试一个浏览器访问80端口,实现访问不同的s...

PHP基础知识之————匿名函数(Anonymous functions)

   匿名函数(Anonymousfunctions),也叫闭包函数(closures),允许临时创建一个没有指定名称的函数。最经常用作回调函数(callback)参数的值。当然,也有其它应用的情况。创建闭包Example#1匿名函数变量赋值示例(http://laravelacademy.org/post/4341.html)<?php$fun=function($name){printf("Hello%s",$name);};echo$fun('Tinywan');echo$fun('Github');打印结果:TinywanGithub闭包和普通的PHP函数很像:常用的句法相同,也接受参数,而且能返回值。不过闭包没有函数名。注:我们之所以能调用$greet变量,是因为这个变量的值是一个闭包,而且闭包对象实现了__invoke()魔术方法,只要变量名后有(),PHP就会查找并调用__invoke方法。  我们通常把PHP闭包当做函数会方法的回调使用,事实上,很多PHP函数都会用到闭包,比如array_map和preg_replace_callback,这是使用PHP...

PHP官方文档之————secure.php.net.while

   while语句的含意很简单,它告诉PHP只要while表达式的值为TRUE就重复执行嵌套中的循环语句。表达式的值在每次开始循环时检查,所以即使这个值在循环语句中改变了,语句也不会停止执行,直到本次循环结束。有时候如果while表达式的值一开始就是FALSE,则循环语句一次都不会执行。Example#1<?php$i=0;while($i<=10){echo$i."";$i++;}Example#2<?php$a=0;while($a<10):echo$a."";$a++;endwhile; Example#3<?phpwhile(true){ if('test'){//isinitialconditiontrue  //dosomethingthatalsochangesinitialcondition }else{//conditionfailed  break;//leaveloop }}   do-while循环和while循环非常相似,区别在于...

【精选】Ubuntu 14.04 安装Nginx、php5-fpm、ThinkPHP5.0(已经测试上线)

 sudoapt-getupdate https://www.vultr.com/docs/setup-nginx-rtmp-on-ubuntu-14-04安裝完成後,Nginx的安装在/usr/local/nginx底下sudoapt-getinstallphp5-fpm修改PHP設定檔/etc/php5/fpm/php.ini,找到cgi.fix_pathinfo=1,將其值改為0:cgi.fix_pathinfo=0如此PHP的只會處理確切位置的檔案,一來加快速度二來更安全,修改完後重新啟動PHP:sudoservicephp5-fpmrestartnginx.conf文件userwwwwww;worker_processes1;#pidlogs/nginx.pid;events{worker_connections1024;}http{includemime.types;default_typeapplication/octet-stream;log_formatmain'$remote_addr-$remote_user[$time_local]"$req...

PHP 命令行模式实战之cli+mysql 模拟队列批量发送邮件(在Linux环境下PHP 异步执行脚本发送事件通知消息实际案例)

源码地址:https://github.com/Tinywan/PHP_Experience测试环境配置:环境:Windows7系统、PHP7.0、Apache服务器PHP框架:ThinkPHP框架(3.2)Redis数据库:测试数据回调函数:通过一个Redis的自增incr来测试异步脚本执行的次数和访问的时间(平时都是用Redis测试写日志的)编辑器:VisualStudioCode(CLI运行环境好看点)PHP的命令行模式   从版本4.3.0开始,PHP提供了一种新类型的CLISAPI(ServerApplicationProgrammingInterface,服务端应用编程端口)支持,名为CLI,意为CommandLineInterface,即命令行接口。顾名思义,该CLISAPI模块主要用作PHP的开发外壳应用。CLISAPI和其它CLISAPI模块相比有很多的不同之处,我们将在本章中详细阐述。值得一提的是,CLI和CGI是不同的SAPI,尽管它们之间有很多共同的行为。 PHP命令行(CLI)参数详解-a以交互式shell模式运行-c|...

Nginx、fastCGI、php-fpm关系梳理

  Linux下搭建nginx+php+memached(LPMN)的时候,nginx.conf中配需要配置fastCGI,php需要安装php-fpm扩展并启动php-fpm守护进程,nginx才可以解析php脚本。那么,这样配置的背后原理是什么?nginx、fastCGI、php-fpm之间又有什么关系呢?博主一直有这样的疑惑,由于无法理清nginx、php-fpm之间的关系,遇到nginx解析不了php脚本的时候,往往不知所措,花费的问题排查时间也非常长。因此,特地抽时间了解这背后的原理,梳理了一下nginx、fastCGI、php-fpm之间的关系。  fastCGI是由CGI(commongatewayinterface,通用网关接口)发展而来,是http服务器(nginx、apache)和动态脚本语言(php)之间的通信接口。记住,fastCGI只是一个接口。  fastCGI的优点:fastCGI采用C/S结构,可以将http服务器和动态脚本解析服务器分离(二者可以部署在不同的服务器上),让http服务器专一处理静态请求和转发动态请求到脚本解析服务器;脚本解析服务器则专一...

Windows下配置Nginx+php7

第一部分:准备工作第二部分:安装nginx第三部分:安装php(这里主要讲nginx配置启动php,以cgi运行php)nginx配置文件是conf文件夹里的nginx.conf在这里,我简单说说配置的原理,因为nginx是一个反向代理的web服务器,因此它其实必须依赖一个真正的web服务器才能执行动态的网页内容,因此这里php就是使用fastcgi来充当这个真正的web服务器,它运行在9000端口上,这也是为什么nginx.conf中有这样一句fastcgi_pass127.0.0.1:9000;,知道这个原理后,下面的思路就很明确了,打开fastcgi,然后再打开nginx就行了注意点1:配置文件:    注意点2:记住一定要在绝对路径启动的D:wnmpphp>php-cgi.exe-b127.0.0.1:9000-cD:wnmpphpphp.ini 浏览器输入:http://127.0.0.1:8089/index.php  参考文档:http://jingyan.baidu.com/article/636f38bb408ee4d6b84610...
代码星球 代码星球·2020-04-03

流媒体技术学习笔记之(十四)FFmpeg进行笔记本摄像头+麦克风实现流媒体直播服务

ffmpeg-list_devicestrue-fdshow-idummy红色标记表示视频设备和麦克风设备ffmpeg-fdshow-ivideo="LenovoEasyCamera":audio="麦克风(RealtekHighDefinitionAudio)"-vcodeclibx264-acodeccopy-preset:vultrafast-tune:vzerolatency-fflv"rtmp://aitech.com/live/tinywan123" ffmpeg-fdshow-ivideo="LenovoEasyCamera":audio="麦克风(RealtekHighDefinitionAudio)"-vcodeclibx264-acodeclibvo_aacenc-preset:vultrafast-tune:vzerolatency-frtsprtsp://13313.3123/tinywan123.sdp 设置帧率为25fps,注意这个要设置在推流地址前面摄像头后面ffmpeg-fdshow-ivideo="LenovoEasyCamera"...
首页上一页...590591592593594...下一页尾页