Есть 2 файла первый сама капча sec1.php Код (PHP): <?PHP // Настройки $SECURITY_IMAGE_TYPE = 'GIF'; // Возможные форматы: GIF, JPEG, PNG $SECURITY_WIDTH = 130; // Ширина изображения $SECURITY_HEIGHT = 30; // Высота изображения $SECURITY_NUM_GENSIGN = 5; // Количество символов, которые нужно набрать $path_fonts = 'fonts/'; // Путь к шрифтам $EXT = strtoupper($_GET['ext']); if($EXT == 'GIF' || $EXT == 'JPEG' || $EXT == 'PNG') $SECURITY_IMAGE_TYPE = $EXT; if(is_numeric($_GET['width']) && $_GET['width']>100 && $_GET['width']<500) $SECURITY_WIDTH = $_GET['width']; if(is_numeric($_GET['height']) && $_GET['height']>100 && $_GET['height']<500) $SECURITY_HEIGHT = $_GET['height']; if(is_numeric($_GET['qty']) && $_GET['qty']>2 && $_GET['qty']<10) $SECURITY_NUM_GENSIGN = $_GET['qty']; // Ядро $_SESSION['securityCode'] = $securityCode; $SECURITY_FONT_SIZE = intval($SECURITY_HEIGHT/(($SECURITY_HEIGHT/$SECURITY_WIDTH)*7)); $SECURITY_NUM_SIGN = intval(($SECURITY_WIDTH*$SECURITY_HEIGHT)/150); $CODE = array(); $LETTERS = array('0','1','2','3','4','5','6','7','8','9'); $FIGURES = array('50','70','90','110','130','150','170','190','210'); // Создаем полотно $src = imagecreatetruecolor($SECURITY_WIDTH,$SECURITY_HEIGHT); // Заливаем фон $fon = imagecolorallocate($src,255,255,255); imagefill($src,0,0,$fon); // Загрузка шрифтов $FONTS = array(); $dir = opendir($path_fonts); while($fontName = readdir($dir)) { if($fontName != "." && $fontName != "..") { if(strtolower(strrchr($fontName,'.'))=='.ttf') $FONTS[] = $path_fonts.$fontName; } } closedir($dir); // Если есть шрифты if(sizeof($FONTS)>0) { // Рисуем линии на заднем фоне for($i = 0; $i<($SECURITY_HEIGHT)/(($SECURITY_HEIGHT)/4); $i++) { // Ориентир $h = 1; $x1 = 0; $y1 = ($h == rand(8,10)) ? (($SECURITY_HEIGHT*1.3*3)/5) + rand(0,$SECURITY_HEIGHT*0.5) : (($SECURITY_HEIGHT*1.3*3)/5) - rand(0,$SECURITY_HEIGHT*0.5); $x2 = $SECURITY_WIDTH; $y2 = ($h == rand(8,10)) ? (($SECURITY_HEIGHT*1.3*3)/5) + rand(0,$SECURITY_HEIGHT*0.5) : (($SECURITY_HEIGHT*1.3*3)/5) - rand(0,$SECURITY_HEIGHT*0.5); $color = imagecolorallocatealpha($src,$FIGURES[rand(0,sizeof($FIGURES)-1)],$FIGURES[rand(0,sizeof($FIGURES)-1)],$FIGURES[rand(0,sizeof($FIGURES)-1)],rand(10,30)); ImageLine($src, $x1, $y1, $x2, $y2, $color); } unset($x,$y); unset($x1,$y2); // Если папка шрифтов не пуста то, заливаем основными буквами for($i = 0; $i<$SECURITY_NUM_GENSIGN; $i++) { // Ориентир $h = 1; // Рисуем $color = imagecolorallocatealpha($src,$FIGURES[rand(0,sizeof($FIGURES)-1)],$FIGURES[rand(0,sizeof($FIGURES)-1)],$FIGURES[rand(0,sizeof($FIGURES)-1)],rand(10,30)); $font = $FONTS[rand(0,sizeof($FONTS)-1)]; $letter = $LETTERS[rand(0,sizeof($LETTERS)-1)]; $size = rand($SECURITY_FONT_SIZE*1.8-0.5,$SECURITY_FONT_SIZE*1.8+0.5); $x = (empty($x)) ? $SECURITY_WIDTH*0.16 : $x + ($SECURITY_WIDTH*0.7)/$SECURITY_NUM_GENSIGN+rand(0,$SECURITY_WIDTH*0.01); $y = ($h == rand(8,10)) ? (($SECURITY_HEIGHT*1.3*3)/5) + rand(0,$SECURITY_HEIGHT*0.02) : (($SECURITY_HEIGHT*1.3*3)/5) - rand(0,$SECURITY_HEIGHT*0.02); $angle = rand(5,40); // Запоминаем $CODE[] = $letter; if($h == rand(0,10)) $letter = strtoupper($letter); if($h == rand(1,2)) $angle = rand(355,340); // Пишем imagettftext($src,$size,$angle,$x,$y,$color,$font,$letter); } // Если нет шрифтов } else { // Если папка шрифтов пуста for($i = 0; $i<$SECURITY_NUM_GENSIGN; $i++) { // Ориентир $h = 1; // Рисуем $color = imagecolorallocatealpha($src,$FIGURES[rand(0,sizeof($FIGURES)-1)],$FIGURES[rand(0,sizeof($FIGURES)-1)],$FIGURES[rand(0,sizeof($FIGURES)-1)],rand(10,30)); $letter = $LETTERS[rand(0,sizeof($LETTERS)-1)]; $x = (empty($x)) ? $SECURITY_WIDTH*0.1 : $x + ($SECURITY_WIDTH*0.8)/$SECURITY_NUM_GENSIGN+rand(0,$SECURITY_WIDTH*0.01); $y = ($h == rand(1,2)) ? (($SECURITY_HEIGHT*1)/4) + rand(0,$SECURITY_HEIGHT*0.1) : (($SECURITY_HEIGHT*1)/4) - rand(0,$SECURITY_HEIGHT*0.1); // Запоминаем $CODE[] = $letter; if($h == rand(0,10)) $letter = strtoupper($letter); // Пишем imagestring($src,9,$x,$y,$letter,$color); } } // Получаем код $_SESSION['securityCode'] = implode('',$CODE); // Печать if($SECURITY_IMAGE_TYPE == 'PNG') { header ("Content-type: image/png"); imagepng($src); } elseif($SECURITY_IMAGE_TYPE == 'JPEG') { header ("Content-type: image/jpeg"); imagejpeg($src); } else { header ("Content-type: image/gif"); imagegif($src); } imagedestroy($src); ?> второй регистрационная форма где выводится капча register.php Там много учловий все они работают а вот условия для капчи Код (PHP): elseif (isset($_POST['securityCode']) && isset($_SESSION['securityCode'])) { if (strtolower($_POST['securityCode']) == $_SESSION['securityCode']) { unset($_SESSION['securityCode']); } else{ $stop =1; $err .= "<cetner>Неверный защитный код ! </center>"; unset($_SESSION['securityCode']); } } elseif (!isset($_POST['securityCode']) || !isset($_SESSION['securityCode'])) { $stop =1; $err .= "<center>Вы не ввели защитный код ! </center>"; } тут-же текстареа для ввода чисел Код (PHP): <TD><div align="center" style='middle'><?if (!$_GET['edit']) {?> <img src="sec1.php" border="1"><BR> Введите защитный код:<BR> <input type="text" name="securityCode" size="20" value="" maxlength="5" ><?}?> </TD> Вот сейчас пробую - рисунок вроде скринится вот только всегда появляется условие - Вы не ввели защитный код ! Типа сессия не передается походу - что-то с ней...подскажите чтобы работало ребятки ...я вот сейчас сам смотрю... Добавлено спустя 6 минут 58 секунд: Даже знаете пишет так сначала Неверный защитный код ! а потом все Вы не ввели защитный код Вы не ввели защитный код Вы не ввели защитный код такое ощущение что сессия раз проходит а потом какое то время отключается и вобщем не работает капча цыфровая проверка по ощущениям Добавлено спустя 14 минут 15 секунд: В капче дописал Код (PHP): session_start('securityCode'); все заработало ребята :/Добавлено спустя 12 минут 18 секунд:тут прикольно можно в фонтс кидать шрифты и будет считай какбы капча меняться.