php app图片验证码错误,thinkphp 图形验证码 小程序中使用,总是验证失败(sessionid设置)...

前端同事在开发接口中,在注册页面,使用图形验证码时,图形验证一直没通过,但是APP验证没问题所有跑过来问我原因。一开始我以为是她代码的问题,于是,自已在本地测试了下,发现也不行。只能一步步排

1,首先,图形验证码是用的TP的captcha,APP有使用过,代码应该没有问题,那就只能找差异,首先想到的是SESSION。因为验证值是加密存到SESSION中

小程序设置相关代码如下if (session_id != "" && session_id != null) {

var header = { 'content-type': 'application/x-www-form-urlencoded', 'Cookie': 'PHPSESSID=' + session_id }

} else {

var header = { 'content-type': 'application/x-www-form-urlencoded' }

}

然后把header加到请求头中

2,加完以后发现,在API请求中,SESSION数据打印没问题,但是在captcha图相生成中SESSION并没有生效。没有数据打印,后面发现,图形验证码的地址为https://xxx.cn/api.php/captcha/729765.html?也就是直的网页另外再写的图片,会不会是这块,没有用到我HEDER头中的SESSION?

改造后代码 PHP:$sessionId = session_id();##当前的SESSION,返出去让前端保存,方便拿后面的数据和数据比对

returnJson(0,'',['captcha'=>captcha_src($id).'?'.$id.'&sessionId='.$sessionId,'sessionId'=>$sessionId]);##把参数传到图片生成类##图片生成类成加入,使用当前的SESSID

if(input('sessionId')) session_id(input('sessionId'));

$captcha = new Captcha((array)Config::get('captcha'));

return $captcha->entry($id);

解决,如果你有其它更好的方法,欢迎留言

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值