好得很程序员自学网
  • 首页
  • 后端语言
    • C#
    • PHP
    • Python
    • java
    • Golang
    • ASP.NET
  • 前端开发
    • Angular
    • react框架
    • LayUi开发
    • javascript
    • HTML与HTML5
    • CSS与CSS3
    • jQuery
    • Bootstrap
    • NodeJS
    • Vue与小程序技术
    • Photoshop
  • 数据库技术
    • MSSQL
    • MYSQL
    • Redis
    • MongoDB
    • Oracle
    • PostgreSQL
    • Sqlite
    • 数据库基础
    • 数据库排错
  • CMS系统
    • HDHCMS
    • WordPress
    • Dedecms
    • PhpCms
    • 帝国CMS
    • ThinkPHP
    • Discuz
    • ZBlog
    • ECSHOP
  • 高手进阶
    • Android技术
    • 正则表达式
    • 数据结构与算法
  • 系统运维
    • Windows
    • apache
    • 服务器排错
    • 网站安全
    • nginx
    • linux系统
    • MacOS
  • 学习教程
    • 前端脚本教程
    • HTML与CSS 教程
    • 脚本语言教程
    • 数据库教程
    • 应用系统教程
  • 新技术
  • 编程导航
    • 区块链
    • IT资讯
    • 设计灵感
    • 建站资源
    • 开发团队
    • 程序社区
    • 图标图库
    • 图形动效
    • IDE环境
    • 在线工具
    • 调试测试
    • Node开发
    • 游戏框架
    • CSS库
    • Jquery插件
    • Js插件
    • Web框架
    • 移动端框架
    • 模块管理
    • 开发社区
    • 在线课堂
    • 框架类库
    • 项目托管
    • 云服务

当前位置:首页>后端语言>PHP
<tfoot draggable='sEl'></tfoot>

php图形校验 php绘制图形函数

很多站长朋友们都不太清楚php图形校验,今天小编就来给大家整理php图形校验,希望对各位有所帮助,具体内容如下:

本文目录一览: 1、 我在本地测试下面的php图形验证源码,老是显示xx.php无法下载(来自localhost),哪位能否帮我看下代码? 2、 实现php中图形验证码刷新的问题 3、 怎么用php生成图像,生成验证码 我在本地测试下面的php图形验证源码,老是显示xx.php无法下载(来自localhost),哪位能否帮我看下代码?

帮你测试了下,你里面有句写少了

$backColor=ImageColorAllocate($im,rand(220,255),rand(220,255));

RGB值是3个的,再加个rand(220,255)变成

$backColor=ImageColorAllocate($im,rand(220,255),rand(220,255),rand(220,255));

这样就OK了

你这里应该是运行到 $backColor=ImageColorAllocate这里就出错了,所以图片没有生成,所以出现你看到的错误,因为这个函数你少写了个参数。

<?

phpinfo();

?

这样可以看到php相关信息,你看看GD相关的信息

开启的话GD Support  是enabled 的

实现php中图形验证码刷新的问题

首先要说明,浏览器对图片,JS等文件会进行缓存当浏览器访问图片的时候,浏览器会查看缓存中是否有这张图片如果有则使用缓存图片,没有则对服务器重新发起访问而浏览器判断是否存在缓存文件是通过文件的url进行识别的如果url不同,浏览器就会对服务器发起新的请求所有加上一个随机参数就能实现验证码图片的刷新因为随机数不同,所以url就不同,所以每次浏览器都会对验证码图片发起新的访问,达到刷新验证码的功能无论是img.src = "imgcode.php?"+Math.random();还是imgcode.php?tm="+Math.random();都是为了不要使用浏览器中图片缓存其中tm没有任何意思,你可以随便取你想要的名字甚至就像第一种情况不用给名字

怎么用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;$i<6;$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;$i<100;$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图形校验的介绍到此就结束了,不知道本篇文章是否对您有帮助呢?如果你还想了解更多此类信息,记得收藏关注本站,我们会不定期更新哦。

查看更多关于php图形校验 php绘制图形函数的详细内容...

声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://www.haodehen.cn/did208936
更新时间:2023-05-03   阅读:19次

上一篇: php的单行注释风格 php语句的单行注释采用

下一篇:php写到文件 php如何向指定文件写入信息

相关资讯

最新资料更新

  • 1.php复杂语法 php基本语法
  • 2.php部署云空间 php云开发
  • 3.包含苏州软世通php的词条
  • 4.郑州php业余培训 郑州php业余培训机构
  • 5.网页php查看源代码 php怎么看源码
  • 6.PHP添加日期代码 php年月日时间代码
  • 7.什么是php行为 什么是php,php有哪些优点
  • 8.口袋源码php下载 口袋com
  • 9.整站系统php源码 php企业网站整站源码
  • 10.php双色球案例 双色球php复式逻辑
  • 11.手机文件php怎么打开 手机php格式文件怎么打开
  • 12.erpphp源码下载 thinkphp erp源码
  • 13.zendphp调试 调试教程
  • 14.php导出cvs php导出csv大数据
  • 15.php是否为post的简单介绍
  • 16.天津php公司的 天津程序员公司
  • 17.php如何转换json php如何转换视频
  • 18.php的token请求 php简单的token验证
  • 19.php登录和注册 php登录和注册不使用数据库
  • 20.php存储的知识 php会话保存数据的两种方式是

CopyRight:2016-2025好得很程序员自学网 备案ICP:湘ICP备09009000号-16 http://www.haodehen.cn
本站资讯不构成任何建议,仅限于个人分享,参考须谨慎!
本网站对有关资料所引致的错误、不确或遗漏,概不负任何法律责任。
本网站刊载的所有内容(包括但不仅限文字、图片、LOGO、音频、视频、软件、程序等)版权归原作者所有。任何单位或个人认为本网站中的内容可能涉嫌侵犯其知识产权或存在不实内容时,请及时通知本站,予以删除。

网站内容来源于网络分享,如有侵权发邮箱到:kenbest@126.com,收到邮件我们会即时下线处理。
网站框架支持:HDHCMS   51LA统计 百度统计
Copyright © 2018-2025 「好得很程序员自学网」
[ SiteMap ]