首页 > 后端开发 > 正文

php验证码框架 如何用PHP生成验证码

2023-09-18 17:03:16 | 我爱编程网

今天,我爱编程网小编为关注后端开发的同学们准备了php验证码框架 如何用PHP生成验证码,下面一起来看一下吧。

php验证码框架 如何用PHP生成验证码

使用thinkPHP3.2.3框架调用验证码不显示 应该怎么解决

缺少src="{:U('Admin/Index/show')}"
设置 'URL_ROUTER_ON'=>true,
阻止submit提交行为、用js设置了e.preventDefault(); 可还会提交上去。
<form onsubmit="return false" id="form">
或者用JS绑定onsubmit="javascript:submit()"做都行
function submit(){
return false;
}
还有就是__PUBLIC__/js/jquery-*.js 这个路径写错

更多问题到问题求助专区( )

php验证码框架 如何用PHP生成验证码

thinkphp 验证码怎么调用

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

Public function verify(){
ob_clean();
//ob_clean函数 清空先前输出
import('ORG.Util.Image');
//import调用的是message/ThinkPHP框架目录下的扩展包Extend/Library/ORG/Util/中的Image.class.php类文件
Image::buildImageVerify();
//调用buildImageVerify方法生成验证码,默认参数为($length=4, $mode=1, $type='png', $width=48, $height=22, $verifyName='verify'),有兴趣的朋友可以研究下Image类
}
二、在模板文件中加入验证码模块admin/Tpl/Login/index.html
知识点:
1、验证码图片调用
2、js相关运行流程了解
3、__PUBLIC__常量
在密码输入框后加入如下代码:
. 代码如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" " ">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<script type="text/javascript" src="__PUBLIC__/Js/jquery-1.7.2.min.js"></script>
//__PUBLIC__常量可以在页面加载后,“查看页面源文件”中找到定义的__PUBLIC__目录,默认为项目根目录message下的Public目录,下面会讲解如何自定义__PUBLIC__系统常量
//jquery文件,只有加载了这个文件才可以调用jquery的方法
<script type="text/javascript" src="__PUBLIC__/Js/login.js"></script>
//这里的具体代码会在下面贴出,其实只是定义了一个change_code函数,也就是更换验证码的异步操作(可以在不刷新页面的情况下更换)
<title>Message Board BackGround</title>
</head>
<body>
<form action="{:U('admin.php/Login/login')}" method="post" name="back_login" >
<h3>简易后台登录系统</h3>
用户名:<input type='username' name='username' id='username' />
<br />
密码:<input type='password' name='password' id='password' />
<br />
验证码:<input type="code" name="code"/>
//这里需要注意将type设置为code,name命名为code
<img src="{:U('Admin/Login/verify','','')}" id="code"/>
//img标签下的src就是调用Login控制器中的veryfy方法
//后面的两个参数留空是必须的,其中第2个没实际意义,主要是为了第3个参数留空,这样设置可以取消伪静态后缀名,否则默认的伪静态后缀名为html,将会导致无法正常加载图片
<a href="javascript:void(change_code(this));">看不清</a>
//这里调用了个
<br />
<input type="submit" value="登录"/>
</form>
</body>
</html>

login.js文件在message/Public/目录下
文件内容如下:
. 代码如下:

verifyURL = ' ';
//定义验证码路径
function change_code(obj){
$("#code").attr("src",verifyURL+'/'+Math.random());
//动态生成验证码方法,有兴趣的朋友可以深入研究下jq方法
return false;
}
另:__PUBLIC__文件定义在message/admin/Conf/config.php
在配置中,加入如下内容,即可改变__PUBLIC__路径
配置如下:
. 代码如下:

//常量相关配置
'TMPL_PARSE_STRING' => array(
'__PUBLIC__' => __ROOT__ . '/' . APP_NAME . '/Public',
//路径改变为message/admin/Public,刷新页面,验证码依然可以刷新,则表明js生效,也可“查看页面源文件”
),

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验证码框架 如何用PHP生成验证码”相关推荐
php框架验证码上传 如何用PHP生成验证码
php框架验证码上传 如何用PHP生成验证码

