1、创建一个code.php文件,来生成随机验证码图片 1 <?php
 2 /**
 3  * Created by PhpStorm.
 4  * User: ping
 5  * Date: 2018/9/19
 6  * Time: 9:44
 7  */
 8 session_start();//开启session
 9 //定义要创建图片的类型为png
10 header ('Content-Type: image/png');
11 //创建一个真彩色图像
12 $image=imagecreatetruecolor(100, 30);
13 //定义图片的颜色
14 $color=imagecolorallocate($image, 255, 255, 255);
15 //填充画布颜色
16 imagefill($image, 20, 20, $color);
17 $code='';
18 //生成随机4个数
19  for($i=0;$i<4;$i++){
20      $fontSize=8;
21      $x=rand(5,10)+$i*100/4;//生成横坐标位置,防止横向不重叠
22      $y=rand(5, 15);
23      $data='abcdefghijklmnopqrstuvwxyz123456789';//定义字符串
24      $string=substr($data,rand(0, strlen($data)),1);//使用substr随机截取一个字符
25     $code.=$string;//将截取出来的字符拼接成字符串
26      $color=imagecolorallocate($image,rand(0,120), rand(0,120), rand(0,120));//产生一个随机色
27      imagestring($image, $fontSize, $x, $y, $string, $color);//将字符放到画布上
28  }
29
30  $_SESSION['code']=$code;//将随机产生的字符串存储在session里
31 setcookie(session_name(),session_id(),time()+3600,"/");//设置session的过期时间和路径
32 //生成200个点
33  for($i=0;$i<200;$i++){
34         $pointColor=imagecolorallocate($image, rand(100, 255), rand(100, 255), rand(100, 255));//生成一个随机色,作为点的颜色
35         imagesetpixel($image, rand(0, 100), rand(0, 30), $pointColor);//将点放到画布
36  }
37  //生成横线
38  for($i=0;$i<2;$i++){
39         $linePoint=imagecolorallocate($image, rand(150, 255), rand(150, 255), rand(150, 255));//生成随机色,作为横线的颜色
40     imageline($image, rand(10, 50), rand(10, 20), rand(80,90), rand(15, 25), $linePoint);
41  }
42  imagepng($image); //在浏览器上显示图片
43   imagedestroy($image);//销毁图片
44 ?>

2、login.php登录界面引入生成的随机验证码图片

 1 <?php
 2 /**
 3  * Created by PhpStorm.
 4  * User: ping
 5  * Date: 2018/9/17
 6  * Time: 14:10
 7  */
 8 include "header.php";
 9 ?>
10 <!doctype html>
11 <html lang="en">
12 <head>
13     <meta charset="UTF-8">
14     <meta name="viewport"
15           content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
16     <meta http-equiv="X-UA-Compatible" content="ie=edge">
17     <title>Document</title>
18     <script src="../public/lib/jQuery/jquery-3.3.1.js"></script>
19 </head>
20 <body>
21 <!--action="../controller/handel.php"将登录界面传送到后台handel.php验证-->
22 <form action="../controller/handel.php" method="post">
23 <!--    传入一个隐藏的输入框,用于提交到后台,验证是哪个页面传来的值-->
24     <input type="hidden" value="login" name="methods">
25     <lable>用户名:</lable><input type="text" name="username"><br>
26     <lable>密 码:</lable><input type="password" name="pwd"><br>
27     验证吗:<input type="text" name="code" >
28 <!--            以插入图片的形式引入code.php-->
29     <img src="code.php" alt="" id="inputcode">
30     <span>点击图片刷新</span><br>
31     <input type="submit" value="登录">
32 </form>
33 <script>
34     //点击图片重新加载一个验证码图片
35     $("#inputcode").click(function () {
36        $(this).attr("src","captcha.php");
37     })
38 </script>
39 </body>
40
41 </html>

3.在Handel.php里面接收登录界面传来的值进行验证

