$font = "/cour.ttf";
Этот путь задан не от корня веб-сервера, а от корня файловой системы. 99.99% что файла этого у тебя в корне и не существует. Лучше указывай пути относительно текущего скрипта, например, если шрифт лежит в той же папке, что и captcha.php, то получится так:
$font = __DIR__ . "/cour.ttf";
А вообще, об ошибках смотри в логах сервера.
Саша КоролёвУченик (152)
1 год назад
пробовал указывать так как Вы написали, не помогает. Вместо капчи показывает пустое место под изображение.
Если убираю эту строку imagettftext($img, $size, rand(-10, 15), $x, $y , $color, $font, $letter); то капча показывается но без эффектов, просто белая картинка.
САМА КАПЧА:
<?php
session_start();
$width = 100; //ширина картинки
$height = 60; //высота картинки
$count = 4; //кол-во символов капчи
$fon_let_amount = 40; //количество символов на фоне
$f_size = 16; //размер шрифта
$font = "/cour.ttf"; //путь к файлу шрифта
$letters = array("Z", "Q", "G", "L", "R", "W", "V", "5", "9", "7"); //Символы для капчи
$colors = array("90", "110", "130", "150", "170", "190", "210"); //Набор цветов для символов
$img = imagecreatetruecolor($width, $height);
$fon = imagecolorallocate($img, 250, 250, 250); //Функция созданияцвета фона
imagefill($img, 0, 0, $fon); //Функция заливки выбранного изображения
//Создание контента Капчи (Основные сиволы)
for($i = 0; $i < $count; $i++){
$color = imagecolorallocatealpha($img, $colors[rand(0, sizeof($colors) - 1)], $colors[rand(0, sizeof($colors) - 1)], $colors[rand(0, sizeof($colors) - 1)], rand(20, 40));
$letter = $letters[rand(0, sizeof($letters) - 1)]; //Случайный цвет символа
$size = rand($f_size*2-2, $f_size*2+2); //Случайный размер символа
$x = ($i + 1) * $f_size + rand(1, 5); //Случайный х
$y = $height/2 + $size/2; //Случайный у
$capcha[] = $letter; //Добавляем в массив символ
imagettftext($img, $size, rand(-10, 15), $x, $y , $color, $font, $letter); //Выводим символ
}
$capcha = implode("",$capcha);
header("Content-type: image/gif"); //Создание заголовка изображения
$_SESSION["capcha"] = strtolower($capcha); //Создание переменной сессии
imagegif($img); //Выводим на экран
?>