慕用9300060
2021-04-08
慕沐1496347
2020-12-01
$fontcontent只是一个数字,把‘imagestring($im,$fontsize, $x,$y,$fontcontent,$fontcolor);’放进for循环里就好了,每次写一个数字,一共写四次。这里为什么不直接写一个四位数?是因为如果直接写一个四位数无法控制数字间距,而且数字会在一条线上。
Fly_Lollipop
2020-06-03
Fly_Lollipop
2020-06-03
慕田峪6406328
2019-10-27
这个问题解决了吗? 我也遇到了同样的情况
泡沫foam
2019-09-26
这些如果没有的话会有什么问题出现呢
5769727
2019-09-07
好的我知道了<?php前面加了个空格
前端小白2018
2019-06-20
那个应该是浏览器的放大 : Ctrl + 鼠标滚轮 ;
win10 系统 打开 : 设置->系统->显示 中可以设置
丿旧城旧人
2019-04-12
充电_ing
2019-03-14

在UTF8中, 1个汉字=3个字节。
这里存在换行,1个换行符 '\n' = 1个字节。前三个汉字正常分割,然后还有 一个换行符+1个汉字=4字节,
结果很显然,换行符吞掉了后面的两个字节。
充电_ing
2019-03-13
已经找到解决办法了:把字体文件的路径赋值就好了,而不是字体文件的名称
正确:$fonttype="D:\wamp64\www\project01\STKAITI.TTF"
失败:$fonttype='STKAITI.TTF';
错误代码在上文第六行
充电_ing
2019-03-10
代码是顺序执行的,你这样写是面向过程,你在for循环上边输出了图片,for循环都没有执行
幕布斯4525458
2019-02-24
是src不是scr
慕粉1120538534
2018-08-29
https://pan.baidu.com/s/1QW4tg6Om1bimjvAnuCvnaw
提取码 i10b
qq_会飞的土豆_1
2018-08-22
浏览器的原因吧
旅行与读书
2018-07-24
meansfanve
2018-07-01
URL
慕工程0515242
2018-06-27
$fontcontent=substr($data,rand(0,strlen($data)-1),1);
cccss_
2018-06-14
hangcn
2018-04-28
<?php
session_start();
$image=imagecreatetruecolor(100,30);//默认黑色背景
$bgcolor=imagecolorallocate($image,255,255,255);//为一副图像分配颜色
imagefill($image,0,0,$bgcolor);
//控制字体大小与分布,避免字体重叠或显示不全
/*for($i=0;$i<4;$i++){
$fontsize=6;
$fontcolor=imagecolorallocate($image,rand(0,170),rand(0,170),rand(0,170));
$fontcontent=rand(0,9);
$x=rand($i*170/4)+rand(17,55);
$y=rand(5,10);
imagestring($image,$fontsize,$x,$y,$fontcontent,$fontcolor);//水平地画一行字符串
}*/
$captch_code="";
for($i=0;$i<4;$i++){
$fontsize=7;
$fontcolor=imagecolorallocate($image,rand(0,170),rand(0,170),rand(0,170));
$data='qwertyuipkjhgfdsaxcvbnm3456789';//可以去掉l\1\2\z\0\o
$fontcontent=substr($data,rand(0,strlen($data)),1);
$captch_code.=$fontcontent;
$x=$i*100/4+rand(5,10);
$y=rand(5,10);
imagestring($image,$fontsize,$x,$y,$fontcontent,$fontcolor);
}
$_SESSION['authcode']=$captch_code;
for($j=0;$j<200;$j++){
$pointcolor=imagecolorallocate($image,rand(50,200),rand(50,200),rand(50,200));
imagesetpixel($image,rand(1,99),rand(1,29),$pointcolor);//画一个单一像素
}
for($i=0;$i<3;$i++){
$linecolor=imagecolorallocate($image,rand(800,200),rand(800,200),rand(800,200));
imageline($image,rand(1,99),rand(1,29),rand(1,99),rand(1,29),$linecolor);
}
header('content-type:image/png');
imagepng($image);
//end
imagedestroy($image);
?>
Zzkung
2018-03-17
看看业务逻辑层的逻辑判断是否出错
剧恒
2018-01-19
谢谢了
剧恒
2018-01-19
document.getElementById('index_img')
mikedada
2018-01-16
发送标头信息,告诉浏览器
wfdaj
2018-01-11
天雨潇潇
2017-12-31
test.php和这个文件在同一目录下
天雨潇潇
2017-12-31
你的session没销毁吧?
EUGL
2017-11-27
有可能PHP程序未接收到请求,处理超时了;
有可能浏览器缓存问题,建议在请求的地址后面加上一随机数来刷新,有效防止浏览器缓存该链接结果;
我胖并不肥
2017-09-23
qq_不舍i_1
2017-08-22
刷新验证码有两种方式:
直接刷新页面, 你可以直接F5
是自己创建的html上的控件进行刷新, 自己定义好控件的onclick方法,使用JS将img的src换掉就可以直接刷新验证码了
一般情况下,验证码的制作和使用,都是选用第二种方法的, 因为第一种方法是直接刷新页面了, 如果你的页面中填写了很多信息,这样一刷就没了; 第二种是只刷新验证码的, 不会对页面的其他地方造成影响