PHP实现登录图形验证码(gd)

14 篇文章 0 订阅

PHP实现登录图形验证码(gd)

  1. 代码如下:

    <?php // 生成随机字符 function GetRandStr($length){ //字符组合 $str = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'; $len = strlen($str)-1; $randstr = ''; for($i=0;$i<$length;$i++) { $num=mt_rand(0,$len); $randstr .=" ".$str[$num]; } return $randstr; } $code = GetRandStr(4); session_start(); $_SESSION['code'] = str_replace(" ", "", $code); // var_dump($_SESSION);die(); //var_dump(str_replace(" ", "", GetRandStr(4)));die(); //创建新的true-color图像。此函数返回给定尺寸的空白图像 $im = imageCreateTrueColor(100, 50); // magecolorallocate — 为一幅图像分配颜色 $white = imageColorAllocate($im, 255, 255, 255); $black = imageColorAllocate($im, 0, 0, 64); //区域填充 imageFill($im, 0, 0, $white); // 两个给定点之间绘制一条线段,用来干扰验证码识别 imageLine($im, 0, rand(20,50), 200, rand(20,50), $black); //水平绘制字符串 imageString($im, 12, 6, 20, $code, $black); header('Content-type: image/png'); imagePng($im); imageDestroy($im); ?>
  2. 生成效果展示:

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个基于 PHPGD实现图形验证登录页面的示例代码: ```php <?php session_start(); // 生成随机验证码 $code = ''; for ($i=0; $i<4; $i++) { $code .= chr(rand(65, 90)); // 生成 A-Z 的随机字母 } // 将验证码存储在 session 中 $_SESSION['code'] = $code; // 创建验证码图片 $image = imagecreatetruecolor(100, 30); $bg_color = imagecolorallocate($image, 255, 255, 255); // 背景色为白色 $font_color = imagecolorallocate($image, 0, 0, 0); // 字体颜色为黑色 imagefill($image, 0, 0, $bg_color); imagettftext($image, 20, 0, 10, 25, $font_color, 'arial.ttf', $code); // 输出验证码图片 header('Content-type: image/png'); imagepng($image); imagedestroy($image); ?> <!-- 在登录页面中显示验证码图片 --> <form action="login.php" method="post"> <label for="username">用户名:</label> <input type="text" name="username" id="username"><br> <label for="password">密码:</label> <input type="password" name="password" id="password"><br> <label for="code">验证码:</label> <input type="text" name="code" id="code"> <img src="captcha.php" alt="验证码"><br> <input type="submit" value="登录"> </form> ``` 以上代码中,首先在服务器端生成一个随机验证码,并将其存储在 session 中。然后使用 GD 库创建一个 100x30 大小的验证码图片,将随机生成的验证码绘制在图片上,并输出图片到客户端。在登录页面中,使用 `<img>` 标签引用验证码图片,并在用户输入验证码时一并提交到服务器端进行验证

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值