php验证码生成及简单登录验证

Eddy 发布于2012-9-6 12:6:40 分类: 网站相关 已浏览loading 网友评论0条 我要评论

验证码生成:

[CODE=php]
session_start();

// Set the content-type
header("Content-type: image/png"); // 告诉浏览器当前文件产生的结果以png形式进行输出

// Create the image
$im = imagecreate(200, 30); // 创建一张宽为200,高为30的画布

// Create some colors
$bg = imagecolorallocate($im, 155, 100, 255); // 给画布加上背景颜色
$white = imagecolorallocate($im, 255, 255, 255); // 三原色白色
//$grey = imagecolorallocate($im, 128, 128, 128);
$black = imagecolorallocate($im, 0, 0, 0); // 黑色

$numer_array = range(0,9); // 生成一个0到9范围的数组
$abc = range('a','z'); // 生成一个a到z范围的数组
$big_abc = range('A','Z'); // 生成一A到Z范围的数组
$big_chars = array_merge($numer_array,$abc,$big_abc); // 将上述三个数组进行合并


$font = 'arial.ttf'; // 设定字体文件的路径
$x = mt_rand(0,20);
for($i=0;$i<4;$i++){
$str = $big_chars[rand(0,61)]; // 从合并后的数组中随机取一个字符
$code =$code.$str;
//imagettftext($im, 20, 0, mt_rand(0,180), mt_rand(20,30), $black, $font, $str); // 将取出的字符写在画布上
imagettftext($im, 20, 0, $x, mt_rand(20,30), $black, $font, $str);
$x += 50;
}
$_SESSION['imagecode']=$code;//保存验证码

for($i=0;$i<200;$i++){
imagesetpixel( $im,mt_rand(0,200),mt_rand(0,30),$white); // 给画布加上点
}

for($i=0;$i<4;$i++){
imageline($im, mt_rand(0,200),mt_rand(0,30), mt_rand(0,200), mt_rand(0,30),$black ); //给画面加上线条
}

imagepng($im); // 将图像以png形式输出
imagedestroy($im); // 将图像资源从内存中销毁,以节约资源
?>
[/CODE]

登录页面:

[CODE=php]











[/CODE]

登录处理页面(php中利用session来模拟全局变量的功能,即可在不同的页面间访问同一变量):

[CODE=php]
session_start();

if(strtolower($_POST[yzm])==strtolower($_SESSION['imagecode']))
{
if(strtolower($_POST[username])=='eddy' && strtolower($_POST[password])=='123')//这里可从数据库中取信息来判断
{
echo "登陆成功";
}
else
{
echo "登陆失败";
}
}
else
{
echo "验证码输入错误";
}
?>
[/CODE]

已经有(0)位网友发表了评论,你也评一评吧!
原创文章如转载,请注明:转载自Eddy Blog
原文地址:http://www.rrgod.com/webdesign/835.html     欢迎订阅Eddy Blog

记住我的信息,下次不用再输入 欢迎给Eddy Blog留言