php生成动态的验证码,是php防止恶意登陆或者注册等常规手段-废话不多说,直接看例子。(只是一个简单的应用,如果要安全或者更复杂的,请期待我以后的文章)

PHP生成验证码核心文件 (checks.php):

<?php/*成生随机的验证码。此实例只是一个简单的例子,如果不想被人识别,还可以加噪点等干扰技术*/session_start(); //启动sessionheader("Content-type:image/x-png"); //设置创建图像的格式$image_width = 70;  //设置图像的宽度$image_height = 18;  //设置图像的高度srand(microtime()*100000);  //设置随机数的种子。 --这里关于srand和microtime函数请自行查阅php手册for($i=0; $i<4; $i++)    //循环输出一个4位数的随机数
    {$new_number.=dechex(rand(0,15)); //将十进制随机数转为十六进制
    }/*将获取的随机数验证码写入到Session变量中  --这里注意php的变量作用范围,和别的高级语言可能有些不同,所以要理解,自己去查手册*/$_SESSION['check_checks'] = $new_number;$num_image = imagecreate($image_width,$image_height);  //创建一个画布imagecolorallocate($num_image,255,255,255);  //设置画布的颜色for($i=0; $i<strlen($_SESSION['check_checks']); $i++)  //循环读取session变量中的验证码
    {$font = mt_rand(3,5); //设置随机的字体大小$x = mt_rand(1,8)+$image_width*$i/4;  //设置随机字符所在的位置的X坐标$y = mt_rand(1,$image_height/4);  //设置随机字符所在的位置的Y坐标//设置字符的颜色$color = imagecolorallocate($num_image,mt_rand(0,100),mt_rand(0,150),mt_rand(0,200));//水平画出一行字符串 --输出字符,此函数自行查阅php手册。要GD2库支持imagestring($num_image,$font,$x,$y,$_SESSION['check_checks'][$i],$color);}imagepng($num_image); //生成png格式的图像imagedestroy($num_image);  //结束图像,释放资源
?>

View Code

PHP页面验证文件,判断是否和生成的验证码相同 (login.php):

<?phpheader("Content-type:text/html;charset=utf-8");session_start();  //初始化sessionif($_POST['checks'] != "")  //判断是否请求过来的为空
    {//如果不为空进行一个正则的替换,替换掉所有的空格 preg_replace()函数中用''而不是""来表示$checks = preg_replace('/[\s| ]/','',$_POST['checks']);echo "<script type='text/javascript'>prompt('这是您输入的验证码:','$checks');</script>";if($checks == ""){echo "<script type='text/javascript'>alert('验证码不能为空');window.location.href='index.php';</script>";    }//如果用户输入验证码的值与随机生成的验证码的值相等,则弹出登录成功提示if($checks == $_SESSION['check_checks']){echo "<script type='text/javascript'>alert('用户登录成功');window.location.href='index.php';</script>";    }else{echo "<script type='text/javascript'>alert('您输入的验证码不正确!');window.location.href='index.php';</script>";    }}else{echo "<script type='text/javascript'>alert('您没有输入验证码!');window.location.href='index.php';</script>";    }
?>

View Code

页面呈现登陆文件 (index.html或者index.php):

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
<script type="text/javascript">//封装javascript的trim去掉字符串空格功能。function trim(strToTrim){//用正则来返回替换后的字符。--功能,去掉所有的空格!包括换行符等。 关于正则知识,请自行查阅资料return strToTrim.replace(/(\s+)/g,"");}function yz(){//先用js检测是否已经输入验证码,减少服务器压力,当然服务器那边也是要验证的if(trim(form1.checks.value) == ""){alert("对不起!你没有输入验证码!");return false; //返回flase不提交
        }return true;}
</script>
</head><body><div id="main"><form action="login.php" method="post" name="form1"><label>验证码:</label><input type="text" name="checks" /><img src="checks.php" title="验证码" alt="验证码显示错误" /><br /><input type="submit" value="提交验证" onclick="return yz();" /></form></div>
</body>
</html>

View Code

转载于:https://www.cnblogs.com/clouds008/archive/2013/06/11/3131970.html

