PHP认证码实现
include '../lib/function.php';
if (!isset($_SESSION)) {
??? session_start();
??? header('キャッシュコントロール:プライベート');
}
$width = 65;
$height = 20;
$image = imagecreate($width, $height);
$bg_color = imagecolorallocate($image, 0x33, 0x66, 0xFF);
imagefilledrectangle($image, 0, 0, $width, $height, $bg_color);
$text = ランダムテキスト(5);
$font = 5;
$x = imagex($image) / 2 - strlen($text) * imagefontwidth($font) / 2;
$y = imagey($image) / 2 - imagefontheight($font) / 2;
$fg_color = imagecolorallocate($image, 0xFF, 0xFF, 0xFF);
imagestring($image, $font, $x, $y, $text, $fg_color);
$_SESSION['captcha'] = $text;
header('Content-type:image/png');
imagepng($image);
imagedestroy($image);
?>
?
関数random_text($count, $rm_similar = false)
{
??? $chars = array_flip(array_merge(range(0, 9), range('A', 'Z')));
??? if ($rm_similar) {
??????? unset($chars[0], $chars[1], $chars[2], $chars[5], $chars[8], $chars['B'], $chars['I'],
?????????? $chars['O']、$chars['Q']、$chars['S']、$chars['U']、$chars['V']、$chars['Z']);
??? }
??? for ($i = 0, $text = ''; $i
??????? $text .= array_rand($chars);
??? }
??? $text を返す;
}
?>