首页 > 后端开发 > 正文

如何用PHP生成验证码

2024-08-07 20:37:54 | 我爱编程网

今天我爱编程网小编整理了如何用PHP生成验证码相关信息,希望在这方面能够更好帮助到大家。

本文目录一览:

如何用PHP生成验证码

如何用PHP生成验证码

PHP生成验证码的原理:使用PHP的GD库,生成一张带验证码的图片,并将验证码保存在Session中。PHP生成验证码的大致流程有:

1、产生一张png的图片;

2、为图片设置背景色;

3、设置字体颜色和样式;

4、产生4位数的随机的验证码;

5、把产生的每个字符调整旋转角度和位置画到png图片上;

6、加入噪点和干扰线防止注册机器分析原图片来恶意破解验证码;

7、输出图片;

8、释放图片所占内存。

session_start(); 
getCode(4,60,20); 
 
function getCode($num,$w,$h) { 
    $code = ""; 
    for ($i = 0; $i < $num; $i++) { 
        $code .= rand(0, 9); 
    } 
    //4位验证码也可以用rand(1000,9999)直接生成 
    //将生成的验证码写入session,备验证时用 
    $_SESSION["helloweba_num"] = $code; 
    //创建图片,定义颜色值 
    header("Content-type: image/PNG"); 
    $im = imagecreate($w, $h); 
    $black = imagecolorallocate($im, 0, 0, 0); 
    $gray = imagecolorallocate($im, 200, 200, 200); 
    $bgcolor = imagecolorallocate($im, 255, 255, 255); 
    //填充背景 
    imagefill($im, 0, 0, $gray); 
 
    //画边框 
    imagerectangle($im, 0, 0, $w-1, $h-1, $black); 
 
    //随机绘制两条虚线,起干扰作用 
    $style = array ($black,$black,$black,$black,$black, 
        $gray,$gray,$gray,$gray,$gray 
    ); 
    imagesetstyle($im, $style); 
    $y1 = rand(0, $h); 
    $y2 = rand(0, $h); 
    $y3 = rand(0, $h); 
    $y4 = rand(0, $h); 
    imageline($im, 0, $y1, $w, $y3, IMG_COLOR_STYLED); 
    imageline($im, 0, $y2, $w, $y4, IMG_COLOR_STYLED); 
 
    //在画布上随机生成大量黑点,起干扰作用; 
    for ($i = 0; $i < 80; $i++) { 
        imagesetpixel($im, rand(0, $w), rand(0, $h), $black); 
    } 
    //将数字随机显示在画布上,字符的水平间距和位置都按一定波动范围随机生成 
    $strx = rand(3, 8); 
    for ($i = 0; $i < $num; $i++) { 
        $strpos = rand(1, 6); 
        imagestring($im, 5, $strx, $strpos, substr($code, $i, 1), $black); 
        $strx += rand(8, 12); 
    } 
    imagepng($im);//输出图片 
    imagedestroy($im);//释放图片所占内存 
}

如何用PHP生成验证码

php 验证码 使用

你访问 你地址/上述程序的文件名.php?action=verifycode

这样就可以看到图片了,同理插入到登录框用

<img src="你地址/上述程序的文件名.php?action=verifycode"/>

就可以了

-------------------------

leboc代码你都没看懂,$_GET["action"]=="verifycode"  是判断动作的,当动作为verifycode的时候调用rand_create()函数产生一个随机验证码.不是你说的

"每个验证码不会都是"verifycode"?吧? ".而是每次调用验证码都要用verifycode

补充回答-----------------------------------

弹出迅雷?请确认你的电脑支持PHP,的运行环境.

我用你的代码保存为c.php,保存在服务器上,

同时,建立一个1.html,代码内容仅为

<img src="c.php?action=verifycode"/>.存放与c.php同一目录.

运行后是可以正常显示验证码的. 我爱编程网

如何用PHP生成验证码

PHP验证码显示问题 GD库函数imagecreatetruecolor使用不了 求救

