2024-08-07 20:37:54 | 我爱编程网
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?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同一目录.
运行后是可以正常显示验证码的. 我爱编程网
我爱编程网(https://www.52biancheng.com)小编还为大家带来PHP验证码显示问题 GD库函数imagecreatetruecolor使用不了 求救的相关内容。
Call to undefined function imagecreatetruecolor() in ...php生成图片验证码?为什么是张黑色的?你的底图设置为黑色的,然后文字设置为白色的//$bg=imagecolorallocate($im,0,0,0);//第一次使用调色板时候的背景颜色//$te=imagecolorallocate($im,255,255,255);//文字颜色看看这个代码for($i=0;$i<4;$i++){$rand.=dechex(r
php如何实现登录验证码php实现登录验证码的方法:首先产生4到6位数的随机验证码;然后把产生的每个字符保存到session或数据库;接着将验证码发送到用户的手机;最后将和输入的验证码进行对比验证即可。推荐:《PHP视频教程》PHP实现简单的验证码功能机制网站的安全性是开发者不可忽视的一个问题,目前使用最多的一种可以提高网站安全性的方法就是使用验证码功能机制,有的仅仅使用一个几
PHP网站短信验证码如何防止被刷1、加验证码;2、加时间限制,间隔一定时间才能有效;3、数据库存储手机发送情况,如手机号,时间,IP;4、根据收集数据,判断是否刷机,禁用IP或者手机号等等,设置禁用时间5、根据实际情况,设置单天同个IP,手机号一天短信数量PHP中短信验证码怎样存到数据库中,并设置失效时间?php做短信验证码,需要将手机号,发送的验证码和时间这几个存到数
thinkphp验证码怎么调用一、首先需要在控制器中加入验证码方法admin/Lib/Action/LoginAction.class.php知识点:1、ob_clean函数用途2、import方法调用think默认类库3、Image类buildImageVerify方法使用代码如下:.代码如下:Publicfunctionverify(){ob_clean
在thinkphp中进行验证时,如何调用common.php中的带参数函数进行验证?默认带的参数就是需要验证的表单名称,所以你上面的写法应该是没问题的但是需要注意的是:checkidcard($sfzh)函数的返回值应改为true或者false,分别表示验证通过或失败function checkidcard($sfzh){ if(!preg_match('// 验证正则
如何用PHP生成Word文档PHP生成word文档,可以考虑以下两类办法:1.利用windows系统提供的com组件。这种方法的原理,是使用php的调用com组件功能函数,如果系统里安装过office的服务器,就可以调用word.application。2.利用PHP将内容写入doc文件之中。这种方法,难分为两种,一种是生成mht格式写入word,另一种是编写纯HTM
如何用PHP生成word文档利用php生成word文档,生成的word文件可以用word,wps等软件打开。具体代码如下:functionword($data,$fileName=""){if(empty($data))return"";$data="".$data."";if(empty($fileName))$fileName=date("YmdHis").".d
php使用qrcode库生成二维码后,向二维码中心位置添加小图标,小图标色彩变暗最可能的原因就是logo图片是带alpha通道的图片也就是透明可以用imagealphablending设置一下色彩混合模式php怎样调用微信接口生成大尺寸二维码PHPQRCode是一个PHP二维码生成类库,利用它可以轻松生成二维码,官网提供了下载和多个演示demo,查看地址:。下载官网提供
2025-02-01 20:24:39
2025-02-12 03:21:37
2025-02-10 15:19:48
2025-01-28 17:58:32
2024-11-22 05:08:01
2024-09-10 08:50:00