11.code
goer ... 2022-01-07 大约 2 分钟
[toc]
# code
验证码php文件生成
<?php
header('Content-Type:text/html;charset=utf-8');
// 验证码
function get_str($length=1){
$chars = '1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ';
//随机打乱字符
$rand_char = str_shuffle($chars);
//获取到字符
$str = substr($rand_char,0,$length); //字符串, 开始位置 ,获取一个
return $str;
}
// echo get_str();
//生成图片
$width = 100;
$height = 100;
$img = imagecreatetruecolor($width,$height);
// 设置背景颜色 rgb格式
$bgcolor = imagecolorallocate($img,255,255,255);
//设置文字颜色
$textcolor = imagecolorallocate($img,mt_rand(0,255),mt_rand(0,255),mt_rand(0,255));
// 背景颜色加入图片
imagefilledrectangle($img,0,0,$width,$height,$bgcolor);
//第2个和第3个参数是左上角坐标
//第4个和第5个参数是右下角坐标
//这两个坐标可以确定一块矩形区域
//获取字符串
$get_code1 = get_str();
$get_code2 = get_str();
$get_code3 = get_str();
$get_code4 = get_str();
//把验证码放入图片
//引入字体
//如果写相对路径,验证码出不来时,把路径写成绝对路径
$font = 'F:\phpstudy_pro\WWW\php\aa\code\ttf/texb.ttf';
imagettftext($img,20,mt_rand(-30,30),5,50,$textcolor,$font,$get_code1);
imagettftext($img,20,mt_rand(-30,30),30,50,$textcolor,$font,$get_code2);
imagettftext($img,20,mt_rand(-30,30),60,50,$textcolor,$font,$get_code3);
imagettftext($img,20,mt_rand(-30,30),70,50,$textcolor,$font,$get_code4);
//第一个参数是图片变量
//第二个参数是字体大小
//第三个参数是字符倾斜度,负数向左,正数向右,数值越大角度越大
//第四个和第五个参数是字符所在位置的x坐标和y坐标
//第六个参数是字符颜色
//第七个参数是字体库
//第八个参数是需要放进去的字符
// 绘制一些点状像素 一些点
for($i=0;$i<=10;$i++){
imagesetpixel($img,mt_rand(0,$width),mt_rand(0,$height),imagecolorallocate($img,mt_rand(0,255),mt_rand(0,255),mt_rand(0,255)));
}
//第二个和第三个参数是点的位置坐标
//第四个参数是点的颜色
//绘制一些线像素 一些线
for($i=0;$i<=5;$i++){
imageline($img,mt_rand(0,$width),mt_rand(0,$height),mt_rand(0,$width),mt_rand(0,$height),imagecolorallocate($img,mt_rand(0,255),mt_rand(0,255),mt_rand(0,255)));
//第2/3/4/5个参数是线的两端坐标
}
//将验证码中的四个字符保存在session里面 $_SESSION获取到
session_start();
$get_sesscode = $get_code1.$get_code2.$get_code3.$get_code4;
$_SESSION['imgcode'] = $get_sesscode;
//输出图片
header('Content-Type:image/png');
imagepng($img);
?>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
html设置code
*maxlength="4" autocomplete="off" 输入最大字符 自动完成功能*
<input type="text" name="code" maxlength="4" autocomplete="off">
<!-- 引入验证码图片 -->
<img id="code" src="../code.php" alt="">
//点击改变
<script>
// 点击验证码,换验证码
var code = document.getElementById('code');
code.onclick = function(){
this.src = '../code.php ?id='+ Math.random();
}
</script>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14