验证码就是一张图片,用到几个关键字:

 1 <?php
 2
 3 session_start();
 4 $arr = array(
 5     'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x',
 6     'y','z','0','1','2','3','4','5','6','7','8','9'
 7 );
 8 $rand = "";
 9 for($i=1;$i<=4; $i++){
10     $rand .= $arr[rand(0,count($arr)-1)];
11 }
12 $_SESSION['check_pic'] = $rand;
13 //生成图片
14 $im = imagecreatetruecolor(100,30);
15
16 //生成颜色,当第一次调用生成颜色的方法,是生成背景颜色(三原色)
17 $bg = imagecolorallocate($im,0,0,0);
18
19 //第二次调用这个方法,是可以生成图片上面的文字或其他样式的颜色(三原色)
20 $te = imagecolorallocate($im,255,255,255);
21
22 //在图片上面生成文字
23 //rand(1,5):随机5种字体1-5
24 //rand(3,70):随机文字出现的X轴坐标
25 //rand(3,15):随机文字出现的Y轴坐标
26 //$rand:随机出现的字
27 //$te:采用字体颜色
28 imagestring($im,rand(1,5),rand(3,70),rand(3,15),$rand,$te);
29
30 //要把php当成图片输出,必须给文件一个头申明,jpeg
31 header("Content-type:image/jpeg");
32
33 //最终生成图片
34 imagejpeg($im);
35
36 ?>

通常,验证码是需要验证的:

<html>
<head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/>
</head>
<body><?php
session_start();
if(isset($_POST['check'])){if($_POST['check'] == $_SESSION['check_pic']){echo "验证成功";}else{echo "验证失败";}
}
?><form action="check2.php" method="post"><input type="text" name="check"/><img src="check1.php" alt="" οnclick="refreshImg()" id="chk" style="cursor: pointer"/><br/><input type="submit" value="提交"/>
</form>
<script>
function refreshImg(){
//    声明一个rand,是为了防止除谷歌以外的不兼容刷新问题var rand = Math.round(Math.random()*10000);var chk = document.getElementById("chk");chk.src = "check1.php?num="+rand;
}
</script>
</body>
</html>

随机一个有数字和字母的字符串:

 1 $Arr = array(
 2 'q','w','e','r','t','y','u','i','o','p','a','s','d','f','g','h','j','k','l','z','x','c','v','b','n','m',
 3 '1','2','3','4','5','6','7','8','9','0'
 4 );
 5 $rand="";
 6
 7 for($i=1;$i<=4;$i++){
 8 $rand.= $Arr[rand(0,count($Arr)-1)];
 9 }
10 echo $rand;

转载于:https://www.cnblogs.com/a-moemiss/p/3726838.html

About_PHP_验证码的生成相关推荐

  1. 验证码画布生成以及点击图片切换验证码

    //这个验证码画布生成是师兄写的,不是本人写的 1 package com.didinx.common; 2 3 import javax.imageio.ImageIO; 4 import java ...

  2. java 生成校验验证码_java生成验证码并进行验证

    一实现思路使用BufferedImage用于在内存中存储生成的验证码图片使用Graphics来进行验证码图片的绘制,并将绘制在图片上的验证码存放到session中用于后续验证 最后通过ImageIO将 ...

  3. html获取随机字母,JavaScript实现4位随机验证码的生成

    这篇文章主要为大家详细介绍了JavaScript实现4位随机验证码的生成,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 本文实例为大家分享了JavaScript生成4位 ...

  4. 随机验证码的生成(手机或者邮箱验证码)

    最近在做短信验证和邮箱验证,就写了个随机验证码的工具类 public class Randomutil { private Randomutil() { } // 获取6位随机验证码 public s ...

  5. JAVA手机验证码的生成简单实现

    public String generator(String tele){//利用哈希值生成验证码int hash =tele.hashCode();//加密int encryption= 20206 ...

  6. SpringBoot2后端项目-验证码图片生成

    目录 1.项目创建 1.1 初始化的 pom.xml文件 1.2 应用初始化设置 2.验证码生成前的准备 2.1 分析 2.2 整合 redis 2.3 验证码生成的工具类 2.4 定义一个统一返回给 ...

  7. 二维码及验证码的生成

    二维码生成: public static void main(String[] args) {String message = "http://doc.canglaoshi.org" ...

  8. 验证码的生成及简单效果展示(Java篇)

    验证码的生成及简单效果展示 前言 一.验证码的生成 1,验证码生成的原理 2,验证码生成步骤 3,代码演示 二.验证码效果演示 1,前端代码展示 2,效果展示 总结 前言 提示:本文设计语言实现Jav ...

  9. 从零开始的Django框架入门到实战教程(内含实战实例) - 08 用户界面(内含图形验证码的生成和校验详解)(学习笔记)

    目录 0. 既有工作 1. 生成图片 2. 校验 3. 结果展示   Django是目前比较火爆的框架,之前有在知乎刷到,很多毕业生进入大厂实习后因为不会git和Django框架3天就被踢掉了,因为他 ...

最新文章

  1. 传蔚来计划回国内科创板上市,关闭硅谷办公室
  2. 覆盖与重载与隐藏——SAP电面(3)
  3. 数据流中的中位数,我轻敌了
  4. 15.5 匿名内部类
  5. html单张图片效果,jquery+html5实现单张图片上传预览
  6. __str__是什么函数_PHP str_shuffle()函数与示例
  7. 准确率(Accuracy) | 查准率(Precision) | 查全率(Recall)
  8. ---转载---phython资料
  9. Ue4升级chrome内核
  10. 山上有一口缸可以装50升水,现在有15升水。老和尚叫小和尚下山挑水,每次可以挑5升。问:小和尚要挑几次水才可以把水缸挑满?通过编程解决这个问题。
  11. com词根词缀_(完整版)词根词缀记忆大全---经典详细的总结
  12. 【CCNA3】思科基本命令汇总+网线线序
  13. 2016年虾神公众号预告
  14. java实现wife链接硬件_【技术分享】在Android 910上面实现WIFI功能
  15. 一代少年黑客菜霸的传奇,曾调戏天涯吊打腾讯
  16. 周鸿祎给360员工的一份信:不做打工者
  17. Python入门第7课——tuple变量(只读课堂)
  18. 2020身高体重标准表儿童_儿童身高体重对照表下载-2020儿童身高体重标准表最新版高清版 - 极光下载站...
  19. 字蛛压缩ttf字体(前端常用)
  20. 2022秋 | PTA编程训练(二)

热门文章

  1. 作为一个新手程序员该如何成长?
  2. 用node.js给图片加水印
  3. 【ANDROID游戏开发之六】在SURFACEVIEW中添加系统控件,并且相互交互数据!
  4. 分享:TreeFrog 1.1 发布,C++ Web 应用开发框架
  5. mysql 表名通配符导出,mysqldump只有某些前缀/ Mysqldump通配符的表?
  6. ansible 容器部署_如何使用Ansible Container管理Linux容器
  7. 云中数据_简化云中的应用程序开发
  8. docker云计算_为什么Docker成为虚拟化和云计算的新热潮?
  9. jggrid使用multiselect时修改默认排序
  10. Python笔记(5) 变量类型