login:
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>欢迎登录网站</title>
<style>
*{
margin: 0 auto;
padding: 0 auto;
}
table{
margin-top: 100px;
width: 350px;
height: 200px;
border:1px solid red;
}
table tr{
background: #ccc;
}
</style>
</head>
<body>
<form action="checklogin.php" method="post">
<table>
<tr>
<th colspan="3">网站登录</th>
</tr>
<tr>
<td>账号</td>
<td colspan="2"><input type="text" name="username"></td>
</tr>
<tr>
<td>密码</td>
<td colspan="2"><input type="password" name="pwd" required></td>
</tr>
<tr>
<td>验证码</td>
<td><input type="text" name="vcode"></td>
<td><img src="vcode.php" onclick="change(this)"></td>
</tr>
<tr>
<td>提交</td>
<td colspan="2"><input type="submit" value="登录"></td>
</tr>
</table>
</form>
</body>
</html>
<script>
function change(obj){
obj.src="vcode.php?a"+Math.random();
}
</script>
制作验证码:
<?php
function vcode($size){
// 开启服务器session
session_start();
// 1:创建画布
$img=imagecreatetruecolor(120,40);
// 2:设置颜色
$gray=imagecolorallocate($img,200,200,200);
imagefill($img,0,0,$gray);
// 3:绘制图像
// 绘制干扰点
for($i=0;$i<50;$i++){
$color=imagecolorallocate($img,rand(120,150),rand(120,150), rand(120,150));
imagesetpixel($img,rand(0,120),rand(0,40), $color);
}
// 绘制干扰线
for($n=0;$n<10;$n++){
$color=imagecolorallocate($img, rand(120,150),rand(120,150), rand(120,150));
imageline($img,rand(0,120),rand(0,40),rand(0,120),rand(0,40), $color);
}
// 定义一个字符串
$str='0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrtsuvwxyz';
// 打乱上面的字符串
$strs=str_shuffle($str);
// 从打乱的字符串中截取四个
$vcode=substr($strs,0,$size);
$_SESSION['vcode']=$vcode;
// 绘制文字
for($m=0;$m<$size;$m++){
$color=imagecolorallocate($img, rand(120,150),rand(120,150), rand(120,150));
imagettftext($img,20,rand(-30,30),($m*20+10),30, $color,"simhei.ttf",$vcode[$m]);
}
// 4:设置格式,生出图像
header("content-type:image/jpeg");
imagejpeg($img);
// 5:销毁图像,释放资源
imagedestroy($img);
}
vcode(4);
检查用户名、密码、验证码是否正确:
<?php
header("content-type:text/html;charset=utf-8");
// 开启session
session_start();
$username=$_POST['username'];
$pwd=$_POST['pwd'];
$vcode=strtolower($_POST['vcode']);
if($vcode==strtolower($_SESSION['vcode'])){
if($username=='admin' && $pwd=='admin'){
echo '<script>alert("登录成功!");window.location="grzx.php"</script>';
}else{
echo '<script>alert("帐号密码不匹配,请重新输入!");window.location="login.php"</script>';
}
}else{
echo '<script>alert("验证码不正确,请重新输入!");window.location="login.php"</script>';
}