老师好!我这个代码只能显示一个数字出来,。帮忙分析下哪里问题呢?

来源:1-4 PHP验证码制作之增加点干扰元素

慕沐1496347

2020-12-01 17:59

<?php

header ('Content-Type: image/png');

$im = @imagecreatetruecolor(120,30)

      or die('Cannot Initialize new GD image stream');

$bgcolor= imagecolorallocate($im, 255, 255, 255);

imagefill($im, 0, 0, $bgcolor);


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

    $fontsize=6;

    $fontcolor=imagecolorallocate($im,rand(0,120),rand(0,120),rand(0,120));

    $fontcontent=rand(0,9);

    $x=($i*100/4)+rand(5,10);

    $y=rand(5,10);

}

imagestring($im,$fontsize, $x,$y,$fontcontent,$fontcolor);


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

    $pointcolor=imagecolorallocate($im,rand(50,200),rand(50,200),rand(50,200));

    imagesetpixel($im,rand(1,120),rand(1,29),$pointcolor);

}

header ('Content-Type: image/png');

imagepng($im);

imagedestroy($im);

?>


写回答 关注

2回答

  • mmduan
    2024-05-29 17:32:44

    $fontcontent只是一个数字,把‘imagestring($im,$fontsize, $x,$y,$fontcontent,$fontcolor);’放进for循环里就好了,每次写一个数字,一共写四次。这里为什么不直接写一个四位数?是因为如果直接写一个四位数无法控制数字间距,而且数字会在一条线上。



               
  • 慕沐1496347
    2020-12-01 18:04:52

    http://img4.mukewang.com/5fc615290001e8da01700132.jpg就显示一个数字,但是数字可以变

PHP实现验证码制作

各种形态验证码核心原理与实现技巧,讲解实现过程中的技术难点

37916 学习 · 321 问题

查看课程

相似问题