課程
/后端開發
/PHP
/手把手教你實現電商網站后臺開發
為什么單獨測試驗證碼就可以,加到登錄頁面后就成破裂的小圖片了。
2016-08-12
源自:手把手教你實現電商網站后臺開發 2-1
正在回答
引入路徑有問題,我也碰到了,我把string.func.php引入到image.func.php就好了
慕粉4027178 提問者
我引入了string.func.php但是圖片還是碎的。我把session開啟了就好了
<?php
require_once 'string.func.php';
// 通過GD庫做驗證碼
function verifyImage($type = 3,$length = 4,$pixel = 50,$line = 8,$sess_name = "verify") {
// 創建畫布
$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 = buildRandomString ( $type, $length );
$_SESSION [$sess_name] = $chars;
$fontfiles = array (
"MSYHBD.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 )];
$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 ++) {
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();
header ( "content-type:image/gif" );
imagegif ( $image );
imagedestroy ( $image );
verifyImage();
凱爾特人and巴塞羅那
舉報
手把手教你用PHP搭建電子商務平臺,由淺入深教你搭建電商系統
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯系客服咨詢優惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號
2016-08-14
引入路徑有問題,我也碰到了,我把string.func.php引入到image.func.php就好了
2016-10-16
我引入了string.func.php但是圖片還是碎的。我把session開啟了就好了
2016-08-14
<?php
require_once 'string.func.php';
// 通過GD庫做驗證碼
function verifyImage($type = 3,$length = 4,$pixel = 50,$line = 8,$sess_name = "verify") {
// 創建畫布
$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 = buildRandomString ( $type, $length );
$_SESSION [$sess_name] = $chars;
$fontfiles = array (
"MSYHBD.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 )];
$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 );
}
}
ob_clean();
header ( "content-type:image/gif" );
imagegif ( $image );
imagedestroy ( $image );
}
verifyImage();