PHP验证码的实现

实习就是做个留言本,留言需要验证码。

PHP验证码的实现,其实就是首先随机数,然后绘图。

关键的代码为validcode.php中的:

<?php 
	
	header("Content-Type:image/png");
	
	//开启session
	session_start();
	
	//随机4个数字
	$code = "";
	$arr = array();
	for($i=0;$i<4;$i++){
		
		$arr[$i] = rand(0,9);
		$code .= (string)$arr[$i];
	}
	
	//设置入session中,方便比对
	$_SESSION["validcode"] = $code;
	
	//开始绘图
	$width = 100;
	$height = 25;
	$img = imagecreatetruecolor($width,$height);
	
	//填充背景色
	$backcolor = imagecolorallocate($img,0,0,0);
	imagefill($img,0,0,$backcolor);
	
	//获取随机较深颜色 
	for($i=0;$i<4;$i++){
		
		$textcolor = imagecolorallocate($img,rand(50,180),rand(50,180),rand(50,180)); 
		imagechar($img,12,7+$i*25,3,(string)$arr[$i],$textcolor);
	}
	
	//显示图片
	imagepng($img);
	
	//销毁图片
	imagedestroy($img);
?>

然后再用一个页面,放置img标签,引入验证码。再用一个a标签,供用户切换验证码,防止看不清的情况。

<html>
	<head>
		<meta http-equiv="Content-Type" content="text/html;charset=utf-8"/>
		<title>测试页面</title>
		<style type="text/css">
			a{
				font-size:12px;
				text-decoration:none;
				color:red;
			}
			a:hover{
				
				color:orange;
			}
		</style>
	</head>
	<body>
		<img src="validcode.php" style="width:100px;height:25px;" id="code"/>
		<a href="javascript:changeCode()">看不清,换一张</a>
	</body>
</html>
<script type="text/javascript">
	function changeCode(){
		
		document.getElementById("code").src = "validcode.php?id="+Math.random();
	}
</script>


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值