WordPress用户注册增加验证码禁止机器注册

前面说了使用接口验证邮箱地址的真实性,险些可以清扫90%以上的错误邮箱地址注册。然则有个欠好的地方就是,这个接口也不能保证100%准确,仍然会有一部门的邮箱注册时会发生错误,这个概率相当的低。为了防止泛起正常邮箱无法验证的情形,这里提供一种传统验证方式,增添验证码清扫机械注册。老礼貌,照样用大前端DUX主题为例,没设施,dux的结构清晰,我也对照熟悉,用户也挺多。这个教程也适用于其它的WordPress主题,然则需要领会主题结构,别问我该写在哪儿,我也不知道。
WordPress用户注册增加验证码禁止机器注册
首先看使用PHP的GD库天生验证码的代码:

  1. <?php
  2. /**
  3.  * 字母+数字的验证码天生
  4.  */
  5. // 开启session
  6. session_start();
  7. //确立画布
  8. $image = imagecreatetruecolor(100, 30);
  9. //为画布界说(靠山)颜色
  10. $bgcolor = imagecolorallocate($image, 255, 255, 255);
  11. //填充颜色
  12. imagefill($image, 0, 0, $bgcolor);
  13. //设置验证码内容
  14. //界说验证码的内容
  15. $content = "ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnpqrstuvwxyz23456789";
  16. //确立一个变量存储发生的验证码数据,便于用户提交核对
  17. $captcha = "";
  18. for ($i = 0; $i < 4; $i++) {
  19.     // 字体巨细
  20.     $fontsize = 10;
  21.     // 字体颜色
  22.     $fontcolor = imagecolorallocate($image, mt_rand(0, 120), mt_rand(0, 120), mt_rand(0, 120));
  23.     // 设置字体内容
  24.     $fontcontent = substr($content, mt_rand(0, strlen($content)), 1);
  25.     $captcha .= $fontcontent;
  26.     // 显示的坐标
  27.     $x = ($i * 100 / 4) + mt_rand(5, 10);
  28.     $y = mt_rand(5, 10);
  29.     // 填充内容到画布中
  30.     imagestring($image, $fontsize, $x, $y, $fontcontent, $fontcolor);
  31. }
  32. $_SESSION["captcha"] = $captcha;
  33.  
  34. //向浏览器输出图片头信息
  35. header('content-type:image/png');
  36. //输出图片到浏览器
  37. imagepng($image);
  38. //销毁图片
  39. imagedestroy($image); 
  40. ?>

简朴说一下,这里我使用的验证码靠山是白色靠山,以是验证码的字体颜色应该阻止泛起靠近255的数值(白色),以免看不见验证码。另有就是验证码应该只管阻止泛起0与o,l与1等相似字符。

修改注册表单

dux的注册表单在主问题录下的js文件的signpop.js文件中,我们为注册表单新增一项验证码,新增HTML如下:

  1. <h6>\
  2.     <label for="inputEmail2"">验证码</label>\
  3.     <div>\
  4.     <input style="width: 190px;display: inline;" type="text" name="captcha" class="form-control" id="captcha" placeholder="验证码">\
  5.     <img src="1.php"  onclick="this.src=\'1.php?\'+new Date().getTime();" width="100" height="30">\
  6.     </div>\
  7. </h6>\

其中1.php就是上面的验证码天生文件的网络地址,你可以自由命名。然后在dux的注册接口中新增一项验证验证码是否准确的判断,接口文件在action文件夹下的log.php文件中,代码如下:

  1. session_start();
  2. $captcha      = ( isset($_POST['captcha']) ) ? trim($_POST['captcha']) : null;
  3. if(strtolower($_SESSION["captcha"]) == strtolower($captcha)){
  4.         $_SESSION["captcha"] = "";
  5. }else{
  6. 	print_r(json_encode(array('error'=>1, 'msg'=>'验证码错误')));  
  7. 	exit();
  8. }

这段验证代码应该写在signup注册动作中,建议写在上岸验证后面。到此为dux主题用户注册新增验证码验证的教程就竣事了,主要使用了GD库天生图片以及PHP的session存储验证码信息,需要的可以加上哟。上面的验证码,我只做了简朴处置,没有加靠山滋扰与滋扰线等,需要的可以加上,代码如下:

  1. //设置靠山滋扰元素
  2. for ($$i = 0; $i < 200; $i++) {
  3.     $pointcolor = imagecolorallocate($image, mt_rand(50, 200), mt_rand(50, 200), mt_rand(50, 200));
  4.     imagesetpixel($image, mt_rand(1, 99), mt_rand(1, 29), $pointcolor);
  5. }
  6.  
  7. //设置滋扰线
  8. for ($i = 0; $i < 3; $i++) {
  9.     $linecolor = imagecolorallocate($image, mt_rand(50, 200), mt_rand(50, 200), mt_rand(50, 200));
  10.     imageline($image, mt_rand(1, 99), mt_rand(1, 29), mt_rand(1, 99), mt_rand(1, 29), $linecolor);
  11. }

这段代码,放在上面天生验证码图片的代码中,$_SESSION[“captcha”] = $captcha;这句代码之后即可。

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

1. 本站所有资源来源于用户上传和网络,因此不包含技术服务请大家谅解!如有侵权请邮件联系客服!3308869544
2. 本站不保证所提供下载的资源的准确性、安全性和完整性,资源仅供下载学习之用!如有链接无法下载、失效或广告,请联系客服处理,有奖励!
3. 您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容资源!如用于商业或者非法用途,与本站无关,一切后果请用户自负!
4. 如果您也有好的资源或教程,您可以投稿发布,成功分享后有猫币奖励和额外收入!

主题镇 WP教程 WordPress用户注册增加验证码禁止机器注册 https://zhutizhen.com/14587.html

永远为用户服务的镇长!

常见问题
  • 本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。
查看详情
  • 最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或联络我们。
查看详情

相关文章