您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關php驗證碼不顯示怎么辦,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
解決方法:
1、檢查PHP是否已安裝GD擴展,并且開啟狀態;
2、utf-8 BOM頭原因。用Editplus、ultraedit,刪除即可。(https://blog.csdn.net/oscar999/article/details/6280006)
3、輸出緩沖區中的緩存問題。輸出前,使用ob_clean函數解決。
4、輸出前,不能出現echo、print_r、var_dump等打印,注釋或刪除解決。
解決問題之后的代碼:
<?php $w = 80; //設置圖片寬和高 $h = 26; $str = Array(); //用來存儲隨機碼 $string = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";//隨機挑選其中4個字符,也可以選擇更多,注意循環的時候加上,寬度適當調整 for($i = 0;$i < 4;$i++){ $str[$i] = $string[rand(0,35)]; $vcode .= $str[$i]; } session_start(); //啟用超全局變量session $_SESSION["vcode"] = $vcode; $im = imagecreatetruecolor($w,$h); $white = imagecolorallocate($im,255,255,255); //第一次調用設置背景色 $black = imagecolorallocate($im,0,0,0); //邊框顏色 imagefilledrectangle($im,0,0,$w,$h,$white); //畫一矩形填充 imagerectangle($im,0,0,$w-1,$h-1,$black); //畫一矩形框 //生成雪花背景 for($i = 1;$i < 200;$i++){ $x = mt_rand(1,$w-9); $y = mt_rand(1,$h-9); $color = imagecolorallocate($im,mt_rand(200,255),mt_rand(200,255),mt_rand(200,255)); imagechar($im,1,$x,$y,"*",$color); } //將驗證碼寫入圖案 for($i = 0;$i < count($str);$i++){ $x = 13 + $i * ($w - 15)/4; $y = mt_rand(3,$h / 3); $color = imagecolorallocate($im,mt_rand(0,225),mt_rand(0,150),mt_rand(0,225)); imagechar($im,5,$x,$y,$str[$i],$color); } ob_clean();//原來的程序沒有這一欄 header("Content-type:image/jpeg"); //以jpeg格式輸出,注意上面不能輸出任何字符,否則出錯 imagejpeg($im); imagedestroy($im); ?>
顯示結果如下:
關于php驗證碼不顯示怎么辦就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。