ホームページ  >  記事  >  バックエンド開発  >  dedeCMS検証コードの実装コードを解析する_PHPチュートリアル

dedeCMS検証コードの実装コードを解析する_PHPチュートリアル

WBOY
WBOYオリジナル
2016-07-21 15:08:11754ブラウズ

以下に示すように:

コードをコピーします コードは次のとおりです:

$rndstring = '';
for($i=0; $i<4; $i++) $ rndstring .= chr (mt_rand(65,90));
//GD がサポートされている場合、drawing
if(function_exists("imagecreate"))
{
//場合によっては、Firefox がページの更新を複数回要求することがあります。 5 秒以内はセッションを変更しません
$ntime = time();
if(empty($_SESSION['dd_ckstr_last']) || empty($_SESSION['dd_ckstr']) || ($ntime - $_SESSION ['dd_ckstr_last'] > ; 5))
{
$_SESSION['dd_ckstr'] = strto lower($rndstring);
$_SESSION['dd_ckstr_last'] = $ntime;
}
$rndstring = $_SESSION['dd_ckstr '];
$rndcodelen = strlen($rndstring);
//画像を作成し、背景色を設定します
$im = imagecreate(50,20);
ImageColorAllocate($im, 255,255,255);
//背景線
$lineColor1 = ImageColorAllocate($im ,240,220,180);
$lineColor2 = ImageColorAllocate($im,250,250,170);
for($j=3;$j<=16;$j=$j+3)
{
imageline( $im,2,$j ,48,$j,$lineColor1);
}
for($j=2;$j<52;$j=$j+(mt_rand(3,6)))
{
イメージライン($im,$j, 2,$j-6,18,$lineColor2);
}
//境界線を描画します
$bordercolor = ImageColorAllocate($im, 0x99,0x99,0x99);
imagerectangle($im, 0, 0, 49, 19, $bordercolor);
//出力テキスト
$fontColor = ImageColorAllocate($im, 48,61,50);
for($i=0;$i<$rndcodelen;$i++)
{
$bc = mt_rand( 0,1);
$rndstring[$i] = strtoupper($rndstring[$i]);
imagestring($im, 5, $i*10+6, mt_rand(2, 4), $rndstring[$i ], $fontColor);
}
header("Pragma:no-cache/r/n");
header("Cache-Control:no-cache/r/n");
header("Expires:0/ r/n");
//特定の種類の画像形式を出力します。優先順位は gif -> jpg ->png
if(function_exists("imagejpeg"))
{
header("content-type:image/ jpeg/r/n");
imagejpeg($im);
}
else
{
header("content-type:image/png/r/n");
imagepng ($im);
}
ImageDestroy ($im);
exit();
}
else
{
//GD をサポートせず、文字 ABCD のみを出力します
$_SESSION['dd_ckstr'] = "abcd";
$_SESSION['dd_ckstr_last'] = ' ';
header("content-type:image/jpeg/r/n");
header("Pragma:no-cache/r/n");
header("キャッシュ制御:no-cache/r/n");
header("Expires:0/r/n");
$fp = fopen("data/vdcode.jpg","r");
echo fread ($fp,filesize("data/vdcode .jpg"));
fclose($fp);
exit();
}
?>

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/327495.html技術記事以下に示すように、次のようにコードをコピーします。 ?php $rndstring = ''; for($i=0; $i4; $i++) $rndstring .= chr(mt_rand(65,90));サポートされているので、 if(function_exists("imagecreate") を描画します...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。