<?php
if ($route == "login"){$code = $_POST["code"];//接收login.php传过来的用户输入的代码if ($code == $_SESSION['code']){//判断session里存的code和用户输入的code是否一致echo "<script>window.location='../view/login.php';alert('验证码验证成功,请重新输入!!')</script>";}else{echo "<script>window.location='../view/login.php';alert('验证码不正确,请重新输入!!')</script>";}}
?>

转载于:https://www.cnblogs.com/chip-gan/p/9676476.html

php生成随机验证码相关推荐

  1. python编程实战(二):一文教你生成随机验证码!大小写字母与数字组合,位数可以控制

    随机验证码的生成 前言 正文 实现 代码 效果 前言 验证码验证,是常见的安全验证的一种方式,可以用来杜绝脚本和机器人操作等等: 除了本文介绍的简单的验证码之外,还有拼图验证.文字顺序验证等常见的验证 ...

  2. python随机生成验证码_Python生成随机验证码

    #生成随机验证码 from PIL importImagefrom io importBytesIOfrom PIL importImageDraw,ImageFontdefcheck_code(re ...

  3. 大乐透python预测程序_Python生成随机验证码,大乐透号码

    随机生成验证码 示例代码: import random # 导入标准模块中的random if __name__ == '__main__': check_code = "" # ...

  4. struts2生成随机验证码图片

    之前想做一个随机验证码的功能,自己也搜索了一下别人写的代码,然后自己重新用struts2实现了一下,现在将我自己实现代码贴出来!大家有什么意见都可以指出来! 首先是生成随机验证码图片的action: ...

  5. React tsx 生成随机验证码

    React tsx 生成随机验证码 最近开发React 使用tsx编写,没有找到什么好的随机生成验证码的插件,自己就手撸了一个,废话不多话,直接上代码. tsx文件如下: React代码片. impo ...

  6. JavaScript 生成随机验证码

    JavaScript 生成随机验证码 文章目录 JavaScript 生成随机验证码 Math对象下 random方法

  7. mysql生成随机验证码_MySQL 生成随机数字、字符串、日期、验证码及 UUID的方法...

    上一篇介绍了如何在 Oracle 生成随机数字.字符串.日期.验证码以及 UUID,今天我们继续讨论在 MySQL 中生成各种随机数据的方法.

  8. java 验证码_如何使用Java生成随机验证码

    我们想想,如何用Java绘制图片呢? 第一步 寻找☞ 纸画画要纸的 第二步 寻找笔 画画当然也要笔 在开始之前,我们需要用到几个主要的类 BufferedImage 用来缓寸你画的东西 Random ...

  9. 在JSP中动态生成随机验证码,登录时后台校验验证码,以及如何避免同一个验证码被重复提交爆破密码...

    只需几步就可以生成动态随机的验证码,最终效果如下图: 一 前台显示页面login.jsp 其中验证码显示的是一张图片,链接指向的是生成验证码的servlet,同时点击图片后触发changeImg()这 ...

最新文章

  1. sublime 设置自动更新_不止是自动更新!简单几步让Windows 10变听话的孩子
  2. 如何选择汽车LiDAR的激光器和光电探测器
  3. 05-CA/TA编程:hmac demo
  4. linux下安装虚拟天文馆,如何在Ubuntu 20.04、18.04中安装Stellarium 0.20.0虚拟天文馆
  5. 网络规划设计师考试说明
  6. 多媒体融合通信平台促进公网和专网的互联互通
  7. firefox flash插件_巧用firefox下载视频资源
  8. 使用SQL SSIS和BIML自动化Salesforce数据复制
  9. 转:Real6410 Linux 常见问题总结(截至2010/07/26)
  10. 杭电1716排列2 stl
  11. 笔记之配置 solr和zookeeper遇到的问题
  12. SVD奇异值分解(PCA,LSI)
  13. object references an unsaved transient instance - save the transient instance before flushing
  14. java发布rest服务器_ArcGIS Server 10 Java 版的Rest服务的部署方法
  15. Matlab重建信号实验总结,实验三信号采样与重建(实验报告).doc
  16. HDU2050 由直线分割平面推广到折线分割平面
  17. 杭州·云栖 2050 大会日程(5.25-5.27)
  18. 机械--NX2007(UG)有限元分析教程1--简单物体
  19. SmartPhone和PPC手机的区别
  20. B2C电子商务开发的网店管理系统

热门文章

  1. ftp搜索文件_Windows10下搭建FTP服务器详解(多图预警)
  2. urlconnection java_Java 网络编程:必知必会的 URL 和 URLConnection
  3. [10] ADB 修改设置
  4. vue 小地图放大缩小_实景3D卫星地图
  5. Spring Boot文档阅读笔记-使用Spring Data JPA连接多源数据库(MySQL和Oracle)
  6. Java笔记-多线程协调及ReentrantLock的使用
  7. Java工作笔记-使用Maven创建多模块项目
  8. Java笔记-使用RabbitMQ的Java接口实现round-robin(轮询分发)
  9. Qt文档阅读笔记-Qt4 Lower-Level API扩展Qt Applications(Qt4中Plugin的使用)解析与实例
  10. html调用xfplugin,使用多设备执行脚本的时候,html report功能无法正常使用