백엔드 개발 PHP 튜토리얼 PHP生成带有雪花背景的验证码_PHP

PHP生成带有雪花背景的验证码_PHP

Jun 01, 2016 pm 12:38 PM
mt_rand 그림 생성하다 배경 확인하다

验证码


PHP生成带有雪花背景的验证码


            PHP生成带有雪花背景的验证码



//检验校验码
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');
//以上本页的源码


//以下是生成验证码的源码
show_source('YanZhengMa.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        $nmsg.=dechex(rand(0,15));
    }//by sports98


    $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,0);        //定义需要的黑色
    ImageRectangle($aimg,0,0,$img_height-1,$img_width-1,$black);//先成一黑色的矩形把图片包围

    //下面该生成雪花背景了,其实就是在图片上生成一些符号
    for ($i=1; $i        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        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);
}

?>
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

뜨거운 기사 태그

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

PDF에서 서명을 확인하는 방법 PDF에서 서명을 확인하는 방법 Feb 18, 2024 pm 05:33 PM

PDF에서 서명을 확인하는 방법

WeChat 친구 지원 인증으로 차단을 해제하는 자세한 방법 WeChat 친구 지원 인증으로 차단을 해제하는 자세한 방법 Mar 25, 2024 pm 01:26 PM

WeChat 친구 지원 인증으로 차단을 해제하는 자세한 방법

C++에서 Prim의 알고리즘을 사용하는 방법 C++에서 Prim의 알고리즘을 사용하는 방법 Sep 20, 2023 pm 12:31 PM

C++에서 Prim의 알고리즘을 사용하는 방법

퇴근 전 소규모 회의로 상사의 방해를 받는 일이 더 이상 걱정되지 않습니다. AI 도우미가 자동으로 회의록을 생성하도록 도와드립니다. 퇴근 전 소규모 회의로 상사의 방해를 받는 일이 더 이상 걱정되지 않습니다. AI 도우미가 자동으로 회의록을 생성하도록 도와드립니다. Sep 04, 2023 pm 11:21 PM

퇴근 전 소규모 회의로 상사의 방해를 받는 일이 더 이상 걱정되지 않습니다. AI 도우미가 자동으로 회의록을 생성하도록 도와드립니다.

PHP 8의 새로운 기능: 확인 및 서명 추가 PHP 8의 새로운 기능: 확인 및 서명 추가 Mar 27, 2024 am 08:21 AM

PHP 8의 새로운 기능: 확인 및 서명 추가

PHP를 사용하여 새로 고칠 수 있는 이미지 확인 코드를 생성하는 방법 PHP를 사용하여 새로 고칠 수 있는 이미지 확인 코드를 생성하는 방법 Sep 13, 2023 am 11:54 AM

PHP를 사용하여 새로 고칠 수 있는 이미지 확인 코드를 생성하는 방법

Win11 새 버전의 그림: 한 번의 클릭으로 배경을 제거하여 컷아웃 기능 실현 Win11 새 버전의 그림: 한 번의 클릭으로 배경을 제거하여 컷아웃 기능 실현 Sep 15, 2023 pm 10:53 PM

Win11 새 버전의 그림: 한 번의 클릭으로 배경을 제거하여 컷아웃 기능 실현

모바일 토큰 인증에서 스팀 로그인이 멈추는 문제를 해결하는 방법은 무엇입니까? 모바일 토큰 인증에서 스팀 로그인이 멈추는 문제를 해결하는 방법은 무엇입니까? Mar 14, 2024 pm 07:35 PM

모바일 토큰 인증에서 스팀 로그인이 멈추는 문제를 해결하는 방법은 무엇입니까?

See all articles