php 登録コード
Web サイトの登録コードが表示されません
Firefox を使用して次の問題を確認します (サーバーは text/html, php5.4 を返します)
ローカル環境の場合登録コードを表示するにはphpを5.3に変更します。サーバーは image/jpeg を返します
以下は、php5.3 以降で検証コードが正常に表示されない理由の分析に役立ちます。
session_register("valicode");
$width=50; //まず画像の長さと幅を定義します
$height= isset($_REQUEST[ '高さ '])?$_REQUEST['高さ']:24;
$rand_str = "";
for($i=0;$i<4;$i ){
$rand_str . = chr (mt_rand(48,57));
}
if(function_exists("imagecreate")){
echo "関数イメージ作成が存在します" //20140724 に stone によって追加されました
$_SESSION["valicode"]=strto lower($rand_str);//セッションを登録
$img = imagecreate($width,$height);//画像を生成
imagecolorallocate($img, 255,255,255) ; // ImageColorAllocate が最初に色を定義したときの画像の背景色
$black = imagecolorallocate($img,127,157,185) { (200,255),mt_rand(200,255); mt_rand(200,255)));
}
for($i=0;$i<4;$i ){ //テキストを追加
画像文字列 ($img, mt_rand(2,5) ), $i*10 6, mt_rand(2,5), $rand_str[$i],imagecolorallocate($img,mt_rand(0,100),mt_rand(0,150),mt_rand(0,200) ));
}
imagerectangle($img,0,0,$width-1,$height-1,$black);//まず画像を囲む黒い四角形を作成します
if(function_exists("imagejpeg ")){
ob_clean();
header("content-type:image/jpegrn"); imagejpeg($img);
}else{
ob_clean();
ヘッダー("content-type:image/pngrn"); imagepng($img);
}
imagedestroy($img);
}else {
関数イメージcreate NOTexistes"; //20140724 に stone によって追加
$_SESSION["valicode"]="1234";
ob_clean();
header("content-type:image/jpegrn");
$fp = fopen("./valicode.jpg","r");
echo fread($fp,filesize("./validate.jpg"));
fclose($fp) ;
}
?>
-----解決策---------- -------- ---
echo "fuction image create NOT names"; //20140724 に stone によって追加されましたecho "fuction image create NOT names" //20140724 に stone によって追加されました削除した場合この 2 つの文は正常です。