很多用phpcms做网站的朋友,是不是想加个短信验证防灌水防恶意注册,找了半天教程都是东拼西凑不对味?我之前折腾大半天踩了好几个坑,今天把全流程给你捋得明明白白。
别上来就瞎改代码,得先把要用的东西备齐。phpcms本身不带短信发送能力,得接第三方正规短信平台的接口对吧?
你先去阿里云短信、腾讯云短信这种大平台开服务,申请好短信签名和对应用途的短信模板,等平台审核通过后,拿到给你的AppKey、AppSecret、模板ID三个参数,找个地方记下来,别搞丢了,等下全要用上。
登录你phpcms的网站后台,进去之后点「模块」,找到「会员模块」,毕竟短信验证大多用在注册、找回密码这些会员场景,全在这儿管着。
打开会员模块的「模块配置」,往下拉到底就能看到短信验证的设置栏,不用找别的地方,就这儿。
把你刚才记下来的三个参数,对应填进输入框里,我跟你说,我当初就是模板ID填错一位数,死活发不出短信,折腾俩小时才发现,这个坑你可别踩。
填完之后,勾选你要开启短信验证的场景,比如用户注册、找回密码、修改绑定手机号,按需开就行,开完直接保存配置。

后台开了功能没用,前端页面得加验证码输入框和获取按钮对吧?其实就是加几行代码的事儿,新手也能抄。
找到你当前主题的注册模板文件,路径一般是phpcms/templates/你的模板名称/member/register.html,找到密码输入框的位置,加上这段代码:
接下来给获取按钮加点击事件,调用phpcms自带的接口发请求就行,直接抄这段代码改:
``` $('getSmscode').on('click', function () { let phone = $('input[name="phone"]').val(); if (!phone) { alert('请先填写绑定的手机号'); return; } let $btn = $(this); $.getJSON('index.php?m=member&c=index&a=get_smscode', { phone: phone }, function (res) { if (res.code === 0) { alert('验证码发送成功,请注意查收'); // 倒计时防止重复点击 let second = 60; $btn.html(`${second}秒后重发`).attr('disabled', true); let timer = setInterval(() => { second--; $btn.html(`${second}秒后重发`); if (second <= 0) { clearInterval(timer); $btn.html('获取验证码').attr('disabled', false); } }, 1000); } else { alert(res.msg); } }) }) ```这里提醒一句,你页面上手机号输入框的name属性,一定要和代码里的对应,不然拿不到手机号肯定发不出来。
全部改完别直接上线,一定要先测试一遍。填个手机号点获取,能收到就是成了,收不到就顺着这几点查:
说白了,百分之九十九的问题都出在这三个地方,我当初就是模板还在审核就急着测试,瞎改了一下午代码,现在想起来都好笑。
其实这事儿吧,真没网上说的那么复杂,phpcms已经把核心逻辑做好了,你只要接对接口改个前端,新手半小时也能搞定,按这个步骤走,保准一次成。
易频IT社区是综合性互联网IT技术门户网站,专注分享网络技术、服务器运维、网络安全、编程开发、系统架构、云计算、大数据等行业干货,实时更新IT行业资讯、零基础教程、实战案例,为IT从业者、技术爱好者提供专业的学习交流平台。
Copyright © 2021-2026 易频IT社区. All Rights Reserved. 备案号:闽ICP备2023013482号 网站地图