php学习----php实现验证码(一)

一、简单介绍验证码

1.验证码为全自动区分计算机和人类的图灵测试的缩写。是一种区分用户是计算机和人的公共全自动程序。

2.验证码主要应用场景:登录、注册确定前,发布、回复信息前,疑似机器请求时,做人/机器校验。

3.实现步骤:

(1)生成底图;

       依赖php图片处理库GD,http://php.net/manual/zh/book.image.php

(2)生成验证内容;

         产生随机数,使用php函数rand();

(3)生成验证码图片;

(4)校验验证内容

          需要php操作SESSION基础,将验证内容保存在服务器端;前端Ajax基础

4.开发前的准备:

(1)php运行环境(我用的是Laragon);

在www目录下新建一个文件夹test,新建一个test.php文件

启动Laragon,查看页面:

php学习----php实现验证码(一)_第1张图片

(2)检查PHP是否支持GD,通过在php文件中使用函数 phpinfo()输出查看即可。

在test1.php中写入函数

刷新页面,在出现的也页面,搜索gd,查看是否支持,若不支持,请自行百度寻找方法:

php学习----php实现验证码(一)_第2张图片


二、php实现验证码---数字验证码

1.新建一个captcha.php文件,写入下列代码。实现验证码图片:

查看效果如下:刷新一次,内容或会变化一次

php学习----php实现验证码(一)_第3张图片

2.新建一个form.php文件,写入下列代码。实现校验:

 输出正确';
			# code...
		}else{
			echo $_REQUEST['authcode'];
			echo $_SESSION['authcode'];
			echo' 输出错误';
		}

		exit();

	}
?>



	
		
		确认验证码
	
	
		

验证码图片: 换一个?

请输入图片中的内容:

实现结果如下,点击换一个,会换一个验证码。

php学习----php实现验证码(一)_第4张图片

输入图片中内容,如果正确,提示输入正确,如果错误,提示输入错误。样式自行修改。

三、php实现验证码---数字字母验证码

1.生成验证码图片,只需将产生随机数字的代码换成产生随机数字字母的代码,其他代码与二中保持一致

//验证码为随机四个字符,数字和字母
   for ($i=0; $i <4 ; $i++) { 
   	$fontsize=6;
   	$fontcolor=imagecolorallocate($image,rand(0,120),rand(0,120),rand(0,120));
   	//子典。因为o和0,l和1冲突,所以我们字典中不包括易混淆的
    $data='abcdefghijkmnpqrstuvwxy3456789';
    $fontcontent = substr($data,rand(0,strlen($data)) ,1);
	$captch_code.= $fontcontent;

	$x=($i*100/4)+rand(5,10);
	$y=rand(5,10);

    imagestring($image,$fontsize,$x,$y,$fontcontent,$fontcolor);
   }

效果如下:

php学习----php实现验证码(一)_第5张图片


代码中涉及的函数,读者可自行去网站 http://php.net/manual/zh/book.image.php中查看详情。

学习php验证码参考视频:https://www.imooc.com/learn/115

你可能感兴趣的:(语言学习)