phpcmsv9自定义表单如何添加验证码功能

发布时间:2020-04-12 10:02:40 来源:青锋建站 作者:青锋建站
  默认的PHPCMS V9虽然提供了自定义表单的一些控制功能,例如限制提交时间,限制注册后可以提供,当然也可以限制同一IP多交提交,但是没有自动添加验证码,需要我们人工来添加。让PHPCMS使用表单验证码可以防止机器发送大量的垃圾表单,以下是青锋建站给大家分享的如何给PHPCMS表单向导(自定义表单)添加验证码功能。
  给PHPCMS自定义表单添加验证码的思路是前台表单显示验证码,后台提交表单时进行验证码的校验即可以。

前台PHPCMS自定义表单显示验证码

  这里我们添加一个验证码输入框,一个图片用来转入验证码,再有就是提交按钮,注意提交按钮的name属于必须是name="dosubmit",因为后端是根据这个来提取表单的,通过添加以下代码就可以显示验证码。
<input class="bg-transparent text-white border pl-2" type="text"  placeholder="Check code" name="checkcode"/>
<img id="vdimgck" align="absmiddle" onclick='this.src=this.src+"&"+Math.random()' style="cursor: pointer;" alt="Can't you see clearly? Click replace" src='{APP_PATH}api.php?op=checkcode&code_len=4&font_size=20&width=130&height=50&font_color=&background=' /><br>
<input type="submit" value="Submit" name="dosubmit" class="btn bg-main text-white p-1 my-3" />

后台校验验证码

  在PHPCMS后台校验验证码必须开启session,然后将提交的验证码和session中的验证码进行比较即可。
在\phpcms\modules\formguide\index.php中index类上面添加两行来加载session,
$session_storage = 'session_'.pc_base::load_config('system','session_storage');
pc_base::load_sys_class($session_storage);

在大约63行添加验证码的校验,在if (isset($_POST['dosubmit'])) {后面添加以下代码:
if ($_SESSION['code']!=strtolower(new_addslashes($_POST['checkcode']))) {
      showmessage(L('checkcode is wrong'), HTTP_REFERER);
}

表示验证码错误后跳转到先前页面。
  青锋建站承接phpcms网站建设服务,包括phpcms二次开发,phpcms模板开发服务。青锋建站,提供专业的高品质网站制作服务,包括网站建设,SEO,网络营销,PHP开发,网站建设知名品牌,全国接单,为企业构建强有力的营销平台。
分享到:

Copyright © 2016-2026 青锋建站 版权所有