給的答案的PHP文件驗證碼怎么運行不出來啊?
image.func.php
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 = buildRandomString ( $type, $length );
? ? $_SESSION [$sess_name] = $chars;
? ? //$fontfiles = array ("SIMYOU.TTF");
? ? $fontfiles = array ("SIMYOU.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 );
? ? }
string.func.php
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 );
}
2016-05-30
驗證碼出不來,還是include.php引入的問題,改成../lib/image.func.php就可以出來;但是同樣又有一個問題,在哪里引入../include.php都不起作用,總是contains error php報錯,一直沒找到原因
2015-08-23
首先代碼是沒有問題的,本人運行了下是可以的,如圖:
驗證碼空白我猜測是如下原因:
1·字體路徑,可能性較小,字體路徑錯誤會報錯的
2·這個生成驗證的方法一時疏忽沒有調用(方法沒調用,當然啥都沒有了,可能性較大);
在生成的地方調用一下試試:verifyImage();
2015-08-22
驗證碼空白 換瀏覽器也一樣呀
2015-08-22
一樣的問題?
運行沒有錯誤提示?
gd庫開啟
2015-08-21
首先,如果報錯了,你先分析是什么錯誤,哪個地方出的錯;然后,如果沒有報錯,就是驗證碼渲染不出來,那是不是php環境設置里邊GD庫有沒有開啟,或者換個瀏覽器試試。總之描述問題的時候盡量簡要清楚點,你這么直接貼這么一大段代碼誰給你一點點去瞅啊