我们在写用户验证页面
,如注册
,登录的时候,为了加强用户登录的
安全性,添加验证码验证
。 验证码通过GD生成PNG图片,并把$randval随机数字赋给$_SESSION['login_check_num'],在通过用户输入的$_POST进行比较,来判断是否正确
。达到需要实现的功能,需要修改php.ini文件,使php支持GD库。
<?php
//调用此页面,如果下面的式子成立,则生成验证码图片
if($_GET["action"]=="verifycode")
{
rand_create();
}
//验证码图片生成
functionrand_create()
{
//通知浏览器将要输出PNG图片
Header("Content-type:image/PNG");
//准备好随机数发生器种子
srand((double)microtime()*1000000);
//准备图片的相关参数
$im=imagecreate(62,20);
$black=ImageColorAllocate($im,0,0,0);//RGB黑色标识符
$white=ImageColorAllocate($im,255,255,255);//RGB白色标识符
$gray=ImageColorAllocate($im,200,200,200);//RGB灰色标识符
//开始作图
imagefill($im,0,0,$gray);
while(($randval=rand()%100000)<10000);{
$_SESSION["login_check_num"]=$randval;
//将四位整数验证码绘入图片
imagestring($im,5,10,3,$randval,$black);
}
//加入干扰象素
for($i=0;$i<200;$i++){
$randcolor=ImageColorallocate($im,rand(0,255),rand(0,255),rand(0,255));
imagesetpixel($im,rand()%70,rand()%30,$randcolor);
}
//输出验证图片
ImagePNG($im);
//销毁图像标识符
ImageDestroy($im);
}
//检验验证码
functionrand_check()
{
if($_POST["reg_rand"]==$_SESSION["login_check_num"]){
returntrue;
}
else{
exit("验证码输入错误");
}
}
?>