使用PHP怎么实现一个用户注册登录功能

  介绍

使用PHP怎么实现一个用户注册登录功能吗?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

1.1涉及到的知识点

<李>

PHP GD库<李>

<李>

OOP编程

1.2开发工具

崇高,一个方便快速的文本编辑器。点击桌面左下角:应用程序菜单/开发/崇高

二、封装验证码类

2.1建立目录以及准备字体

在web目录下建立一个管理目录作为我们的后台目录,存放后台代码文件。在管理下建立一个字体目录,用于存放制作验证码所需字体。

在管理下新建一个验证码。php文件,这就是我们需要编辑的验证码类文件。

当前目录层次结构:
使用php怎么实现一个用户注册登录功能

编辑验证码。php文件:

& lt; ? php /* *   *,Captcha 类   */class 验证码   {   ,,   function 才能;__construct ()   {才能   ,,,#,代码…   ,,}   }

添加该类的私有属性和构造方法:

& lt; ? php /* *   *,Captcha 类   */class 验证码   {   private 才能;codeNum美元;,,//验证码位的数   private 才能;宽度;美元,,//验证码图片宽度   private 才能;高度;美元,,//验证码图片高度   private 才能,img美元;,,//图像资源句柄   private 才能;lineFlag美元;,,//是否生成干扰线条   private 才能;piexFlag美元;,,//是否生成干扰点   private 才能;$字形大小;,,//字体大小   private 才能;代码;美元,,//验证码字符   private 才能;$ string;,,//生成验证码的字符集   private 才能;字体美元;,,//字体   function 才能;__construct ($ codeNum =, 4, height 美元;=,50美元width =, 150美元fontSize =, 20日lineFlag 美元;=,真的,piexFlag 美元;=,真的)   {才能   ,,,这个→美元string =, & # 39; qwertyupmkjnhbgvfcdsxa123456789& # 39;,,,//去除一些相近的字符   ,,,这个→美元codeNum =, codeNum美元;   ,,,这个→美元height =,美元高度;   ,,,这个→美元width =,美元宽度;   ,,,这个→美元lineFlag =, lineFlag美元;   ,,,这个→美元piexFlag =, piexFlag美元;   ,,,这个→美元font =,目录名(__FILE__) # 39;公司/字体/consola.ttf& # 39;;   ,,,这个→美元fontSize =,美元字形大小;   ,,}   }

字体文件可通过以下命令下载到字体目录:

美元wget http://labfile.oss.aliyuncs.com/courses/587/consola.ttf

接下来开始编写具体的方法:

创建图像资源句柄

//创建图像资源,,   public  function  createImage () {   ,,,这个→美元img =, imagecreate ($ this→宽度,,$ this→高度),,,//创建图像资源   ,,,imagecolorallocate ($ this→img, mt_rand (0100), mt_rand (0100), mt_rand(0100));,,//填充图像背景(使用浅色)   以前,,}

用到的相关函数

<李>

imagecreate:新建一个基于调色板的图像

<李>

imagecolorallocate:为一幅图像分配颜色

<李>

mt_rand:生成更好的随机数

创建验证码字符串并输出到图像

//创建验证码,,   public  function  createCode () {   ,,,strlen 美元;=,strlen ($ this→字符串)1;   ,,,for  (i=0;美元,美元小姐:& lt;,这→美元codeNum;,我+ +美元),{,   ,,,,,这个→美元code 。=, $ this→字符串[mt_rand (0, strlen美元)];,,//从字符集中随机取出四个字符拼接   ,,,}   ,,,,美元_SESSION[& # 39;代码# 39;],=,$ this→代码;,,//加入,session 中   ,,   ,,//计算每个字符间距   ,,,diff 美元;=,$ this→宽/$ this→codeNum;   ,,,for  (i=0;美元,美元小姐:& lt;,这→美元codeNum;,我+ +美元),{,   ,,,,,,,,,//为每个字符生成颜色(使用深色)   ,,,,txtColor 美元;=,imagecolorallocate ($ this→img, mt_rand (100255), mt_rand (100255), mt_rand (100255));   ,,,,//写入图像   ,,,,,imagettftext ($ this→img, $ this→字形大小,,mt_rand (-30, 30), diff *我美元+ mt_rand (3 8), mt_rand(20,这比美元;高度10),txtColor美元,美元这→字体,,$ this→代码[$ i]);   ,,,}   以前,,}

使用PHP怎么实现一个用户注册登录功能