最近正在学习php入门,现在刚入门,所以许多都不知道,就从最基础的学起,不会的上网查,然后把它记在这个法宝内,就如今天遇到随即函数rand();脑海中想到用它做点啥好呢,最后想起了验证码,数字验证码,字母验证码,中文验证码,可是自己不会呀,咋办呢,上网搜,看别人的代码,开不懂,看视频,听老师讲,将其中所遇到的函数,值得注意的地方都拿笔记下,平常看到一般网页上的随机验证码都是以一定的方框包围起来,貌似就是以图片为背景的。
经过边看,自己边敲,虽然遇到很多不会的问题,但是我相信只要自己脚踏实地,一定学会的。现在想做一下总结,自己可能写的很乱,可我相信有一天会实现的。
1.产生数字的随机数 ——》创建图片——》随机数写进图片——》在图片加入干扰值(点,线)——》保持在session中——》在form表单中引用;
随机函数:rand(int min,int max);万变不离其宗,我看了网上许多中生成随机数的代码,有数字和字母随机数,中文随机数(数组)等等;都离不开rand();
代码如下(有的上网copy,希望各位不要见怪啊第一种:
 $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];//以数组的形式输出

第二种:
 private function createCheckCode(){ for(i=0;i<this->codeNum;i++){ number = rand(0,2);switch(number){ case 0: rand_number = rand(48,57); break;//数字case 1: rand_number = rand(65,90);break;//大写字母case 2: rand_number = rand(97,122);break;//小写字母
    } $asc = sprintf("%c",rand_number);$asc_number = asc_number.asc; } return asc_number; }

第三种:

