您好,登錄后才能下訂單哦!
<?php session_start(); $gd=gd_info(); if (!$gd['FreeType Support']){ exit('該服務不支持gdlib'); } //文件頭... header("Content-type: p_w_picpath/png"); //創建真彩色白紙 $im = @p_w_picpathcreatetruecolor(100, 40) or die("建立圖像失敗"); //獲取背景顏色 $background_color = p_w_picpathcolorallocate($im, 250, 205, 205); //填充背景顏色(這個東西類似油桶) p_w_picpathfill($im,0,0,$background_color); //獲取邊框顏色 $border_color = p_w_picpathcolorallocate($im,200,200,200); //畫矩形,邊框顏色200,200,200 p_w_picpathrectangle($im,0,0,100,40,$border_color); //逐行炫耀背景,全屏用1或0 for($i=2;$i<40;$i++){ //獲取隨機淡色 $line_color = p_w_picpathcolorallocate($im,rand(200,255),rand(200,255),rand(200,255)); //畫線 p_w_picpathline($im,0,$i,100,$i,$line_color); } //設置字體大小 $font_size=28; //設置印上去的文字 $Str[0] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; $Str[1] = "abcdefghijklmnopqrstuvwxyz"; $Str[2] = "01234567891234567890123456"; //獲取第1個隨機文字 $imstr[0]["s"] = $Str[rand(0,2)][rand(0,25)]; $imstr[0]["x"] = rand(2,5); $imstr[0]["y"] = rand(1,4); //獲取第2個隨機文字 $imstr[1]["s"] = $Str[rand(0,2)][rand(0,25)]; $imstr[1]["x"] = $imstr[0]["x"]+$font_size-1+rand(0,1); $imstr[1]["y"] = rand(1,3); //獲取第3個隨機文字 $imstr[2]["s"] = $Str[rand(0,2)][rand(0,25)]; $imstr[2]["x"] = $imstr[1]["x"]+$font_size-1+rand(0,1); $imstr[2]["y"] = rand(1,4); //獲取第4個隨機文字 $imstr[3]["s"] = $Str[rand(0,2)][rand(0,25)]; $imstr[3]["x"] = $imstr[2]["x"]+$font_size-1+rand(0,1); $imstr[3]["y"] = rand(1,3); //寫入隨機字串 for($i=0;$i<4;$i++){ //獲取隨機較深顏色 $text_color = p_w_picpathcolorallocate($im,rand(50,180),rand(50,180),rand(50,180)); //畫文字 p_w_picpathstring($im,$font_size,$imstr[$i]["x"],rand(0, 20),$imstr[$i]["s"],$text_color); //p_w_picpathttftext($im, $font_size, 0 , $imstr[$i]["x"], rand(0, 20), $text_color, font.ttf, $imstr[$i]["s"]); $captcha=$captcha.$imstr[$i]["s"]; //只要這里進行字符串連接時,驗證碼就不能顯示 } $_SESSION['captcha']=$captcha; //顯示圖片 p_w_picpathpng($im); //銷毀圖片 p_w_picpathdestroy($im); ?
1:生成圖像的php頁面不能有含有一些沒有初始化的變量
原因:這些沒有初始化的變量會出現一個notice提示,輸出到圖片流中,打亂圖片流的代碼,導致驗證碼不能顯示,這就好比session_start()前不能有任何的輸出,但是這個notice提示是很少人能夠看得出來的,在這個例子中的$captcha就是沒有初始化的,需要在使用這個變量前要初始化,就不會有問題了
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。