PHP验证码的实现

1.validate_code.php
作用:产生随机验证码,并生成图片
<?php
header ("Content-type: image/png");
session_start();
$_SESSION[’validate_code’] = strtoupper(substr(md5(rand()),20,6));
$im = @imagecreate (130, 40)
    or die ("Cannot Initialize new GD image stream");
$background_color = imagecolorallocate ($im, 200, 200, 200);

//设置干扰像素,防止被OCR
for ($i=0;$i<=128;$i++)
{
$point_color = imagecolorallocate ($im, rand(0,255), rand(0,255), rand(0,255));
imagesetpixel($im,rand(2,128),rand(2,38),$point_color);
}

//逐个画上验证码字符
for ($i=0;$i<=5;$i++)
{
$text_color = imagecolorallocate ($im, rand(0,255), rand(0,128), rand(0,255));
$x = 10 + $i * 20;
$y = rand(5,20);
imagechar ($im, 5, $x, $y,  $_SESSION[’validate_code’]{$i}, $text_color);
}

//输出PNG图像
imagepng ($im);
imagedestroy ($im);
?>

2.login.php
作用:生成登录界面,显示验证码图片
部分关键代码(不是为了保密,是HTML代码太多,无助于理解程序,所以省省篇幅)
<?php
...
session_start();
...
?>
<td align="right">验证码:</td>
<td>
<input name="validate_code" type="text" id="validate_code" size="8 "><img src="validate_code.php
" widht="130" height="40">
(0-9,A-F共16个字符,没有字母o只有数字0)
</td>
         
3.validate_user.php
作用:验证用户登录

部分关键源代码:
<?php
session_start();
if (strtoupper($HTTP_POST_VARS[’validate_code’]) != $_SESSION[’validate_code’])
{
echo ’<script language="Javascript">alert("认证失败:验证码错误,单击确定重试。");history.go(-1);</script>’;
unset($_SESSION[’admin_type’]);
unset($_SESSION[’validate_code’]);
exit;
}
else
验证用户名密码是否匹配
?>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值