PHP图形图像的典型应用 --常用图像的应用(验证码)相关推荐

  1. PHP图形图像的典型应用 --常用图像的应用(统计图)

    基于GD库和JPgraph库 说明:对于具体的Jpgraph类库的用法,请参照官网的文档:http://jpgraph.net/download/manuals/classref/index.html ...

  2. matlab差分算子的灰度图像边缘检测,常用图像边缘检测方法及MATLAB研究

    论文 2 1年 2月 I 01 5日 现代电子技术 M o e n El c r i sT e h qu d r e ton c c ni e 第3 4卷第 4期 Fe .2 11 b 0 Vo1 3 ...

  3. 计算机常用图像文件格式,常用的图像文件格式

    常用的图像文件格式介绍 常用的图像文件格式 图像的文件格式决定了图像数据的存储内容和存储方式,以及文件是否与一些应用程序兼容,另外还涉及到如何与其他程序交换数据等.我们现在来列举一些常用的图像文件格式 ...

  4. 常用图像卷积核类型小结

    目录 低通滤波器: 均值滤波 高斯滤波 高通滤波器: 锐化卷积核 一阶微分算子 Prewitt算子 Sobel算子 二阶微分算子 Laplace算子 对比: LoG算子 基本理论 DoG算子 基本理论 ...

  5. 图形和图像计算机基础知识,计算机图形图像基础

    <计算机图形图像基础>是2011-03-01浙江大学出版社出版的图书,作者是程辉,田少煦.[1] 书    名 计算机图形图像基础 作    者 程辉,田少煦ISBN 9787308083 ...

  6. CV之NS之ME/LF:图像风格迁移中常用的模型评估指标/损失函数(内容损失、风格损失)简介、使用方法之详细攻略

    CV之NS之ME/LF:图像风格迁移中常用的模型评估指标/损失函数(内容损失.风格损失)简介.使用方法之详细攻略 目录 图像风格迁移中常用的几种损失函数 1.内容损失 2.风格损失 3.定义总损失 图 ...

  7. matlab的边缘检测方法,常用图像边缘检测方法及Matlab研究

    2011 年 2 月 15 日第 34 卷第 4 期 现代电子技术 Modern Electronics Technique Feb. 2011 Vol. 34 No. 4 常用图像边缘检测方法及 M ...

  8. matlab 图像白平衡算法,Matlab常用白平衡算法

    <Matlab常用白平衡算法>由会员分享,可在线阅读,更多相关<Matlab常用白平衡算法(21页珍藏版)>请在人人文库网上搜索. 1.1 灰色世界法灰色世界法(grey wo ...

  9. 常用图像数据集:标注、检索

    http://www.csdn123.com/html/blogs/20131023/87499.htm 常用图像数据集:标注.检索 返回脚本百事通 1.搜狗实验室数据集: http://www.so ...

最新文章

  1. 智能车竞赛开启了新的一个周期,让我聚焦十六届赛题吧
  2. 【OpenGL】六、Visual Studio 2019 配置 GitHub ( 提取和拉取简介 | 拉取远程代码 )
  3. 同步通信和异步通信区别
  4. python double语法_python上手--基本语法和数据类型基础
  5. mysql分区功能详细介绍,以及实例
  6. mac+php版本切换+cli,Mac环境下php版本切换
  7. RAC RMAN备份
  8. performSelector:withObject:afterDelay: 精要概览(持续更新)
  9. linux不同内核驱动移植问题,基于tiny4412的Linux内核移植 -- MMA7660驱动移植(九-2)...
  10. DVWA系列之10 命令执行漏洞的挖掘与防御
  11. 在 Hibernate 中出现 database product name cannot be null 时怎么解决?
  12. 18. MySQL 命令
  13. C++--第18课 - 继承与多态 - 下
  14. Jmeter学习之旅(四)——各类型的HTTP接口功能测试
  15. QT发布windows程序
  16. 应急卫星通信系统项目建设要求
  17. 手把手教你学DSP(TMS320X281X) 2020-11-30
  18. 考勤打卡记录数据库表结构_中控zktime5.0考勤管理系统数据库表结构
  19. 工具类-BasePopupWindow
  20. java泛型的上界下界

热门文章

  1. MySql修改数据库编码为UTF8
  2. python 判断字符串时是否是json格式方法
  3. Powershell命令中的 CommonParameters是指什么
  4. bootstrap-表单控件——单选按钮水平排列
  5. 解决将Ubuntu下导出的requirements.txt到Centos服务器上面出现pkg-resource的版本为0.0.0...
  6. python的正则表达式 re
  7. Lodash 中文文档 (v3.10.1) - “Number” 方法
  8. VMware 怎么进入BIOS
  9. 获取系统时间出错oracle-,oracle 获取系统时间(转)
  10. selenium 鼠标悬浮_处理Selenium3+python3定位鼠标悬停才显示的元素