热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

php随机码图片的生成与验证(js随机生成验证码图片)

本文目录一览:1、php用GD库怎么随机产生彩色字母加数字的验证码

本文目录一览:


  • 1、php用GD库怎么随机产生彩色字母加数字的验证码


  • 2、怎么用php生成图像,生成验证码


  • 3、php怎么实现验证码的


  • 4、PHP滑动拼图验证码的图片是怎样生成的


  • 5、求助!!在php中想实现图片验证码的效果

php用GD库怎么随机产生彩色字母加数字的验证码

这个问题比较简单,只讲下原理,代码如果你要的话我发给你,或者自己网上搜索下。

原理:

1、创建0-9a-zA-Z字符串

2、创建GD画布,选择相应的颜色

3、用for循环产生制定长度的【验证码】元素(使用随机数函数来获取不同的字符)

4、以验证码元素为内容创建图像

5,如果需要对每个字符设置不同的颜色,只需要对每个字符单独设置一个前景色即可

怎么用php生成图像,生成验证码

?php

//验证码类

class ValidateCode {

 private $charset = 'abcdefghkmnprstuvwxyzABCDEFGHKMNPRSTUVWXYZ23456789';//随机因子

 private $code;//验证码

 private $codelen = 4;//验证码长度

 private $width = 90;//宽度

 private $height = 40;//高度

 private $img;//图形资源句柄

 private $font;//指定的字体

 private $fontsize = 20;//指定字体大小

 private $fontcolor;//指定字体颜色

 //构造方法初始化

 public function __construct() {

  $this-font = dirname(__FILE__).'/font/elephant.ttf';//注意字体路径要写对,否则显示不了图片

 }

 //生成随机码

 private function createCode() {

  $_len = strlen($this-charset)-1;

  for ($i=0;$i$this-codelen;$i++) {

   $this-code .= $this-charset[mt_rand(0,$_len)];

  }

 }

 //生成背景

 private function createBg() {

  $this-img = imagecreatetruecolor($this-width, $this-height);

  $color = imagecolorallocate($this-img, mt_rand(157,255), mt_rand(157,255), mt_rand(157,255));

  imagefilledrectangle($this-img,0,$this-height,$this-width,0,$color);

 }

 //生成文字

 private function createFont() {

  $_x = $this-width / $this-codelen;

  for ($i=0;$i$this-codelen;$i++) {

   $this-fontcolor = imagecolorallocate($this-img,mt_rand(0,156),mt_rand(0,156),mt_rand(0,156));

   imagettftext($this-img,$this-fontsize,mt_rand(-30,30),$_x*$i+mt_rand(1,5),$this-height / 1.4,$this-fontcolor,$this-font,$this-code[$i]);

  }

 }

 //生成线条、雪花

 private function createLine() {

  //线条

  for ($i=0;$i6;$i++) {

   $color = imagecolorallocate($this-img,mt_rand(0,156),mt_rand(0,156),mt_rand(0,156));

   imageline($this-img,mt_rand(0,$this-width),mt_rand(0,$this-height),mt_rand(0,$this-width),mt_rand(0,$this-height),$color);

  }

  //雪花

  for ($i=0;$i100;$i++) {

   $color = imagecolorallocate($this-img,mt_rand(200,255),mt_rand(200,255),mt_rand(200,255));

   imagestring($this-img,mt_rand(1,5),mt_rand(0,$this-width),mt_rand(0,$this-height),'*',$color);

  }

 }

 //输出

 private function outPut() {

  header('Content-type:image/png');

  imagepng($this-img);

  imagedestroy($this-img);

 }

 //对外生成

 public function doimg() {

  $this-createBg();

  $this-createCode();

  $this-createLine();

  $this-createFont();

  $this-outPut();

 }

 //获取验证码

 public function getCode() {

  return strtolower($this-code);

 }

}

php怎么实现验证码的

验证码功能机制实现思路

常规的验证码实现:

a、产生一张png的图片

b、为图片设置背景色

c、设置字体颜色和样式

d、产生4位数的随机的验证码

e、把产生的每个字符调整旋转角度和位置画到png图片上

f、加入噪点和干扰线防止注册机器分析原图片来恶意注册

g、输出图片

h、释放图片所占内存

i、将验证码保存到session或是数据库

j、将和输入的验证码进行对比

短信(邮箱)验证码机制:

a、产生4-6位数的随机的验证码

b、把产生的每个字符保存到session或是数据库

c、将验证码发送到用户的手机(邮箱)

d、用户在规定时间内进行输入

e、将验证码从session或是数据库中取出

f、将和输入的验证码进行对比验证

PHP滑动拼图验证码的图片是怎样生成的

1 如果放在项目中用,验证码图片希望可以是接口返回。ImageView以及其子类支持花式加载图片。

2 继承自ImageView,绘制图片本身不用我们干预,也不用我们操心scaleType,节省很多工作。

* 在onSizeChanged()方法中生成 和 控件宽高相关的属性值:

1 初始化时随机生成验证码区域起点

2 生成验证码区域Path

3 生成滑块Bitmap

* onDraw()时,依次绘制:

1 验证码阴影

2 滑块

求助!!在php中想实现图片验证码的效果

1.rand一个数串。

2.存入COOKIE中或session中。

3.将数用gd库方法生成图片。

4.用户输入后与COOKIE或session对比。

done


推荐阅读
author-avatar
心若繁花花满地
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有