本文为大家分享了php图片验证码的实现代码,分享给大家供大家参考,具体内容如下
1.验证码图片生成
captcha.php
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
|
//1.生成100*30大小的图片,默认为黑色
$image = imagecreatetruecolor(100,30);
//创建白色底图
$bgcolor = imagecolorallocate( $image ,255,255,255);
//用白色填充黑色
imagefill ( $image ,0,0, $bgcolor );
//2.随机显示数字或字母
$captch_code = "" ;
for ( $i =0; $i <4; $i ++){
$fontsize =6;
$fontcolor =imagecolorallocate( $image ,rand(0,120),rand(0,120),rand(0,120));
$data = "abcdefghijkmnpqrstuvwxy3456789" ;
$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 ;
//3.增加干扰
//干扰点
for ( $i =0; $i <100; $i ++){
$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 <2; $i ++){
$linecolor =imagecolorallocate( $image ,rand(80,220),rand(80,220),rand(80,220));
imageline( $image ,rand(1,99),rand(1,29),rand(1,99),rand(1,29), $linecolor );
}
header( "content-type:image/png" );
imagepng( $image );
|
2.页面实现验证码功能
form.php
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
|
<?php
if (isset( $_POST [ "authcode" ])){
session_start();
if ( strtolower ( $_POST [ "authcode" ])== $_SESSION [ "authcode" ]){
echo "OK" ;
} else {
echo "NO" ;
}
}
?>
<!doctype html>
<html lang= "en" >
<head>
<meta charset= "UTF-8" >
<title>Document</title>
</head>
<body>
<form action= "form.php" method= "post" >
<p>验证码图片: <img id= "img" border= "1" src= "captcha.php?r=<?php echo rand()?>" alt= "" >
<a href= "javascript:void(0)" onclick= "document.getElementById('img').src='captcha.php?r'+Math.random() " >换一个</a>
</p>
<p><input type= "text" name= "authcode" ></p>
<p><input type= "submit" value= "提交" ></p>
</form>
</body>
</html>
|
以上就是本文的全部内容,帮助大家轻松实现php图片验证码。