天天看點

php驗證碼顯示亂碼,如何解決php驗證碼亂碼問題

php驗證碼亂碼的解決辦法:1、修改通路驗證碼生成方法函數的路徑;2、修改檔案編碼,并去掉BOM頭;3、檢查驗證碼生成方法;4、修改服務環境。

php驗證碼顯示亂碼,如何解決php驗證碼亂碼問題

具體問題:

php驗證碼輸出全是亂碼...<?php

session_start();

header("content-type:image/png"); //設定建立圖像的格式

$image_width=70; //設定圖像寬度

$image_height=18; //設定圖像高度

srand(microtime()*100000); //設定随機數的種子

for($i=0;$i<4;$i++){ //循環輸出一個4位的随機數

$new_number.=dechex(rand(0,15));

}

$_SESSION[check_checks]=$new_number; //将擷取的随機數驗證碼寫入到SESSION變量中

$num_image=imagecreate($image_width,$image_height); //建立一個畫布

imagecolorallocate($num_image,255,255,255); //設定畫布的顔色

for($i=0;$i

$font=mt_rand(3,5); //設定随機的字型

$x=mt_rand(1,8)+$image_width*$i/4; //設定随機字元所在位置的X坐标

$y=mt_rand(1,$image_height/4); //設定随機字元所在位置的Y坐标

$color=imagecolorallocate($num_image,mt_rand(0,100),mt_rand(0,150),mt_rand(0,200)); //設定字元的顔色

imagestring($num_image,$font,$x,$y,$_SESSION[check_checks][$i],$color); //水準輸出字元

}

imagepng($num_image); //生成PNG格式的圖像

imagedestroy($num_image); //釋放圖像資源

?>

解決辦法:

1.通路驗證碼生成方法/函數的路徑不對;

2.檔案編碼不對,UTF8編碼沒有去掉BOM頭;

3.驗證碼生成方法有問題。

4.環境不支援。