首頁 > 後端開發 > php教程 > php驗證碼(GD庫產生驗證碼)的例子

php驗證碼(GD庫產生驗證碼)的例子

WBOY
發布: 2016-07-25 08:59:59
原創
1143 人瀏覽過
为大家介绍一个php使用GD库生成验证码的例子,有需要的朋友,可以参考下。

通过GD生成PNG图片,并把$randval随机数字赋给$_SESSION['login_check_num'],在通过用户输入的$_POST进行比较,来判断是否正确。

注意:如果服务器未开启GD库支持,需要修改php.ini文件,使php支持GD库。(专题推荐:php验证码大全)

代码如下:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

<?php

//调用生成验证码图片

//by http://bbs.it-home.org

if($_GET["action"]=="verifycode")

{

    rand_create();

}

//生成验证码图片

function rand_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);

}

//检验验证码

function rand_check()

{

    if($_POST["reg_rand"] == $_SESSION["login_check_num"]){

        return true;

    }

    else{

        exit("验证码输入错误");

    }

}

?>

登入後複製


來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板