dandandan
Мой дом здесь!
- Регистрация
- 7 Авг 2008
- Сообщения
- 1.036
- Реакции
- 293
- Автор темы
- #1
Написал капчу. Возникла проблема - запускается через раз. То на картинке есть буквы, то букв нету.
Скрипт
Что где подправить ?
Скрипт
Вызов капчи из друго докаsession_start();
$antisp='';
header("Expires: Sun, 1 Jan 2000 12:00:00 GMT");
header("Last-Modified: ".gmdate("D, d M Y H:i:s")."GMT");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
header("Content-type: image/jpeg");
$height=35;
$font_size=24;
$kolvo_bukv=3;
$kolvo_bukv1=6;
$width=$font_size*($kolvo_bukv1+1)*1.5;
$im = @imagecreate($width*0.5, $height*1.1)
or die("Cannot Initialize new GD image stream");
$background_color = imagecolorallocate($im, 255, 255, 255);
$color_font = imagecolorallocate($im, 0, 0, 0);
$font=random_font();
// выводим капчу
for($i = 0; $i < $kolvo_bukv; ++$i) {
$string.=random_string(1);
}
$antisp.=$string;
$color_font = imagecolorallocate($im, mt_rand(0,100), mt_rand(0,100), mt_rand(0,100));
imagettftext($im, $font_size, 0, 5, 30, $color_font, $font, $string);
$_SESSION['capcha']=$antisp;
$font='';
imagejpeg($im);
imagedestroy($im);
//*****************************
function random_string($len) // выбор случайной буквы
{
$string = "";
$chars = array("A", "B", "C", "D","E", "F", "G", "H", "I", "J", "K", "L", "M", "N",
"P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z");
for($i = 0; $i < $len; ++$i)
{
shuffle($chars); // возвращает случайный элемент массива
$string .= $chars[0];
}
return $string;
}
//**************************
function random_font() // выбор случайного шрифта
{
$string = 'shrift_s/0('.mt_rand(1,2).').ttf';
return $string;
}
<img id="captcha" src="capcha.php" align="absmiddle">
Что где подправить ?