image.func.php無法顯示
<?php
require_once 'string.func.php';
//通過GD庫做驗證碼
function verifyImage($type=1,$length=4,$pixel=50,$line=5){
? ?//創建畫布
? ?$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 );
? ?$sess_name = "verify";
? ?$_SESSION [$sess_name] = $chars;
? ?//$fontfiles = array ("MSYH.TTF", "MSYHBD.TTF", "SIMLI.TTF", "SIMSUN.TTC", "SIMYOU.TTF", "STZHONGS.TTF" );
? ?$fontfiles = array ("SIMYOU.TTF", "STZHONGS.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 );
}
哪位幫忙試下。。為何單獨運行image.func.php沒顯示驗證碼空白一片,用getVerify.php卻可以。。
2017-08-02
image.func.php這個腳本只是一個函數,并沒有調用函數來顯示驗證碼圖片,所以單獨運行image.func.php的話當然是空白一片。在getVerify.php有調用就么問題。
另外一個問題?$_SESSION [$sess_name] 總是得到固定值3708?
不大清楚,猜測是在dologin那個腳本里面,寫的是$_SESSION['verify'];嗎?要保證 中括號里面的和 verifyImage函數里 $sess_name = "verify" 的值一致哇。
2018-10-08
請問一下哪里可以下載老師這個類文件呢?
2017-08-10
找到原因了。。。我把$sess_name = "verify" 放在dologin里,沒放在默認參數里
2017-08-01
另外$_SESSION [$sess_name] 總是得到固定值3708 導致提交登錄后一直驗證失敗。。