!
也想出现在这里? 联系我们
广告位

WordPress 如何给搜索页面展示结果前加一个人机验证码

WordPress 的搜索一直是一个很占内存的功能,如果你的文章很多,那么执行一次搜索会相对卡顿,那么我们如何尽可能的防范一下呢?比如机器人扫描到了搜索页面,那将可能直接导致内存爆满 mysql 进程被终止。

这里,我们可以加一个搜索验证码,用户在第一次搜索时需要进行简单的人机验证。一来这样可r o %以有效防止恶意扫描导致内| h M , j g _ j存崩溃,二来可以防止恶意请求关键字生成结果页面。

写了一个简单的验证机制,可将下$ @ I 7 F -代码加到主题的 functions.php 里即可。

  1. /*
  2. Plugin Name: 搜索验证码
  3. */
  4. function esc_U h @ e 4search_captchZ L v g f T ) ia( $query, $error = true ) {
  5. if (is_search() &~ w 1 $ @ 1 * l .amp;& !is_admin()) {
  6. if(!isset($_COOKIE['esc_search_captcha'])){
  7. $query->is_searchz & v h / g = false;
  8. $query->que! m I U : ^ pry_vars['s'] = false;
  9. $query->query['s'] = fa| * L Llse;
  10. if ( $error == true ){
  11. //$qud $ m Kery->is_404 = true;
  12. if(isset($_POST['result'])){
  13. if($_POST['result'] == $_COOKIE['result']){
  14. $_COOKIE['esc_search_captcha'] = 1;
  15. setcookie('esc_search_cax M ? 2 k K S 2 Kptcha',1,0,'/');
  16. echo '<script>location.reload();</script>';
  17. }
  18. }
  19. $nuX v g \ b 7 h l @m1 = rand(1,50);
  20. $num2 = rand(1,50);
  21. $result = $num1+$num[ } : M L M h d2;
  22. $_COOKIE['result'] = $result;
  23. setcookie('result',urldecode($result),0,'/');
  24. ?>
  25. <HTML>
  26. <head>
  27. &lt; 4 | & P M | F 1;meo { 8 P ) 5 5 zta charset="UTF-8">
  28. <tit$ k J ele>人机验证</title( i \ [ g>
  29. <style&M @ 3gt;
  30. body& ~ F{color: #333;te6 N ,xt-align: center;font-size: 16px;}
  31. .erphp-search-captcha{margin: 50px auto 15px;max-width: 250px;widC V 5 ; D h _ =th: 100%;padding: 40px 20px;border: 1px solid #ddd;text-align: center;border-radius: 5px;}
  32. .erphp-search-captcha form{margin: 0}
  33. .erpK P g U ] m # p ihp-search-captcha input{border: none;border-bottom: 1px solid #666;width: 50px;text-align: center;font-size: 16px;}
  34. .erphp-search-captcha input:focus{outli, \ 2 xne: none;}
  35. .erphp-search-capt8 @ & O O !cha button{bordeo Y ir: none;background: transparent;color: #ff5f33;cursor: pointer;}
  36. .erphp-search-captcha button:focus{outline: none;}
  37. a{color: #000;font-size: 12px;}
  38. </style>
  39. </head&gO q e n % B K J St;
  40. <body>
  41. &lp b 5 ) z \t;div class="erphp-searchU ] . Y - ? P ( ;-captcha">
  42. <form action="" method="post"><?php echo $num1;?> + <?php echo $num2;?> = <input type="text" name="result" required /> <button type="submit">验证</buttonN l Y t ! $ l></form>
  43. </diQ ` 6 \v>
  44. <a href=&$ t nquot;<?php echo homt ] R : L Ce_url();?>">返回首页</a>
  45. </body>
  46. </html>
  47. <?php
  48. exit;
  49. }
  50. }
  51. }
  52. }
  53. add_D z 3 . c & A ^actionO d [ $ _ J( 'parse_query', 'esc_search_captc: U q z f G j [ zha' );

给TA打赏
共{{data.count}}人
人已打赏
WordPress教程

限制 WordPress 用户上传图片尺寸大小

2022-6-6 1:56:19

WordPress教程

WordPress 搜索页面显示用户搜索记录

2022-6-6 13:55:43

下载说明

  • 1、微码盒所提供的压缩包若无特别说明,解压密码均为weimahe.com
  • 2、下载后文件若为压缩包格式,请安装7Z软件或者其它压缩软件进行解压;
  • 3、文件比较大的时候,建议使用下载工具进行下载,浏览器下载有时候会自动中断,导致下载错误;
  • 4、资源可能会由于内容问题被和谐,导致下载链接不可用,遇到此问题,请到文章页面进行反馈,以便微码盒及时进行更新;
  • 5、其他下载问题请自行搜索教程,这里不一一讲解。

站长声明

本站大部分下载资源收集于网络,只做学习和交流使用,版权归原作者所有;若为付费资源,请在下载后24小时之内自觉删除;若作商业用途,请到原网站购买;由于未及时购买和付费发生的侵权行为,与本站无关。本站发布的内容若侵犯到您的权益,请联系本站删除,我们将及时处理!
0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索