这一课很多人无法刷出验证码!然后我自己看了这一课的问答发现很多人都没有仔细检查自己写的代码
这一课的问答发现很多人都没有仔细检查自己写的代码,只要根据老师的代码慢慢的敲是不会有刷不出验证码的,还有老师所说的“你看看是不是有输出,有任何输出都不可以或者你配置PHP配置文件,先把error_reporting=E_ALL&~E_NOTICE第二开启output_buffering=4096,之后重启服务器试试”
PS: 这一课很多人粗心大意没有仔细检查自己写的代码很老师的代码所以才出现这些验证无法显示的问题,在这里我把我的代码作为参考。你们可以用文本对比的软件对比我的代码,我一般用这个在线文本对比网站比较简单是国外的网站!(我不知道慕课网可不可粘贴其他网站的网址所以@代表.diffnow @ com 把@换成.就可以访问这个在线文本对比网站下面我把这网站的截图上传给你们看看使用很简单的 然后我把我的代码在图片下面粘贴 你们可以拿来和你的代码最为参考 我的代码是完全可以刷出验证码的也就是跟老师一模一样代码只要你不对代码做修改都是一样的!) 网址@代表. diffnow @ com 把@换成.
<?php require_once 'string.func.php'; //通过GD库做验证码 //创建画布 $width=80; $height=28; $image=imagecreatetruecolor($width,$height); $white=imagecolorallocate($image,255,255,255); $black=imagecolorallocate($image,0,0,0); // 用填充矩形填充画布 imagefilledrectangle($image,1,1,$width-2,$height-2,$white); $type=1; $length=4; $chars=buildRandomString($type,$length); $sess_name="varify"; $_SESSION[$sess_name]=$chars; $fontfiles=array("MSYH.TTF","MSYHBD.TTF","SIMHEI.TTF","SIMKAI.TTF","SIMSUN.TTC"); for($i=0;$i<$length;$i++) { $size=mt_rand(14,18); $angle=mt_rand(-15,15); $x=5+$i*$size; $y=mt_rand(20,26); $fontfile="../fonts/".$fontfiles[mt_rand(0,count($fontfiles)-1)]; $text=substr($chars,$i,1); $color=imagecolorallocate($image,mt_rand(50,90),mt_rand(80,200),mt_rand(90,180)); imagettftext($image,$size,$angle,$x,$y,$color,$fontfile,$text); } header("content-type:image/gif"); imagegif($image); imagedestroy($image);
PS: 这些都是全手工敲的,所以语句牛头不对马嘴的请见谅。如果上述有什么错误请多多指教!