thinkphp5一个页面上面有多个图形验证码实现写法
模板的页面:
<div class="layui-tab-content dingp">
<div id="login0" class="ding">
<div class="login-phone">
<input name="phone0" placeholder="请输入手机号" type="text">
</input>
</div>
<div class="login-phone">
<input name="password0" placeholder="请输入密码" type="password">
</input>
</div>
<div class="proving">
<input name="img_code0" placeholder="请输入图片验证码" type="text">
<img link="imgcode" style="cursor:pointer;" src="{:captcha_src('login0')}" width="100" height="43" title="看不清楚?点击刷新"
onclick="this.src = '{:captcha_src('login0')}?'">
</input>
</div>
</div>
<div id="login1" class="ding">
<div class="login-phone">
<input name="phone1" placeholder="请输入手机号" type="text">
</input>
</div>
<div class="login-phone">
<input name="img_code1" style="width: 14rem" placeholder="请输入图片验证码" type="text">
<img link="imgcode" style="cursor:pointer;" src="{:captcha_src('login1')}" width="100" height="43" title="看不清楚?点击刷新"
onclick="this.src = '{:captcha_src('login1')}?'">
</input>
</div>
<div class="proving ">
<input name="sms_code1" placeholder="请输入短信验证码" type="text">
<input link="getcode" type="button" value="获取验证码">
</input>
</input>
</div>
</div>
服务端验证的php代码:
//首先验证码校验
if (!captcha_check($img_code, "login0")) {
$rt['sta'] = 0;
$rt['msg'] = "图片验证码校验失败!";
echo json_encode($rt);
die;
}
//首先验证码校验
if (!captcha_check($img_code, "login1")) {
$rt['sta'] = 0;
$rt['msg'] = "图片验证码校验失败!";
echo json_encode($rt);
die;
}
实现方案就是captcha_src('login0') 生成验证码的时候传入一个标示码,这里需要注意 看不清楚,点击刷新验证码的时候后面不要拼接日期参数比如:
onclick="this.src = '{:captcha_src('login0')}?'+new Date().getTime()",这样会影响后端captcha_check这个函数的校验识别,后端函数校验的时候也需要传入一个标识码,和生成函数标示码对应上就能验证通过的。
版权声明:若无特殊注明,本文皆为《菜鸟站长》原创,转载请保留文章出处。
本文链接:thinkphp5一个页面上面有多个图形验证码实现写法 - https://wlphp.com/?post=338