php结合GD库简单实现验证码的示例代码
发布:smiling 来源: PHP粉丝网 添加日期:2022-04-08 09:18:57 浏览: 评论:0
这篇文章主要介绍了php结合GD库简单实现验证码的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧。
前几日正好重温下GD库,来玩一下生成带有干扰素的验证码。
生成字母数字的图片验证码
首先需要看php.ini配置文件中有没有GD库,如果没有开启,请自行开启下,我用的小皮面板,基本现在都给你带上了。
开启GD库
需要生成4位(位数自定)验证码
- //首先生成4位验证码
- //开启session
- session_start();
- //数组集合
- $arr = array_merge(range(0,9),range('a','z'),range('A','Z'));
- //打乱数组
- shuffle($arr);
- //截取4位验证码
- $code = array_slice($arr,0,4);
- //全部转为小写
- $code = strtolower(join('',$code));
- var_dump($code);
- //将code存入session
- $_SESSION['code'] = $code;
生成4位验证码
3. 开启GD库画图
注意一下这个imagecolorallocate函数
注意
- //创建画布
- $img = imagecreate(120,30);
- //画布颜色
- $white = imagecolorallocate($img,255,255,255);
- //自定义集中颜色
- $c1 = imagecolorallocate($img,14,38,54);
- $c2 = imagecolorallocate($img,63,5,16);
- $c3 = imagecolorallocate($img,248,248,42);
- $c4 = imagecolorallocate($img,0,0,0);
- //点干扰素
- for ($i = 0;$i < 300;$i++){
- imagesetpixel($img,rand(0,120),rand(0,30),$c1);
- }
- //虚线干扰素
- for($j = 0;$j < 200;$j++){
- imagedashedline($img,rand(0,120),rand(0,30),rand(0,120),rand(0,30),$c2);
- }
- //线干扰素
- for ($j = 0;$j < 10;$j++){
- imageline($img,rand(0,120),rand(0,30),rand(0,120),rand(0,30),$c2);
- }
- //字体,这个你路径对了就OK
- $font = "simhei.ttf";
- //向图像写入文本
- imagettftext($img,18,2,40,20,$c4,$font,$code);
- //以jpg格式输出,还有以png啥的,imagepng这个自己看
- imagejpeg($img);
- //结束之后销毁,不销毁也行,php自带垃圾回收
- imagedestroy($img);
然后就生成了这个
前台的展示
- <?php
- session_start();
- print_r($_POST);
- print_r($_SESSION['code']);
- //如果提交的验证码跟session里面存的一样及认证成功
- if($_POST['n3'] == $_SESSION['code']){
- echo '注册成功';
- }else{
- echo '注册失败';
- }
- ?>
- <!doctype html>
- <html lang="en">
- <head>
- <meta charset="UTF-8">
- <meta name="viewport"
- content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
- <meta http-equiv="X-UA-Compatible" content="ie=edge">
- <title>Document</title>
- </head>
- <body>
- <form action="" method="post">
- <input type="text" name="n1" placeholder="cc">
- <input type="text" name="n2" placeholder="s">
- <input type="text" name="n3">
- <!--这里点击刷新验证码 -->
- <img src="xxx.php" onclick="this.src='index.php?'+Math.random()" alt="">
- <input type="submit" value="submit">
- </form>
- </body>
- </html>
Tags: php验证码 GD验证码
- 上一篇:基于PHP实现生成随机水印图片
- 下一篇:最后一页
相关文章
- ·php两款生成图形验证码的代码(2014-08-19)
- ·php生成验证码类代码(2014-08-19)
- ·php生成验证码实现代码(2014-08-19)
- ·php生成验证码详细教程(2014-08-19)
- ·php中文汉字验证码生成程序(2014-08-19)
- ·php 中文汉字验证码生成程序(2014-08-19)
- ·php图片验证码代码(2014-08-19)
- ·php生成图片与验证码图片生成原理(2014-08-19)
- ·php生成图形验证码(2014-08-19)
- ·php 验证码生成程序,可自动判断php gd库(2014-08-19)
- ·php 验证码图片程序(2014-08-20)
- ·php 生成验证码程序(2014-08-20)
- ·php 简单的验证码生成实例(2014-08-22)
- ·php验证码生成程序代码(2014-08-22)
- ·推荐一款php验证码程序(2014-08-23)
- ·php验证码生成与应用实例(2014-08-23)
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)