|
- 验证码不显示根据我php经验分析
- 、先确保是否开启了 gd库
- 2、页面是否存在bom头
- 3、导入的ORG.Util.Image是否存在
- 4、入口文件中是否有define(‘APP_DEBUG’, TRUE); //是否开启调试模式,上线时请改为false ?这句(注:很关键作者就犯了这个错误折腾了老半天才找到)。
- 后来到了官方
- 根据这里的入门教程,我都检查了,GD是开着的,2.Image类库以及String类库导入也正确,通过output($im, $type='png', $filename='c:\verify.png') 这里给filename赋值后在C盘下是有verify.png图片保存,图片也正常显示,那就是3.验证码输出之前是否有任何的其他输出了,我把相关的页面都使用dreamware打开查看过,也都是正常了吧,可现在就是网页上验证码还是红叉叉
- 官方说
- title="{$Think.lang.refresh_verify_code}" class="verify_img" src="{:U('logo/code', array('t'=>time()))}" /> code方法就返回的是这个img对象 的数据流,会自动解析出来图片的,但此方法还是解决不了我的问题。
- 后来再接着百度,找到一文章
- ThinkPHP自带验证码的函数类,存放路径为:ThinkPHP/Lib/ORG/Util/验证码类
- 使用的时候只需在Index控制器中引入,方法如下:
- 代码如下 复制代码
- public function verify() {
- import ( "ORG.Util.Image" );
- Image::buildImageVerify ( 4 );
- }
- 在模板页面中调用方法如下:
- 代码如下 复制代码
- <img id="verifyImg" src="/Wen/verify/" />
-
- if ($_SESSION['verify'] != md5($_POST['verify'])){
- $this->error('验证码错误!');
- }
- Thinkphp验证码不显示图片最后发现时由于编码问题引起的,格式转换无UTF-8无DOM时,久违的验证码终于出现了。
复制代码 |
|