加上这句话$_SESSION['authcode']=$capth_code;之后验证码图片不显示了

来源:1-7 PHP验证码制作之通过SESSION存储验证信息

sany521

2015-05-10 18:59

<?php

session_start();

$captch_code='';

$weight=100;

$height=30;

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

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

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

//数字验证码


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

$fontsize =6;

$fontcolor = imagecolorallocate($image,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($image,$fontsize,$x,$y,$fontcontent,$fontcolor);

}*/

//字母数字

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

$fontsize =6;

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

$data='abcdefghijklmnpqrstuvwxy13456789';

$fontcontent = substr($data,rand(0,strlen($data)-1),1);

$captch_code.=$fontcontent;

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

$y=rand(5,$height-20);

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

}

$_SESSION['authcode']=$capth_code;

//干扰元素,点

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

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

imagesetpixel($image,rand(1,$weight-1),rand(1,$height-1),$pointcolor);

}

//线

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

$linecolor=imagecolorallocate($image,rand(80,220),rand(80,220),rand(80,220));

imageline($image,rand(1,$weight-1),rand(1,$height-1),rand(1,$weight-1),rand(1,$height-1),$linecolor);

}

header('content-type:image/png');

imagepng($image);

imagedestroy($image);

?>


写回答 关注

1回答

  • sany521
    2015-05-10 19:03:10

    自己少打个字母...

PHP实现验证码制作

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

37916 学习 · 321 问题

查看课程

相似问题