thinkphp中验证码,本地测试验证码显示,上传到服务器就不显示了,是什么问题这个问题建议你查询一下PHP带的GD库有没有打开,Windows的话看下dll那块,Apache的看下mod那块,如果有这个dll或者so,去php.ini里面看下gd相关的dll或者so有没有被启用就好了,关了就开起来,如果开起来还是没有好,那我建议你修改验证码方案,使用类似极验验证的解决方案,他是外置的,我之

2023-09-25 17:00:17
php框架yaf验证码 php如何做验证码
php框架yaf验证码 php如何做验证码

怎么样能够让php生成4位数字验证码PHP生成验证码的原理:使用PHP的GD库,生成一张带验证码的图片,并将验证码保存在Session中。PHP生成验证码的大致流程有:1、产生一张png的图片;2、为图片设置背景色;3、设置字体颜色和样式;4、产生4位数的随机的验证码;5、把产生的每...php如何做验证码php验证码制作是对php基本功的考核,php验证码制作必需开启gd库,因为要

2023-09-24 14:52:48
php框架下验证码登录 php如何写注册登录验证码
php框架下验证码登录 php如何写注册登录验证码

PHP中模拟登录的验证码问题应该如何解决基本思路:首先获取一个cookies值,再带着这个cookies去获取验证码图片,你再带着验证码值和登录数据去模拟post登录。下面是一个模拟获取验证码的。这里忽略获取cookies的过程。注意文件为UTF-8无BOM格式?phpheader('Content-Type:image/png');$url = "";//图片链接$ch

2023-10-05 02:56:26
php框架中怎么引用验证码 php 验证码 使用
php框架中怎么引用验证码 php 验证码 使用

php验证码使用你访问 你地址/上述程序的文件名.php?action=verifycode这样就可以看到图片了,同理插入到登录框用&lt;img src="你地址/上述程序的文件名.php?action=verifycode"/&gt;就可以了-------------------------leboc代码你都没看懂,$_GET["action"]=="ve

2023-10-06 13:10:50
php框架验证码出现错误 如何解决thinkphp5中验证码常见问题
php框架验证码出现错误 如何解决thinkphp5中验证码常见问题

thinkPHP3.2.3利用Ajax前台实现验证码验证,但通过form表单的按钮提交后,验证码一直错误!如何解决?验证码一直错误那就是:后台生成的和前台显示的不是同一个验证码,你可以把后台生成的打印出来测试一下。1:验证码生成代码://输入验证码functionverifyimg(){//验证码做配置$config= array('seKey'=&gt;'Thin

2023-10-05 11:07:17
php框架的验证码在哪里 thinkphp 验证码怎么调用
php框架的验证码在哪里 thinkphp 验证码怎么调用

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

2023-10-06 23:53:13
php框架验证码 php实现手机验证码验证注册功能的逻辑是怎样的?
php框架验证码 php实现手机验证码验证注册功能的逻辑是怎样的?

如何解决thinkphp5中验证码常见问题在项目目录下面生成captcha扩展(需要安装composer来安装)composerrequiretopthink/think-captcha2安装完成之后会呈现如上的目录。captcha扩展安装完成之后,就可以进行下一步操作配置comfig.php文件:在comfig.php下面加个扩展//验证码

2023-09-16 15:11:04
php框架验证 急急急!!!thinkphp3.22 框架 验证码检验始终是false
php框架验证 急急急!!!thinkphp3.22 框架 验证码检验始终是false

使用thinkPHP3.2.3框架调用验证码不显示应该怎么解决缺少src="{:U('Admin/Index/show')}"设置'URL_ROUTER_ON'=&gt;true,阻止submit提交行为、用js设置了e.preventDefault();可还会提交上去。&lt;formonsubmit="returnfalse"id="form"&gt;或者用JS绑定ons

2023-09-02 09:40:11