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

给的答案的PHP文件验证码怎么运行不出来啊?

image.func.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 );

    $_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 );

    }

string.func.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 );

}



正在回答

5 回答

验证码出不来,还是include.php引入的问题,改成../lib/image.func.php就可以出来;但是同样又有一个问题,在哪里引入../include.php都不起作用,总是contains error php报错,一直没找到原因

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

首先代码是没有问题的,本人运行了下是可以的,如图:http://img1.sycdn.imooc.com//55d925b4000113d105330128.jpg

验证码空白我猜测是如下原因:

1·字体路径,可能性较小,字体路径错误会报错的

2·这个生成验证的方法一时疏忽没有调用(方法没调用,当然啥都没有了,可能性较大);

在生成的地方调用一下试试:verifyImage();

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

验证码空白 换浏览器也一样呀

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

一样的问题 

运行没有错误提示 

gd库开启

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

首先,如果报错了,你先分析是什么错误,哪个地方出的错;然后,如果没有报错,就是验证码渲染不出来,那是不是php环境设置里边GD库有没有开启,或者换个浏览器试试。总之描述问题的时候尽量简要清楚点,你这么直接贴这么一大段代码谁给你一点点去瞅啊

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

邦林织梦

一样的问题 运行没有错误提示 gd库开启 验证码空白 换浏览器也一样呀
2015-08-22 回复 有任何疑惑可以回复我~

举报

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

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

进入课程

给的答案的PHP文件验证码怎么运行不出来啊?

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