php产生简单的验证码

    技术2022-05-20  76

    必备条件:

    php增加了gd库这个扩展。(gd库为php提供了一系列操作图片的方法)。

    简要概括:

    把用随机函数产生的数字作为验证码的值,把验证码放在服务器端的session中,通过与客户端输入值的比较来判断验证码是否正确。

     

    首先,创建验证码:

     

    <?php

    //要把值赋给session首先要启动该服务组件

    session_start();

     

     

    //产生随机数字并赋给$nums,期中rand()函数是用来产生0到15的随机数,dechex()的作用是把rand()表示为16进制,这样就能出现a-f中的部分字母

    for($i=0;$i<4;$i++){

    $nums.=dechex(rand(0,15));

    }

    //把值赋给创建并把值赋给session

    $_SESSION[image]=$nums;

    //设置图片的大小尺寸

    $img=imagecreatetruecolor(100,30);

    //set color,设置背景色

    $bg=imagecolorallocate($img,0,0,0);

    //font color,设置前景色,既是字体的颜色

    $fg=imagecolorallocate($img,255,255,255);

    //font loacation,字体相对于图片的位置,以及字体的设置

    imagestring($img,rand(1,6),rand(5,60),rand(3, 15),$nums,$fg);

    //print the image,输出图片,交给用户端使用

    header("Content-type:image/jpeg");

    imagejpeg($img);

    ?>

    通过上面的步骤产生了验证码的图片,可是怎么使用呢。

    客户端的界面可以简单的是这样的:

     

    <?php

    session_start();//同样的是启动session组件

    if($_POST[numbers]){//如果表单输入的值不为空

    if($_SESSION[image]==$_POST[numbers]){//并且上一个php产生的随机数和客户端输入的值一样,打印出验证码正确

    echo "验证码正确.";

    }

    else {

    echo "验证码错误.";

    }

    }

    ?>

    <form action='' method="post">

    <img src="make.php" >//引入产生验证码的php文件

    <input type="text" name="numbers">

    <input type="submit" value="开始验证">

    </form>

     

     

     

     


    最新回复(0)