php生成动态的验证码,是php防止恶意登陆或者注册等常规手段-废话不多说,直接看例子。(只是一个简单的应用,如果要安全或者更复杂的,请期待我以后的文章)

PHP生成验证码核心文件 (checks.php):

<?php
    /*成生随机的验证码。此实例只是一个简单的例子,如果不想被人识别,还可以加噪点等干扰技术*/
    session_start(); //启动session
    header("Content-type:image/x-png"); //设置创建图像的格式
    $image_width = 70;  //设置图像的宽度
    $image_height = 18;  //设置图像的高度
    srand(microtime()*100000);  //设置随机数的种子。 --这里关于srand和microtime函数请自行查阅php手册
    for($i=0; $i<4; $i++)    //循环输出一个4位数的随机数
    {
        $new_number.=dechex(rand(0,15)); //将十进制随机数转为十六进制
    }
    
    /*将获取的随机数验证码写入到Session变量中  --这里注意php的变量作用范围,和别的高级语言可能有些
      不同,所以要理解,自己去查手册*/
    $_SESSION['check_checks'] = $new_number;
    $num_image = imagecreate($image_width,$image_height);  //创建一个画布
    imagecolorallocate($num_image,255,255,255);  //设置画布的颜色
    for($i=0; $i<strlen($_SESSION['check_checks']); $i++)  //循环读取session变量中的验证码
    {
        $font = mt_rand(3,5); //设置随机的字体大小
        $x = mt_rand(1,8)+$image_width*$i/4;  //设置随机字符所在的位置的X坐标
        $y = mt_rand(1,$image_height/4);  //设置随机字符所在的位置的Y坐标
        //设置字符的颜色
        $color = imagecolorallocate($num_image,mt_rand(0,100),mt_rand(0,150),mt_rand(0,200));
        //水平画出一行字符串 --输出字符,此函数自行查阅php手册。要GD2库支持
        imagestring($num_image,$font,$x,$y,$_SESSION['check_checks'][$i],$color);
    }
    imagepng($num_image); //生成png格式的图像
    imagedestroy($num_image);  //结束图像,释放资源
?>
View Code

相关文章:

  • 2022-12-23
  • 2022-01-16
  • 2021-12-12
  • 2022-12-23
  • 2022-12-23
  • 2021-05-11
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2021-07-19
  • 2021-07-04
  • 2021-05-27
  • 2021-10-31
  • 2021-07-06
相关资源
相似解决方案