验证码图片生成

来源:互联网 发布:java判断图片尺寸 编辑:程序博客网 时间:2024/05/01 13:01

 - - htlm界面:

  <p style="padding-left: 60px;">
            <span><img id="img1" src="imgrandcodeandnum.php" alt="验证码"/></span>
            <a href="javascript:changeimg()">看不清楚,换一张</a>
        </p>
        <p style="text-align: center;">
            <input type="submit"  value="登录"/>
        </p>
        <p>
            <a href="register.php">没有用户名,请注册一个</a>
  </p>

   <script>
    function changeimg(){
        document.getElementById("img1").src="imgrandcodeandnum.php?n="+(new Date()).getTime();
    }
</script>



 - - 验证码图片生成代码

<?php

/**
 * Created by PhpStorm.
 * User: fh
 * Date: 2016/4/28
 * Time: 8:50
 */

    session_start();
    function randomnum($len)
    {
        $srcstr = "1a2s3d4f5g6hj8k9qwertyupzxcvbnm";
        mt_srand();
        $strs = "";
        for ($i = 0; $i < $len; $i++) {
            $strs .= $srcstr[mt_rand(0, 30)];
        }
        return $strs;
    }

    //随机生成的字符串
    $str = randomnum(4);

    //验证码图片的宽度
    $width = 48;

    //验证码图片的高度
    $height = 25;

    //声明需要创建的图层的图片格式
    @ header("Content-Type:image/png");

    //创建一个图层
    $im = imagecreate($width, $height);

    //背景色
    $back = imagecolorallocate($im, 0xFF, 0xFF, 0xFF);

    //模糊点颜色
    $pix = imagecolorallocate($im, 187, 230, 247);

    //字体色
    $font = imagecolorallocate($im, 41, 163, 238);

    //绘模糊作用的点
    mt_srand();
    for ($i = 0; $i < 1000; $i++) {
        imagesetpixel($im, mt_rand(0, $width), mt_rand(0, $height), $pix);
    }

    //输出字符
    imagestring($im, 5, 7, 5, $str, $font);

    //输出矩形
    imagerectangle($im, 0, 0, $width - 1, $height - 1, $font);

    //输出图片
    imagepng($im);

    imagedestroy($im);

    $str = md5($str);

    //选择 Session
    $_SESSION["verification"] = $str;

?>





0 0
原创粉丝点击