srand(microtime()*100000);//相当于计时器
$string="abcdefghigklmnopqrstuvwxyz123456789";
for($i=0;$i<4;$i++)
{
$new_number.=$string[rand(0,strlen($string)-1)];//随即的产生一个数组}

第四种:
for($i=0;$i<4;$i++) {
$rand.=dechex(rand(1,15));//将十进制转化为十六进制
}

GD库:(提供了一系列图片处理函数的IPI,生成图片处理图片)
启用php中GD库:php.ini配置文件中,去掉";extension=php_gd2.dll"中“;”;
部分GD库函数的介绍:1.imagecreatetruecolor(int x_size,int  Y_size) 新建真彩色图像
2.imagecolorallocate(resource image,int red,int green,int blue) 为一幅图像分配颜色,三原色
3.imagestring(resource,font,int x,int y,content,color)绘图函数4.header("Content-type:image/jpeg") 输出函数php的header是定义头的动作,php5中支持3中类型: 1,Content-type:xxxx/yyyy 2,Location:xxxx:yyyy/zzzz 3,Status:nnn xxxxxx xxxx/yyyy表示内容文件的类型 如:image/gif image/jpeg image/png imagejpeg(),imagegif(),imagepang() 5.iamgeline(resource image,int x1,int y1,int x2,int y2,int color); 画线函数,(int x,int y)起始坐标6.imagesetpixel(resource image,int x,int y,int color) 画点函数7.imagettftext(resource image,float size,float angle,int x,int y,int color,string fontfile,string text) 带字体写入函数8.iconv("gb2312","utf-8","字符串"); //首先要将文字转换成utf-8格式  php验证码插入中文的方法。
代码请看PHP验证码制作(下)

转载于:https://www.cnblogs.com/blackhorse/archive/2012/05/09/2493436.html

PHP图片验证码制作(上)相关推荐

  1. php设计验证码图片,PHP图片验证码制作实现分享(全)

    最近正在学习php入门,现在刚入门,所以许多都不知道,就从最基础的学起,不会的上网查,然后把它记在这个法宝内 就如今天遇到随即函数rand();脑海中想到用它做点啥好呢,最后想起了验证码,数字验证码, ...

  2. 图片验证码把我逼成了人工智障

    上网登录日常:请证明你不是机器人. 可一看到某些验证码,强迫症患者首先就蚌埠住了: 你说最右那俩方块我到底是选还是不选呢? 还经常会让人产生这样的思考: 红绿灯的杆子到底算不算红绿灯呢? 在终于向机器 ...

  3. 超方便的验证码套件Captcha Genie,帮你轻松在网页上制作出图片验证码!(上)

    大家都应该看过网路上有形形色色的图片验证码(Captcha),用来防止一些机器人程式恶意去网页上留言或注册,浪费系统的资源.但是如果你自己有开发网页程式,要如何在自己的网页上设计出又简单.又有效的验证 ...

  4. 超方便的验证码套件Captcha Genie,帮你轻松在网页上制作出图片验证码!(下)

    四.验证输入结果 当使用者输入了验证码之后,我们必须在网页表单送出的PHP程式中进行验证,程式的写法是: session_start();  $Code = $_REQUEST["Turin ...

  5. 前端验证码后端返回一个图片_Web后端开发(6)——简易图片验证码的制作

    大家在登录或注册某些网站的时候经常会看到一些随机的图片验证码,那么这些验证码到底是怎么制作的呢?下面我们就从最简单的制作方法中学一下验证码的制作过程. 创建图片对象 要制作图片验证码,首先要创建一个图 ...

  6. Python第三方库巧用,制作图片验证码只需三行代码

    现在验证码的种类真的是越来越多,短信验证码.语音验证码.图片验证码.滑块验证码 - 我们在 PC 的网页端或者手机上的 app 进行登录或者注册时,应该总会遇见图片验证码,比如下面这类: 上面这些图片 ...

  7. 文件上传漏洞—一句话图片马制作

    文件上传漏洞-一句话图片马制作 提要:在文件上传漏洞中,通常需要上传脚本类型的文件至服务端执行,获取WebShell,但是网站会严格过滤脚本类型的文件,这个时候便可以通过图片马来尝试突破. 简介:在图 ...

  8. 制作数据集(二)--为图片数据集打上标签并保存为txt文件

    概要 由于我自己的项目缺少合适的数据集,所以我需要自己制作数据集,即我需要自己完成从用摄像头录制视频到制作图片数据集的整个过程.上一篇博客记录了我将视频数据剪辑为图片数据的过程.这一片博客旨在记录我为 ...

  9. R语言作业:1.mpg数据的cty(城市燃油效率)和hwy(高速公路燃油效率)之间有什么关系? 请制作x轴是cty,y轴是hwy的算点图。 请把图片储存起来上传

    这是一份R语言作业: 1.mpg数据的cty(城市燃油效率)和hwy(高速公路燃油效率)之间有什么关系? 请制作x轴是cty,y轴是hwy的算点图. 请把图片储存起来上传 了解哪些公司生产的" ...

最新文章

  1. 使用jQuery的Scrollify插件实现鼠标滚轮或者手势滑动到页面下一节点部分
  2. MybatisPlus 多租户架构(Multi-tenancy)实现
  3. JAVA数组扁平化整合_JS数组扁平化(flat)方法总结详解
  4. owin 怎么部署在云中_使用Boxfuse轻松在云中运行Spring Boot应用程序
  5. vue设置isactive_vue 绑定样式的几种方式
  6. kafka专题:kafka单机和集群安装详情,Spring Boot如何整合Kafka
  7. (转) Hibernate框架基础——操纵持久化对象的方法(Session中)
  8. vue中检测敏感词,锚点
  9. Java中什么时候使用extends,什么时候使用implements?
  10. 字节码指令之控制转移指令
  11. 转载好用的小工具 【who-lock-me】
  12. 傻码农嘚瑟啥,HR才是国内公司真正的中流砥柱!
  13. java防止文件上传_文件上传漏洞:getshell的最好方式,我们如何防御?
  14. 【OpenCV 例程 300篇】221.加密马赛克图像处理与解密复原
  15. 关于阿里云与mangoDB的关系,以及uni-app基于阿里云打包H5以及app的讲解及注意事项
  16. 获得淘宝商品详情原数据接口调用展示
  17. Ubuntu20.04 ffmpeg添加 Intel核显QSV加速支持
  18. assign()函数的使用
  19. radis安装和使用
  20. Real-Time Loop Closure in 2D LIDAR SLAM 翻译和总结(一)

热门文章

  1. Sql根据不同条件统计总数
  2. Java中Xml文件的解析
  3. Java面试的基础题20190000
  4. maven 把依赖包一起打包
  5. OpenCV之感兴趣区域ROI
  6. LeetCode 之 JavaScript 解答第98题 —— 验证二叉搜索树(Validate Binary Search Tree)
  7. spring jdbcTemplate中获取jdbc Connection并执行操作
  8. Kubernetes应用跨可用区实战
  9. 《Python机器学习——预测分析核心算法》——2.2 分类问题:用声纳发现未爆炸的水雷...
  10. redis分布式客户端中间件