Генерация случайной капчи

Не редко, для защиты от спама формы, например, обратной связи, используется капча - картинка с набором символов. Как реализовать саму картинку-капчу, показано в этом рецепте.
Пример:
// список символов, используемых в капче 
$let = '0123456789ABCDEFGH';
// количество символов в капче 
$len = 4;
// шрифт
$font = 'impact.ttf';
// Размер шрифта 
$fontsize = 20;
// Размер капчи 
$width = 100;
$height = 30;
// создаем изображение
$img = imagecreatetruecolor($width, $height);
// фон
$white = imagecolorallocate($img, 220, 220, 220); 
imagefill($img, 0,0, $white);
// Переменная, для хранения значения капчи 
$capchaText = '';
// Заполняем изображение символами 
for ($i = 0; $i < $len; $i++){
// Из списка символов, берем случайный символ 
$capchaText .= $let[rand(0, strlen($let)-1)]; 
// Вычисляем положение одного символа 
$x = ($width - 20)/ $len * $i + 10;
$y = $height - (($height - $fontsize) / 2);
// Укажем случайный цвет для символа 
$color = imagecolorallocate(
$img, rand(0, 150), rand(0, 150), rand(0, 150)
);
// Генерируем угол наклона символа 
$naklon = rand(-30, 30);
// Рисуем символ 
imagettftext($img, $fontsize, $naklon, $x,$y, $color, $font, $capchaText[$i]);
}
// заголовок для браузера
header('Content-type: image/png');
// вывод капчи на страницу 
imagepng($img);
// чистим память 
imagedestroy($img);
Теги:
капча, random
Добавлено: 28 Марта 2018 13:34:14 Добавил: Андрей Ковальчук Нравится 0
Добавить
Комментарии:
Нету комментариев для вывода...