我的驗證碼外面怎么全是黑的,麻煩幫忙看下
require_once 'string.func.php';
// 通過GD庫做驗證碼
// 創建畫布
function verifyImage($type = 1, $length = 4, $pixel = 0, $line = 0, $sess_name = "verify")
{
??? session_start();
??? $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);
??? $chars = buildRandoString($type, $length);
??? $_SESSION[$sess_name] = $chars;
??? $fontfiles = array(
??????? "MSYH.TTF",
??????? "MSYHBD.TTF",
??????? "SIMLI.TTF",
??????? "SIMYOU.TTF",
??????? "SIMSUN.TTF",
??????? "STHUPO.TTF"
??? );
??? 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)];
??????? $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);
??? }
?? ?
??? if ($pixel) {
??????? for ($i = 0; $i < 50; $i ++) {
??????????? imagesetpixel($image, mt_rand(0, $width - 1), mt_rand(0, $height - 1), $black);
??????? }
??? }
??? if ($line) {
??????? for ($i = 1; $i < $line; $i ++) {
??????????? $color = imagecolorallocate($image, mt_rand(50, 90), mt_rand(80, 200), mt_rand(90, 180));
??????????? imageline($image, mt_rand(0, $width - 1), mt_rand(0, $height - 1), mt_rand(0, $width - 1), mt_rand(0, $height - 1), $color);
??????? }
??? }
??? header("content-type:image/gif");
??? imagegif($image);
??? imagedestroy($image);
}
verifyImage(2, 4, 60, 10);
2017-03-19
每個瀏覽器顯示效果不一樣,換個瀏覽器試試,我在谷歌上顯示跟你一樣,Microsoft?edge里運行跟老師的一樣
2017-03-26
我也是,谷歌,火狐瀏覽器都黑了,只有ie正常