创新路
我们一直在努力

ThinkPHP生成的验证码不显示问题解决

问题:TP程序在本地测试一切正常,然后上传到服务器环境登陆后台发现验证码无法显示。

经验告诉我们可能是tmp临时或者网站目录权限不对造成,但tp程序特殊,有的是二次开发的,类库和调用的方式不一样。

解决方法:在调用验证码之前加上 ob_clean();

文件位置:Home\Lib\Action\PublicAction.class.php

不显示验证码的代码:

  1. public function verify(){

  2.                 $verify = new \Think\Verify();

  3.                 $verify->entry();

  4.         }

修改为:

  1. public function verify(){

  2.                 ob_clean();

  3.                 $verify = new \Think\Verify();

  4.                 $verify->entry();

  5.         }

或者更高版本tp代码的

public function verify() {

ob_clean();

import('ORG.Util.Image');

Image::buildImageVerify('4','3','png','84','38','verify');

}

这样的话,保存再刷新一次,验证码就出现了(无需修改任何服务器配置和重启操作)

分析:
1、ob_clean这个函数的作用:
用来丢弃输出缓冲区中的内容,如果你的网站有许多生成的图片类文件,那么想要访问正确,就要经常清除缓冲区
2、在出现问题的页面查看源代码,发现在页面尾部出现了一堆其他代码(原因不明,应该是tp程序运行在windows服务器上的某种依赖库或者权限不对造成的)

未经允许不得转载:天府数据港官方信息博客 » ThinkPHP生成的验证码不显示问题解决

客官点个赞呗! (1)
分享到:

评论 抢沙发

评论前必须登录!

天府云博 - 做有态度的开发&运维&设计学习分享平台!

联系我们百度云主机