代码如下
<?php
session_start();
$arr = array(
‘a‘,‘b‘,‘c‘,‘d‘,‘e‘,‘f‘,‘g‘,‘h‘,‘i‘,‘j‘,‘k‘,‘l‘,‘m‘,‘n‘,‘o‘,‘p‘,‘q‘,‘r‘,‘s‘,‘t‘,‘u‘,‘v‘,‘w‘,‘x‘,
‘y‘,‘z‘,‘0‘,‘1‘,‘2‘,‘3‘,‘4‘,‘5‘,‘6‘,‘7‘,‘8‘,‘9‘
);
$rand =
"";
for($i=1;$i<=4; $i++){
$rand .=
$arr[rand(0,count($arr)-1)];
}
$_SESSION[‘check_pic‘] =
$rand;
//生成图片
$im =
imagecreatetruecolor(100,30);
//生成颜色,当第一次调用生成颜色的方法,是生成背景颜色
$bg =
imagecolorallocate($im,0,0,0);
//第二次调用这个方法,是可以生成图片上面的文字或其他样式的颜色
$te =
imagecolorallocate($im,255,255,255);
//在图片上面生成文字
imagestring($im,rand(1,5),rand(3,70),rand(3,15),$rand,$te);
//要把php当成图片输出,必须给文件一个头申明
ob_clean();
header("Content-type:image/jpeg");
//最终生成图片
imagejpeg($im);
?>
然后连接数据库 验证
<html>
<head>
<meta http-equiv="Content-Type"
content="text/html;charset=UTF-8"/>
</head>
<body>
<?php
session_start();
if(isset($_POST[‘check‘])){
if($_POST[‘check‘] ==
$_SESSION[‘check_pic‘]){
echo "验证成功";
}else{
echo
"验证失败";
}
}
?>
<form action="check2.php" method="post">
<input type="text"
name="check"/>
<img src="check1.php" onclick="refreshImg()"
id="chk" style="cursor: pointer"/>
<br/>
<input type="submit"
value="提交"/>
</form>
<script>
function refreshImg(){
var rand = Math.round(Math.random()*10000);
var chk =
document.getElementById("chk");
chk.src =
"check1.php?num="+rand;
}
</script>
</body>
</html>
原文地址:http://www.cnblogs.com/gx9401142810/p/3735653.html