一,主页 index.php  

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head>
<body>
<script type="text/javascript">
function refresh() {
document.getElementById("codeP").src = "picture.php?tm="+Math.random();
}
</script>
<form action="check.php" method="post">
<div>
<img id="codeP" src="picture.php" onclick="refresh()"/>
<input id="codeT" type="text" name="codeT" />
</div>
</form>
</body>
</html>
 
二,生成验证码 picture.php
<?php
header("Cache-Control: no-cache, must-revalidate");
// 声明图像大小
$img_height=70;
$img_width=25;
$authnum='';
// 验证码内容
$ychar="0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z";
$list=explode(",",$ychar);
for($i=0;$i<4;$i++){
$randnum=rand(0,35);
$authnum.=$list[$randnum];
}
// session有效
session_start();
// 将每次生成的验证码保存在session中
$_SESSION["sessionCode"] = $authnum;
// 生成一个基本大小图像
$aimg = imagecreate($img_height,$img_width);
// 图像填充颜色
imagecolorallocate($aimg, 255,255,255);
$black = imagecolorallocate($aimg, 0,0,0);
 
for ($i=1; $i<=100; $i++) { imagestring($aimg,1,mt_rand(1,$img_height),mt_rand(1,$img_width),"@",imagecolorallocate($aimg,mt_rand(200,255),mt_rand(200,255),mt_rand(200,255)));
}
 
//为了区别于背景,这里的颜色不超过200,上面的不小于200
for ($i=0;$i<strlen($authnum);$i++){
imagestring($aimg, mt_rand(3,5),$i*$img_height/4+mt_rand(2,7),mt_rand(1,$img_width/2-2), $authnum[$i],imagecolorallocate($aimg,mt_rand(0,100),mt_rand(0,150),mt_rand(0,200)));
}
imagerectangle($aimg,0,0,$img_height-1,$img_width-1,$black);//画一个矩形
Header("Content-type: image/PNG");
ImagePNG($aimg); //生成png格式
ImageDestroy($aimg);
?>
 
三,接收测试 验证码 check.php
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head>
<body>
<?php
session_start();
$codeT = $_POST['codeT'];
$codeP = $_SESSION["sessionCode"];
echo '输入:'.$codeT.'<br>';
echo '验证码'.$codeP.'<br>';
if ($codeT==$codeP) {
echo '正确<br>';
} else {
echo '错误';
}?>
</body>
</html>

最新文章

  1. java web(六)多个请求对应一个Servlet
  2. IOS Orientation, 想怎么转就怎么转~~~
  3. Android ViewPager自动播放
  4. ios页面间传递参数四种方式
  5. C++中不可重载的5个运算符
  6. sql语句如何获得当前日期
  7. 三星原厂就K9K8G08U0D升级为K9K8G08U0E的回信
  8. linshi_temp_erweima_html_backup
  9. 4、mybatis动态sql+struts2(通配符+全局配置+分页)
  10. Saving James Bond(dijk)
  11. unittest中的测试固件
  12. webService-cxf框架的使用
  13. 使用phpmyadmin创建数据库
  14. 『TensorFlow』SSD源码学习_其一:论文及开源项目文档介绍
  15. java修饰符用法
  16. Hanlp分词实例:Java实现TFIDF算法
  17. UVa 10766 Organising the Organisation(矩阵树定理)
  18. HttpURLConnection解析
  19. DockerCon2017前瞻 - Docker企业版体验
  20. docker stack 部署容器监控方案(cAdvisor、Prometheus、Grafana)

热门文章

  1. redis学习笔记-04:redis五大数据结构类型
  2. lnmp1.5安装swoole
  3. List循环添加数据覆盖问题
  4. 吴裕雄--天生自然JAVAIO操作学习笔记:IO操作实例、Scanner、数据操作流与合并流
  5. 吴裕雄 Bootstrap 前端框架开发——Bootstrap 辅助类:关闭图标
  6. python操作mongoDB(pymongo的使用)
  7. Day6 - E - Brownie Points II POJ - 2464
  8. hadoop安装文档
  9. C++远征--jame_yuan(慕课网)
  10. Spring 配置Beans