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

验证码显示不出来

<?php
require_once 'string.func.php';
//通过GD库做验证码
function verifyImage($type=1,$length=4,$pixel=0,$line=0,$sess_name = "verify"){
    session_start();
    //创建画布
    $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 );
    $chars = buildRandomString ( $type, $length );
    $sess_name = "verify";
    $_SESSION [$sess_name] = $chars;
    //$fontfiles = array ("SIMYOU.TTF");
    $fontfiles = array ("SIMYOU.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 );
    }
    if ($pixel) {
        for($i = 0; $i < 50; $i ++) {
            imagesetpixel ( $image, mt_rand ( 0, $width - 1 ), mt_rand ( 0, $height - 1 ), $black );
        }
    }
    if ($line) {
        for($i = 1; $i < $line; $i ++) {
            $color = imagecolorallocate ( $image, mt_rand ( 50, 90 ), mt_rand ( 80, 200 ), mt_rand ( 90, 180 ) );
            imageline ( $image, mt_rand ( 0, $width - 1 ), mt_rand ( 0, $height - 1 ), mt_rand ( 0, $width - 1 ), mt_rand ( 0, $height - 1 ), $color );
        }
    }
    header ( "content-type:image/gif" );
    imagegif ( $image );
    imagedestroy ( $image );
    
}

http://img1.sycdn.imooc.com//56c27bed0001441105150257.jpg这是不能显示的,就是显示一片空白,也没提示什么错误

<?php
require 'string.func.php';
 
//通过GD库做验证码
//创建画布
$width=80;
$height=28;
$image=imagecreatetruecolor($width,$height);
$white=imagecolorallocate($image, 255, 255, 28);//画布颜色
$black=imagecolorallocate($image, 0, 0, 0);//画笔颜色
imagefill($image,0,0,$white);
//用填充矩形填充画布
//imagefilledrectangle($image, 1, 1,$width - 1, $heigth - 1, $white);
 
$type=1;
$length=4;
$chars=buildRandomString($type,$length);
//echo $chars;
 
imagestring($image, 5, 10, 10, $chars, $black);
 
 
 
for($i=0;$i<50;$i++) {
  imagesetpixel($image, rand(0, $width) , rand(0, $height) , $black);
}
header("content-type: image/png");
imagepng($image);
imagedestroy($image);

这是可以的

想知道这是为什么,求指导。。。http://img1.sycdn.imooc.com//56c27bcf00010b2704640230.jpg

正在回答

2 回答

session_start();在运行时只需要调用一次

在include里面已经调用过了 所以这里可以删掉

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

柠檬不萌_

给注释掉也不行啊
2016-02-21 回复 有任何疑惑可以回复我~
#2

ZY_0007

照你的方法我成功了,谢谢!
2016-04-11 回复 有任何疑惑可以回复我~

http://img1.sycdn.imooc.com//56c283920001d4e204500211.jpg

function verifyImage($type=1,$length=4,$pixel=0,$line=0,$sess_name = "verify")

和session_start();去掉就可以,这是调用出错了吗?具体原理有大神指导一下吗?调用,要怎么处理来着?


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

举报

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

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

进入课程

验证码显示不出来

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