1.gd库未打开

2.编码错误 应该为无bom的utf-8

解决方法:http://jingyan.baidu.com/article/c275f6ba241e4ee33c756710.html

3.header 前应加上ob_clean();

4. "../xxx.php"的路径 改为 "xxx.php"

附上好用之后的代码

Validat

<?php
//验证码类
class ValidateCode {
private $charset = 'abcdefghkmnprstuvwxyzABCDEFGHKMNPRSTUVWXYZ';    //随机因子  private $code;                            //验证码  private $codelen = 4;                    //验证码长度  private $width = 130;                    //宽度  private $height = 50;                    //高度  private $img;                                //图形资源句柄  private $font;                                //指定的字体  private $fontsize = 20;                //指定字体大小  private $fontcolor;                        //指定字体颜色  //构造方法初始化  public function __construct() {  $this->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() {  ob_clean();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);  }
} 

code.php

<?php session_start();require 'ValidateCode.class.php';$_vc = new ValidateCode();$_vc->doimg();$_SESSION['code'] = $_vc->getCode();
?>

login.html

<!DOCTYPE HTML>
<head><meta charset="utf-8"><title>login</title>
</head>
<html>
<body><form action="login.php" method="post"><input type="text" name="name" placeholder="用户名"><br><input type="password" name="password" placeholder="密码"><br><input type="text" name="code" placeholder="验证码"><img src="code.php" /><br><input type="submit"></form> <a href="register.php">还没有账号?点击这里注册</a>
</body>
</html>

php验证码不能显示的原因相关推荐

  1. ThinkPHP5验证码不显示的原因及解决方法

    ThinkPHP5验证码不显示的原因及解决方法 参考文章: (1)ThinkPHP5验证码不显示的原因及解决方法 (2)https://www.cnblogs.com/shengxihui/p/112 ...

  2. PHP验证码无法显示的原因

    2019独角兽企业重金招聘Python工程师标准>>> 一.如果是utf-8,就有可能是BOM没有清除 二.在Header("Content-type: image/PNG ...

  3. Kaggle账号注册时验证码无法显示问题解决方法

    学习机器学习,想用深度神经网络做一个猫狗识别的程序,然后到kaggle上下载训练集猫狗图片,奈何一直出现验证码未填写的情况.看了很多文章说是要下载谷歌浏览器还有助手什么的,想起手机之前有个浏览器,一直 ...

  4. dede 验证码不显示 vdimgck.php,Dede后台验证码不显示解决方法详解(dedecms 5.7)

    本地与服务器上安装了dedecms5.7无法显示验证码,一般这种情况很少见,一般情况就是服务器设置问题,还有临时目录的权限问题. Dede后台验证码不显示或不正常分三种情况,下面来逐一分析 Dede后 ...

  5. startsBBS在nginx环境下的部署,出现布局错误和验证码不能显示的解决方法

    问题:提示404 原因:没有配置url重写 解决:nginx 不支持pathinfo 模式 需要修改配置,方法如下 STB配置 打开 STB 的 config.php 文件修改如下: $config[ ...

  6. linux+tomcat+jdk环境验证码无法显示

    我的环境配置:RHEL6.5+tomcat6+jdk1.6 今天遇到一个奇怪的现象,我的tomcat启动起来之后,网站无法显示验证码,导致无法登陆.我的tomcat启动过程是这样的: 我有一个进程守护 ...

  7. dede 验证码不显示 vdimgck.php,织梦(dedecms)后台登录验证码不显示或不正常的解决方法...

    随着互联网的快速发展,站长已经成为了互联网中的新兴人群,而其中建站使用的cms以织梦居多,伴随着人数的增多,在使用织梦cms中遇到的问题也越来越多,其中最棘手的问题莫过于验证码无法显示而导致无法登陆后 ...

  8. 服务器时间 验证码不显示,时间不同步导致网页验证码不能正常显示解决方法...

    症状:在电影服务器上能够正常显示,在游戏服务器上显示不正常,下面客户机显示不正常.有时候输入个别网页和程序的验证码要输入几十次才能正常.操作系统其他地方的系统都是一样的. 尝试了各种各样的关于验证码显 ...

  9. 360极速浏览器以及360安全浏览器在兼容模式下验证码图片显示不来,但是极速模式可以显示?

    问题 最近遇到一个验证码出不来的问题,在360极速浏览器以及360安全浏览器在兼容模式下验证码图片显示不来,效果如下: 这个验证码的代码元素如下,是一张图片,由接口提供的一个图片链接,返回的是文件流. ...

最新文章

  1. Git 笔记 上传文件至github
  2. Java创建线程的三种方式,以前只知道两种,现在添加一种Callable与FutureTask创建的方式
  3. 前端学习(2161):vuecli项目得目录结构解析
  4. 在c语言中优先级最低的是6,C语言中 *,<<,= ,->哪个优先级最低
  5. React- jsx的使用可以渲染html标签 或React组件
  6. 《高阶Perl》——3.8 对象方法里的缓存
  7. IBM新创AI病毒:想打谁就打谁,看脸发作绝不误伤,隐蔽性极强
  8. Android Studio如何隐藏系统的状态栏
  9. 数仓系列 | Flink 窗口的应用与实现
  10. 从零开始实现一个简易的Java MVC框架(四)--实现AOP
  11. spring源码-第四个后置处理器
  12. 【湖南集训 4.2】正12面体
  13. 找到弹窗广告所在的程序文件位置
  14. Cubieboard CC-A80性能之Ubuntu Linaro编译安装Node.js
  15. 基于python实现resnet_【Tensorflow系列】使用Inception_resnet_v2训练自己的数据集并用Tensorboard监控...
  16. 爱你的人和你爱的人 你选哪个?
  17. Addressable设置的要点
  18. 推荐一个免费的PDF在线编辑网站
  19. (一)数据后端之逻辑综合
  20. ios12升级, App应用崩溃闪退

热门文章

  1. win10刻录光盘失败,一直显示有准备好写入到光盘中的文件
  2. 恢复视力的辅助训练方法
  3. smarthosts
  4. python——根据公司名称查找公司地址(批量)、随机生成姓名、随机生成手机号
  5. 一个精壮的代购骗子被我彻底征服
  6. python中dump 和dumps load和loads的区别
  7. 断舍离-你之所以无法放手的原因
  8. 可保存在文件中的通讯录
  9. IT名词备忘录——汇编
  10. php给qq好友发消息,“您需要添加对方为好友+才能给对方发送会话消息”QQ解决办法 ......