我爱编程网(https://www.52biancheng.com)小编还为大家带来PHP验证码显示问题 GD库函数imagecreatetruecolor使用不了 求救的相关内容。

Call to undefined function imagecreatetruecolor() in ...
提示是:调用未定义的函数imagecreatetruecolor
你的gd库文件没有打开。
先打开你的php.ini文件 查找 ;extension=php_gd2.dll ,把前面的分号去掉,如果没有这句就加个(当然不要带分号,分号是注释掉的意思)然后保存退出。
如果没有gd2.dll文件的话,就到网上下载一个
重新启动apache服务器。

以上,就是我爱编程网小编给大家带来的如何用PHP生成验证码全部内容,希望对大家有所帮助!更多相关文章关注我爱编程网:www.52biancheng.com

免责声明:文章内容来自网络,如有侵权请及时联系删除。
与“如何用PHP生成验证码”相关推荐
php生成图片验证码?为什么是张黑色的?
php生成图片验证码?为什么是张黑色的?

php生成图片验证码?为什么是张黑色的?你的底图设置为黑色的,然后文字设置为白色的//$bg=imagecolorallocate($im,0,0,0);//第一次使用调色板时候的背景颜色//$te=imagecolorallocate($im,255,255,255);//文字颜色看看这个代码for($i=0;$i&lt;4;$i++){$rand.=dechex(r

2024-12-23 23:10:08
php如何实现登录验证码
php如何实现登录验证码

php如何实现登录验证码php实现登录验证码的方法:首先产生4到6位数的随机验证码;然后把产生的每个字符保存到session或数据库;接着将验证码发送到用户的手机;最后将和输入的验证码进行对比验证即可。推荐:《PHP视频教程》PHP实现简单的验证码功能机制网站的安全性是开发者不可忽视的一个问题,目前使用最多的一种可以提高网站安全性的方法就是使用验证码功能机制,有的仅仅使用一个几

2024-08-25 08:25:33
PHP网站短信验证码如何防止被刷
PHP网站短信验证码如何防止被刷

PHP网站短信验证码如何防止被刷1、加验证码;2、加时间限制,间隔一定时间才能有效;3、数据库存储手机发送情况,如手机号,时间,IP;4、根据收集数据,判断是否刷机,禁用IP或者手机号等等,设置禁用时间5、根据实际情况,设置单天同个IP,手机号一天短信数量PHP中短信验证码怎样存到数据库中,并设置失效时间?php做短信验证码,需要将手机号,发送的验证码和时间这几个存到数

2024-08-21 13:13:26
thinkphp 验证码怎么调用
thinkphp 验证码怎么调用

thinkphp验证码怎么调用一、首先需要在控制器中加入验证码方法admin/Lib/Action/LoginAction.class.php知识点:1、ob_clean函数用途2、import方法调用think默认类库3、Image类buildImageVerify方法使用代码如下:.代码如下:Publicfunctionverify(){ob_clean

2024-08-18 17:42:35
在thinkphp中进行验证时,如何调用common.php中的带参数函数进行验证?
在thinkphp中进行验证时,如何调用common.php中的带参数函数进行验证?

在thinkphp中进行验证时,如何调用common.php中的带参数函数进行验证?默认带的参数就是需要验证的表单名称,所以你上面的写法应该是没问题的但是需要注意的是:checkidcard($sfzh)函数的返回值应改为true或者false,分别表示验证通过或失败function checkidcard($sfzh){    if(!preg_match('// 验证正则 

2024-07-20 14:23:53
如何用 PHP 生成 Word 文档
如何用 PHP 生成 Word 文档

如何用PHP生成Word文档PHP生成word文档,可以考虑以下两类办法:1.利用windows系统提供的com组件。这种方法的原理,是使用php的调用com组件功能函数,如果系统里安装过office的服务器,就可以调用word.application。2.利用PHP将内容写入doc文件之中。这种方法,难分为两种,一种是生成mht格式写入word,另一种是编写纯HTM

2024-08-08 00:08:51
如何用PHP生成word文档
如何用PHP生成word文档

如何用PHP生成word文档利用php生成word文档,生成的word文件可以用word,wps等软件打开。具体代码如下:functionword($data,$fileName=""){if(empty($data))return"";$data="".$data."";if(empty($fileName))$fileName=date("YmdHis").".d

2024-12-10 16:10:28
用phpqrcode生成的二维码,如何让输出结果换行
用phpqrcode生成的二维码,如何让输出结果换行

php使用qrcode库生成二维码后,向二维码中心位置添加小图标,小图标色彩变暗最可能的原因就是logo图片是带alpha通道的图片也就是透明可以用imagealphablending设置一下色彩混合模式php怎样调用微信接口生成大尺寸二维码PHPQRCode是一个PHP二维码生成类库,利用它可以轻松生成二维码,官网提供了下载和多个演示demo,查看地址:。下载官网提供

2024-08-12 19:10:04