日期:2014-05-17  浏览次数:20499 次

PHP认证码实现

<?php
include '../lib/function.php';

if (!isset($_SESSION)) {
??? session_start();
??? header('Cache-control:private');
}
$width = 65;
$height = 20;
$image = imagecreate($width, $height);
$bg_color = imagecolorallocate($image, 0x33, 0x66, 0xFF);
imagefilledrectangle($image, 0, 0, $width, $height, $bg_color);
$text = random_text(5);
$font = 5;
$x = imagesx($image) / 2 - strlen($text) * imagefontwidth($font) / 2;
$y = imagesy($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);
?>

?

<?php
function 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 < $count; $i++) {
??????? $text .= array_rand($chars);
??? }
??? return $text;
}
?>