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

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

验证码生成:


<?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);  // 将图像资源从内存中销毁,以节约资源
?>

登录页面:


<form action="hand_login.php" method="post" name="login" id="login">
	<label>用户名:
	<input type="text" name="username" tabindex="1">
	</label><br />
	<label for="textfield">密码:</label>
	<input type="text" name="password" tabindex="2"><br />
	<label>验证码:<input name="yzm" type="text" tabindex="3">
	<img src="code.php" width="200px" height="30px" >	</label>
	<br /><br />
<input type="submit" value="登 录">
</form>

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


<?php
session_start();

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

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

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