最近刚刚开始学习yii框架使用,真心的这个框架提供了很多简便的方法,但是自身bug和不足的地方太多了,首先验证码就存在很多的问题,用了好几天时间阅读源代码加上网上搜寻,终于是解决的验证码的问题,
1,验证码不显示:
首先保证你的controler 里面的captcha方法是可访问的,被分配的权限的,这个在rule里面设置。
第二,保证你的PHP GD插件已经被启用,
第三如果这样还是不显示,那么试试看这个方法吧,别人告诉我的。
解决方法:先找到yii\framework\web\widgets\captcha\CCaptchaAction.php,可以尝试通过以下几种方法来解决 :
1 尽量删除文中的空格
2 在php文件顶部加入error_reporting(0);
3 在header输出前加入ob_clean(); 也就是:
ob_clean();//加上这行
header('Pragma: public');
header('Expires: 0');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Content-Transfer-Encoding: binary');
header("Content-type: image/png");
imagepng($image);
imagedestroy($image);
header('Pragma: public');
header('Expires: 0');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Content-Transfer-Encoding: binary');
header("Content-type: image/png");
imagepng($image);
imagedestroy($image);