PHP生成一个简单的验证码图片
来源:互联网 发布:php记录访客信息 编辑:程序博客网 时间:2024/05/16 15:35
解决问题:用PHP做一个简单的验证码;
说明:我本身是一个前端,工作久了之后发现要是不掌握一门后端开发语言的话,会有一种无力感。最近在边做自己的个人网站边学习php,在写登录注册的时候,为了防止暴力注册或者暴力破解,需要完成一个简单的验证码验证流程。于是就自己写了一个生成验证码的小接口,希望对需要的人有所帮助。
代码如下:代码里面的注释包含了我在写这段生成验证码代码的时候的,一些心路历程,想了一下没有删掉,反正不影响运行结果!
<?php/* date:2017-09-04, * 功能:实现验证码, * 补充:目前只是简单说明了一些绘制图片的一些常用的方法,具体的验证码功能等待继续完善 *//*使用GD的imagecreatetruecolor();创建一张背景图 * imagecreatetruecolor()新建一个真彩色图像,代表了一副大小为x_size和y_size的黑色图像 * 参数两个,分别是imagecreatetruecolor ( int $width , int $height ),图像宽度和图像高度 * 返回值:成功后返回图像资源,失败后返回false * 默认生成黑色背景 */$image=imagecreatetruecolor(200,60);/* imagecolorallocate ( resource $image , int $red , int $green , int $blue ) * imagecolorallocate() 返回一个标识符,代表了由给定的 RGB 成分组成的颜色。red,green 和 blue 分别是所需要的颜色的红,绿,蓝成分。这些参数是 0 到 255 的整数或者十六进制的 0x00 到 0xFF。imagecolorallocate() 必须被调用以创建每一种用在 image 所代表的图像中的颜色。 * 如果分配失败则返回 -1。 * 这里提到另外一个函数 * imagecolorallocatealpha() 的行为和 imagecolorallocate() 相同,但多了一个额外的透明度参数 alpha,其值从 0 到 127。0 表示完全不透明,127 表示完全透明。 如果分配失败则返回 FALSE。 *///生成填充色,该实例是红色(填充成为img的背景颜色,即底色。这是我开始的错误理解,这里只不过是制造了一种颜色而已)$bgcolor=imagecolorallocate($image,255,0,0);//白色$white=imagecolorallocate($image,255,255,255);//绿色$green=imagecolorallocate($image,0,255,0);//蓝色$blue=imagecolorallocate($image,0,0,255);/*bool imagefill ( resource $image , int $x , int $y , int $color ) * imagefill() 在 image 图像的坐标 x,y(图像左上角为 0, 0)处用 color 颜色执行区域填充(即与 x, y 点颜色相同且相邻的点都会被填充)。 * 暂时没有发现设置x,y有什么用 *///将填充色填充到背景图上---现在我认为应该说成是用什么颜色作为图片的背景颜色(填充色)imagefill($image,0,0,$blue);/*mt_rand — 生成更好的随机数 * 很多老的 libc 的随机数发生器具有一些不确定和未知的特性而且很慢。PHP 的 rand() 函数默认使用 libc 随机数发生器。mt_rand() 函数是非正式用来替换它的。该函数用了 » Mersenne Twister 中已知的特性作为随机数发生器,它可以产生随机数值的平均速度比 libc 提供的 rand() 快四倍。 * int mt_rand ( int $min , int $max ) * 参数min可选的、返回的最小值(默认:0) * max可选的、返回的最大值(默认:mt_getrandmax()) */$num=mt_rand(1000, 9999);/* * 将生成的数字存到session里面,便于之后对验证码进行验证 * * */session_start();$_SESSION['vercode']=$num;/* * bool imagestring ( resource $image , int $font , int $x , int $y , string $s , int $col ) * imagestring() 用 col 颜色将字符串 s 画到 image 所代表的图像的 x,y 坐标处(这是字符串左上角坐标,整幅图像的左上角为 0,0)。如果 font 是 1,2,3,4 或 5,则使用内置字体。 *///这个才是最重要的方法imagestring($image,100,30,3,$num,$white);//显示图片的时候要声明头信息header("Content-type:image/png");//在使用这个方法之前,一定要先设置头信息,否则不会正常的显示图片 imagepng($image);//释放资源,销毁执行对象,适时的释放资源会减轻对服务器请求的压力。 imagedestroy($image);?>图简单的话前端可以直接在html页面用img标签引入,src路径指向上面的php文件就可以了。
举个小例子:<img src="api/verifyCode.php" alt="验证码" />,src路径自己改啊!!!
因为本人不是专业的php开发,如果有大神看到了,有更好的办法,请指点一下,菜鸡的我谢过!
阅读全文
0 0
- PHP生成一个简单的验证码图片
- 一个简单的PHP生成验证码
- 一个简单的php图片验证码
- 简单的php代码生成验证图片
- PHP 生成随机的验证码图片
- 简单的验证码图片生成
- 生成简单的php验证码
- 简单的php验证码生成
- php 简易的一个 验证码 生成
- PHP简单的图片验证码
- 一个简单的验证码生成程序
- 一个简单的验证码生成方法
- php生成图片验证码
- php生成图片验证码
- php生成验证码图片
- PHP生成图片验证码
- php生成图片验证码
- php生成图片验证码
- 使用mysql 自带的语句构建批量更新
- Delphi XE MD5加密
- kattis Grid MST (最小曼哈顿生成树)
- 20171020测试
- 单点登录之,客户端
- PHP生成一个简单的验证码图片
- Java NIO核心组成部分
- Hadoop中的Python框架的使用指南
- 内存泄露检测方法
- 1109. Group Photo (25)
- 使用 Skeleton Screen 提升用户感知体验
- thinkphp5整合phpexcel 数据导入导出操作
- 不写代码怎么做好爬虫抓取?
- C#中ListView添加标题,行,及获取选中的行中内容