外链论坛

 找回密码
 立即注册
搜索
查看: 19|回复: 3

WordPress主题自定义注册登录表单中添加字符照片验证码

[复制链接]

2987

主题

182

回帖

9920万

积分

论坛元老

Rank: 8Rank: 8

积分
99209306
发表于 2024-10-6 18:15:01 | 显示全部楼层 |阅读模式

无论你是WordPress主题研发者还是想要对自己的网站进行二次研发,有时候咱们需要在用户注册、登录的地区添加一个字符照片验证码来阻挡有些设备人暴力破解账户秘码

WordPress插件仓库里有非常多这般的插件,然则基本上都是针针对WordPress自带的登录注册表单页面,而针对运用WordPress自己的注册登录表单,运用主题研发的注册登录功能的时候则安装了插件不会有任何效果。

今天咱们来讲讲针针对WordPress主题自带的注册或登录表单模块怎样添加字符照片验证码的功能,下面咱们以在登录表单中添加验证码为示例,注册表单同理。

先上个示例效果演示

创建 captcha.php 字符照片验证码文件

咱们规律运用php图像函数 imagecreate () 来创建图像,同期将生成的验证码写入session其中而后在需要验证的页面中运用

1、新建一个空白php文件,将下列代码复制到php文件中,保留并命名为captcha.php

/** * 创建字符照片验证码 * @Author Jackie * @Author url https://www.themeke.com */ <?php session_start(); getCode(4,60,20); function getCode($num,$w,$h) { // 去掉了 0 1 O l 等容易产生混淆的字符 $str = "23456789abcdefghijkmnpqrstuvwxyz"; $code = ; for ($i = 0; $i < $num; $i++) { $code .= $str[mt_rand(0, strlen($str)-1)]; } //将生成的验证码写入session,以备在验证页面中运用 $_SESSION["captcha_code_char"] = $code; //验证码存储在session,键名为captcha_code_char //创建照片,定义颜色值 Header("Content-type: image/PNG"); $im = imagecreate($w, $h); $black = imagecolorallocate($im, mt_rand(0, 200), mt_rand(0, 120), mt_rand(0, 120)); $gray = imagecolorallocate($im, 118, 151, 199); $bgcolor = imagecolorallocate($im, 235, 236, 237); //画背景 imagefilledrectangle($im, 0, 0, $w, $h, $bgcolor); //画边框 imagerectangle($im, 0, 0, $w-1, $h-1, $gray); //imagefill($im, 0, 0, $bgcolor); //在画布上随机生成海量点,起干扰功效; 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, 14); } imagepng($im); imagedestroy($im); } ?>

2、将保留好的 captcha.php 文件复制粘贴或上传至你的 WordPress 主题根目录下 (wp-content\themes\你的主题名叫作\)

添加验证码表示和输入字段

首要咱们要在主题文件中找到负责登录的表单代码,每一个主题的登录表单名叫作和位置可能会不同样通常状况下文件的名叫作都含有login,找到后用编辑器打开文件搜索 type="password" ,这个是秘码输入框,在这段代码下方咱们添加下面代码:

/** * 添加验证码表示及输入框 * @Author Jackie * @Author url https://www.themeke.com */ //input 验证码输入字段,设置属性 name="code" <input class="captcha-input" type="text" name="code" placeholder="验证码" autocomplete="off"/> //创建并表示验证码照片 <img src="<?php bloginfo("template_url");?>/captcha.php?<?php echo rand();?>" class="captcha-code" title="看不清,点击换一张"/>

后端校验验证码

注册或登录表单通常是以form表单POST数据,后端验证登录操作代码部分通常包括wp_signon()函数,能够经过编辑器代码搜索找此函数位置,咱们这儿以Verdure主题为例,其他主题类推。

咱们在验证登录的代码部分添加以下验证验证码的代码:

/** * 验证码提交验证 * @Author Jackie * @Author url https://www.themeke.com */ session_start(); // 经过POST过来的验证码对比session存储的captcha_code_char键值来判断 if(empty($_POST[code]) || empty($_SESSION[captcha_code_char]) || trim(strtolower($_POST[code])) != $_SESSION[captcha_code_char]){ echo 验证码不正确; //返回数据按照实质状况修改 exit(); }

以上便是怎样在WordPress主题自定义注册或登录表单中添加字符照片验证码多办法这儿仅作规律办法讲解,按照实质运用的主题区别,以上代码部分可能需要修改以适配主题,css美化部分这儿就不说了,自己美化一下就能够了。





上一篇:蓝迪国际智库圆满主办横琴世界湾区论坛・金融主题论坛
下一篇:怎么样购买和绑定Hostinger?
回复

使用道具 举报

2940

主题

3万

回帖

9997万

积分

论坛元老

Rank: 8Rank: 8

积分
99979445
发表于 2024-10-23 20:40:24 | 显示全部楼层
对于这个问题,我有不同的看法...
回复

使用道具 举报

3063

主题

3万

回帖

9915万

积分

论坛元老

Rank: 8Rank: 8

积分
99158952
发表于 2024-11-2 23:49:39 | 显示全部楼层
你的话语如春风拂面,让我感到无比温暖。
回复

使用道具 举报

3053

主题

3万

回帖

9913万

积分

论坛元老

Rank: 8Rank: 8

积分
99139078
发表于 4 天前 | 显示全部楼层
谷歌外链发布 http://www.fok120.com/
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

站点统计|Archiver|手机版|小黑屋|外链论坛 ( 非经营性网站 )|网站地图

GMT+8, 2024-11-18 01:39 , Processed in 0.167694 second(s), 21 queries .

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.