<?php
????/**
?????*?Created?by?PhpStorm.
?????*?User:?Administrator
?????*?Date:?2019/10/28
?????*?Time:?13:29
?????*/
?????
?????//image.func.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?=?"verify";
????$fontfiles?=?array("dutch.ttf","dutchb.ttf","dutchbi.ttf","dutcheb.ttf","dutchi.ttf","tt0524m_.ttf","tt0586m_.ttf","tt1018m_.ttf");
????$_SESSION[$sess_name]?=?$chars;
????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,$fontfiles)-1];
????????$color?=?$imagecolorallocate($image,mt_rand(50,90),mt_rand(80,200),mt_rand(90,180));
????????$text?=?substr($chars,$i,1);
????????imagettftext($image,$size,$angle,$x,$y,$color,$fontfile,$text);
????}
????header("content-type:image/gif");
????imagegif($image);
????imagedestroy($image);
//string.func.php
<?php
????/**
?????*?Created?by?PhpStorm.
?????*?User:?Administrator
?????*?Date:?2019/10/28
?????*?Time:?13:29
?????*/
????//生成隨機字符串
????function?buildRandomString($type?=?1,$length?=?4){
????????if($type?==?1){
????????????$chars?=?join("",range(0,9));
????????}elseif($type?==?2){
????????????$chars?=?join("",array_merge(range("a","z"),range("A","Z")));
????????}elseif($type?==?3){
????????????$chars?=?join("",array_merge(range("a","z"),range("A","Z"),range(0,9)));
????????}
????????if($length>strlen($chars)){
????????????exit("字符串長度不夠");
????????}
????????$chars?=?str_shuffle($chars);
???????return?substr($chars,0,$length);
????}
2019-11-04
2019-10-31
謝謝,這個問題已解決,現在遇到的問題是把引入文件全部寫入include.php中在其他文件中引入這個包含include.php文件失效 :
include.php
2019-10-31
你的length和type注釋掉了