PHP菜鸟博客_共同学习分享PHP技术心得【PHP爱好者】
thinkphp5一个页面上面有多个图形验证码实现写法
2022-4-9 菜鸟站长


模板的页面:








    <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这个函数的校验识别,后端函数校验的时候也需要传入一个标识码,和生成函数标示码对应上就能验证通过的。





发表评论:
昵称

邮件地址 (选填)

个人主页 (选填)

内容