亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

為什么我生成的驗證碼,始終不是4位驗證碼,求解!

<?php

/*** 驗證碼 ***/

require_once'string.func.php';

//通過GD庫做驗證碼

function verifyImage($type=1, $length=4, $pixel=0, $line=0, $sess_name="verify"){

? ? session_start();

? ? //1. 創建畫布

? ? $width = 80;

? ? $height = 28;

? ? $image = imagecreatetruecolor($width, $height);

? ? $white = imagecolorallocate($image, 255 ,255 ,255);//白色填充畫布

? ? $black = imagecolorallocate($image, 0, 0, 0);

?

? ? //2. 用填充矩形填充畫布

? ? imagefilledrectangle($image, 1, 1, $width-2, $height-2, $white);

?

? ? //3. 獲取隨機驗證碼

? ? $chars = buildRandomString($type, $length);

?

? ? //4. 保存到session

? ? $_SESSION[$sess_name] = $chars;

?

? ? $fontfiles = array(

? ? ? ? ? ? ? ? ? ? "CONSTANI.TTF",

? ? ? ? ? ? ? ? ? ? "simfang.ttf",

? ? ? ? ? ? ? ? ? ? "simhei.ttf",

? ? ? ? ? ? ? ? ? ? "simkai.ttf",

? ? ? ? ? ? ? ? ? ? "simsun.ttc",

? ? ? ? ? ? ? ? ? ? "FZLTCXHJW.TTF", ? ? ? ? ? ? ? ?

? ? ? ? ? ? ? ? );

? ? //5. 生成驗證碼

? ? 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);

? ? }

?

? ? //6. 干擾點

? ? if($pixel){

? ? ? ? for($i=0; $i<50; $i++){

? ? ? ? ? ? imagesetpixel($image, mt_rand(0, $width-1), mt_rand(0, $height-1), $black);

? ? ? ? }

? ? }

?

? ? //7. 干擾線

? ? 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);

? ? ? ? }

? ? }


? ? ob_clean();

? ? //8. 輸出到服務端

? ? header("content-type:image/gif");// 輸出圖片類型

? ? imagegif($image);

? ? imagedestroy($image);// 銷毀圖片內存

? ? ?

}

//verifyImage();


正在回答

1 回答

字體的原因,在我的機子上,更換字體路徑和$fontfiles數組內容后,顯示正常

0 回復 有任何疑惑可以回復我~
#1

caidick 提問者

非常感謝!換過字體解決了。
2016-10-26 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消
手把手教你實現電商網站后臺開發
  • 參與學習       117255    人
  • 解答問題       2101    個

手把手教你用PHP搭建電子商務平臺,由淺入深教你搭建電商系統

進入課程

為什么我生成的驗證碼,始終不是4位驗證碼,求解!

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號