为了账号安全,请及时绑定邮箱和手机立即绑定

高手帮忙了!!验证码跟着敲好之后 服务器打开一个小方块里面空的!在线等!!!

<?php

require_once 'string.func.php';

//通过GD库做验证码

//创建画布

$width=80;

$height=28;

$image=imagecreatetruecolor($width,$height);

$white=imagecolorallocate($image,255,255,255);

$black=imagecolorallocate($image,0,0,0);

//用填充矩形填充画布

imagefilledrectangle($image,1,1,$width-2,$height-2,$white);

$type=1;

$length=4;

$chars=buildRandomString($type,$length);

$sess_name="verify";

$_SESSION[$sess_name]=$chars;

$fontfiles=array("msyh.ttc","msyhbd.ttc","msyhl.ttc","simhei.ttf","simkai.ttf");

for($i=0;$i<$length;$i++){

  $size=mt_rand(14,18);

  $angle=mt_rand(-15,15);

  $x=5+$i*$size;

  $y=mt_rand(20,26);

  $fontfile="../fomts/".$fontfiles[mt_rand(0,count($fontfiles)-1)];

  $color=imagecolorallocate($image,mt_rand(50,90),mt_rand(80,200),mt_rand(90,180));

  $text=substr($chars,$i,1);

  imagettftext($image,$size,$angle,$x,$y,$color,$fontfile,$text);

}

  header("content-type:image/gif");

  imagegif($image);

  imagedestroy($image);


正在回答

7 回答

$fontfile="../fomts/".$fontfiles[mt_rand(0,count($fontfiles)-1)]; 

文件夹名字是不是写错了 fomts 实际上应该是fonts?

1 回复 有任何疑惑可以回复我~
#1

慕移动8855887 提问者

非常感谢!
2017-07-29 回复 有任何疑惑可以回复我~

大佬,直接用您的代码 出现背景黑色,验证码在网页正中的情况

0 回复 有任何疑惑可以回复我~
#1

慕粉1474081634

怎么回事
2017-08-06 回复 有任何疑惑可以回复我~
#2

慕移动8855887 提问者

我发的代码有问题
2017-08-06 回复 有任何疑惑可以回复我~

上面这位大侠,您的方法非常有效,问题已经得到解决,谢谢

0 回复 有任何疑惑可以回复我~

<?php

function buildRandomString($type=1,$length=4){

if($type==1){

   $chars=join("",range(0,9));

}elseif($type==2){

   $chars=join("",array_merge(range("a","z"),range("A","Z")));

}elseif($type==3){

   $chars=join("",array_merge(range("a","z"),range("A","Z"),range(0,9)));

}

if($length>strlen($chars)){

   exit("字符串长度不够");

}

$chars=str_shuffle($chars);

return substr($chars,0,$length);

}

不好意思,字符串部分刚才发错了,这个是

0 回复 有任何疑惑可以回复我~

 $chars=join("",array_merge(range("a","z"),range("A","Z")));

0 回复 有任何疑惑可以回复我~

<?php

function buildRandomString($type=1,$length=4){

if($type==1){

   $chars=join("",range(0,9));

}elseif($type==2){

   $chars=join("",array_merge(range("A","Z")));

}elseif($type==3){

   $chars=join("",array_merge(range("a","z"),range("A","

Z"),range(0,9)));

}

if($length>strlen($chars)){

   exit("字符串长度不够");

}

$chars=str_shuffle($chars);

return substr($chars,0,$length);

}

这是字符串部分

0 回复 有任何疑惑可以回复我~

http://img1.sycdn.imooc.com//597c1097000171fa10700952.jpg

还是一个四方块,您说的地方已经改过来了,昨天今天一直在检查这个代码问题,已经崩溃了,麻烦求您帮帮忙吧

0 回复 有任何疑惑可以回复我~
#1

精慕门7376790

我刚也遇到这个问题了,看了他们的答案,在你的header("content-type:image/gif");前面加一句ob_clean(); 试试
2017-07-29 回复 有任何疑惑可以回复我~
#2

白小纯King

是不是string.func.php最后没有return?我感觉应该是的
2017-08-26 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
手把手教你实现电商网站后台开发
  • 参与学习       117284    人
  • 解答问题       1999    个

手把手教你用PHP搭建电子商务平台,由浅入深教你搭建电商系统

进入课程

高手帮忙了!!验证码跟着敲好之后 服务器打开一个小方块里面空的!在线等!!!

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信