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

发表评论

电子邮件地址不会被公开。 必填项已用*标注