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

只显示画布,没有数字啊

<?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("FZYTK.TTF","SIMLI.TTF","SIMYOU.TTF","STCAIYUN.TTF","STXINGKA.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="../fonts/".$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);

正在回答

3 回答

我的代码里面没有session_start(),也只显示画布没有数字,代码检查超过一百遍了,无法进行下一步的学习,卡住了。。。。

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

解决了,,,将fonts中加入相应的字体文件(SIMYOU.TTF),再将lid下的image.func.php文件中的session_start();去掉

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

string.func.php

<?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);
substr($chars,0 ,$length);
}


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

举报

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

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

进入课程

只显示画布,没有数字啊

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