php雪花背景验证码的实例,PHP生成带有雪花背景的验证码

 必赢亚州手机网站     |      2020-02-03 06:03

<?php
session_start();
session_register("login_check_number");
//今晚看看了chianren上的验证码功效,就考虑了弹指间,用PHP的GD库实现了近乎作用
//先成生背景,再把变化的验证码放上去
$img_height=120; //先定义图片的长、宽
$img_width=40;
if($HTTP_GET_VARS["act"]== "init"){
//srand(microtime() * 100000State of Qatar;//PHP420后,srand不是必须的
for($Tmpa=0;$Tmpa<4;$Tmpa++){
$nmsg.=dechex(rand(0,15));
}//by sports98

<?session_start();?> 
<FORM METHOD=POST ACTION=""> 
<input type=text name=number maxlength=4><img src="YanZhengMa.php?act=init"> 
<INPUT TYPE="submit" name="sub"> 
</FORM> 
<? 
//查验校验码 
if(isset($HTTP_POST_VARS["sub"])): 
if($HTTP_POST_VARS["number"] != $HTTP_SESSION_VARS[login_check_number] || empty($HTTP_POST_VARS["number"])){ 
    echo "校验码不科学!" ; 
}else{ 
    echo"验证码通过!"; 

endif; 
show_source('test.php'); 
//以上本页的源码

$HTTP_SESSION_VARS[login_check_number] = $nmsg;
//$HTTP_SESSION_VARS[login_check_number] = strval(mt_rand("1111","9999"卡塔尔卡塔尔; //生成4位的妄动数,放入session中
//哪个人能做下补充,可以况且生成字母和数字啊??----由sports98做到了
$aimg = imageCreate($img_height,$img_width卡塔尔国; //生成图片
ImageColorAllocate($aimg, 255,255,255卡塔尔(قطر‎; //图片底色,ImageColorAllocate第1次定义颜色PHP就以为是底色了
$black = ImageColorAllocate($aimg, 0,0,0State of Qatar; //定义需求的深灰
ImageRectangle($aimg,0,0,$img_height-1,$img_width-1,$black卡塔尔国;//先成意气风发灰褐的矩形把图纸包围
//下边该生成雪花背景了,其实便是在图纸上生成一些标记
for ($i=1; $i<=100; $i++卡塔尔国 { //先用九18个做测量检验
imageString($aimg,1,mt_rand(1,$img_height),mt_rand(1,$img_width),"*",imageColorAllocate($aimg,mt_rand(200,255),mt_rand(200,255),mt_rand(200,255)));
//哈,见到了吗,其实亦非白雪,正是生成*号而已。为了使它们看起来"语无伦次、5颜6色",就得在1个1个变化它们的时候,让它们的地点、颜色,以至大小都用随机数,rand(卡塔尔(قطر‎或mt_rand都能够成功。
}
//下面生成了背景,现在就该把早就转移的狂妄数放上来了。道理和上边大致,随机数1个1个地放,同时让他们的岗位、大小、颜色都用成随机数~~
//为了不同于背景,这里的颜色不当先200,上面包车型地铁比相当大于200
for ($i=0;$i<strlen($HTTP_SESSION_VARS[login_check_number]);$i++){
imageString($aimg, mt_rand(3,5),$i*$img_height/4+mt_rand(1,10),mt_rand(1,$img_width/2), $HTTP_SESSION_VARS[login_check_number][$i],imageColorAllocate($aimg,mt_rand(0,100),mt_rand(0,150),mt_rand(0,200)));
}
Header("Content-type: image/png"卡塔尔国; //告诉浏览器,上面包车型地铁数额是图表,而不要按文字展现
ImagePng($aimg卡塔尔; //生成png格式。。。嘿嘿效果蛮像回事的呗。。。
ImageDestroy($aimg);
}
?>

//以下是生成验证码的源码 
show_source('YanZhengMa.php'); 
?>

验证码代码:

<?php 
session_start(); 
session_register("login_check_number"); 
//明儿早上来看了chianren上的验证码作用,就考虑了一下,用PHP的GD库完毕了看似作用 
//先成生背景,再把转变的验证码放上去 
$img_height=120;    //先定义图片的长、宽 
$img_width=40; 
if($HTTP_GET_VARS["act"]== "init"){ 
    //srand(microtime() * 100000卡塔尔(قطر‎;//PHP420后,srand不是必得的 
    for($Tmpa=0;$Tmpa<4;$Tmpa++){ 
        $nmsg.=dechex(rand(0,15)); 
    }//by sports98

    $HTTP_SESSION_VARS[login_check_number] = $nmsg;