PHP . SU
Программирование на PHP, MySQL и другие веб-технологии
Без описания
Поиск в теме | Версия для печати
saber135791
Отправлено: 10 Октября, 2011 - 22:02:55
Гость
Покинул форум
Сообщений всего: 120
Дата рег-ции: Сент. 2011
Помог: 0 раз(а)
CODE (
htmlphp ):
скопировать код в буфер обмена
<? php
for ( $k = 1 ; $k <= 5 ; $k ++ )
{
}
$white = imagecolorallocate ( $img , 255, 255, 255) ; // Присваиваем переменной $white белый цвет imagefill ( $img , 0, 0, $white ) ; //Заливаем изображение белым
imageline ( $img , 20, 0, 80, 13, $black ) ; //Линия чёрного цвета imageellipse ( $img , 0, 0, 70, 40, $black ) ; //Эллипс чёрного цвета
for ( $i = 1 ; $i <= 5 ; $i ++ )
{
$r = $i * 15 ; //Нужно, чтобы соблюдалась ширина между цифрами и они не лепились друг на друга.
if ( $i % 2 == 0 ) // Условие, для выбора высоты цифры.
{
$sok = 1.3 ; // Если $i делиться на 2 без остатка, то высота цифры увеличивается в 1.3 раза.
}
else
{
$sok = 1.5 ; // Иначе высота увеличивается в 1.5 раза.
}
if ( $text { $i - 1 } == "1" ) //Если цифра равна 1, то рисуем её
{
imageline ( $img , 7+ $r , 5* $sok , 7+ $r , 15* $sok , $black ) ; imageline ( $img , 7+ $r , 5* $sok , 5+ $r , 9* $sok , $black ) ; }
if ( $text { $i - 1 } == "2" ) { //Цифра 2
imageline ( $img , 5+ $r , 6* $sok , 7+ $r , 3* $sok , $green ) ; imageline ( $img , 7+ $r , 3* $sok , 10+ $r , 6* $sok , $green ) ; imageline ( $img , 10+ $r , 6* $sok , 6+ $r , 14* $sok , $green ) ; imageline ( $img , 6+ $r , 14* $sok , 10+ $r , 14* $sok , $green ) ; }
if ( $text { $i - 1 } == "3" ) { //Цифра 3
imageline ( $img , 5+ $r , 5* $sok , 10+ $r , 5* $sok , $green ) ; imageline ( $img , 10+ $r , 5* $sok , 10+ $r , 10* $sok , $green ) ; imageline ( $img , 10+ $r , 10* $sok , 5+ $r , 10* $sok , $green ) ; imageline ( $img , 10+ $r , 10* $sok , 10+ $r , 15* $sok , $green ) ; imageline ( $img , 10+ $r , 15* $sok , 5+ $r , 15* $sok , $green ) ; }
if ( $text { $i - 1 } == "4" ) { //Цифра 4
imageline ( $img , 5+ $r , 4* $sok , 5+ $r , 10* $sok , $green ) ; imageline ( $img , 5+ $r , 10* $sok , 10+ $r , 10* $sok , $green ) ; imageline ( $img , 10+ $r , 10* $sok , 10+ $r , 4* $sok , $green ) ; imageline ( $img , 10+ $r , 10* $sok , 10+ $r , 15* $sok , $green ) ; }
if ( $text { $i - 1 } == "5" ) { //Цифра 5
imageline ( $img , 5+ $r , 4* $sok , 11+ $r , 4* $sok , $green ) ; imageline ( $img , 5+ $r , 4* $sok , 5+ $r , 10* $sok , $green ) ; imageline ( $img , 5+ $r , 10* $sok , 11+ $r , 10* $sok , $green ) ; imageline ( $img , 11+ $r , 11* $sok , 11+ $r , 15* $sok , $green ) ; imageline ( $img , 11+ $r , 15* $sok , 5+ $r , 15* $sok , $green ) ; }
if ( $text { $i - 1 } == "6" ) { //Цифра 6
imageline ( $img , 10+ $r , 4* $sok , 5+ $r , 4* $sok , $green ) ; imageline ( $img , 5+ $r , 4* $sok , 5+ $r , 15* $sok , $green ) ; imageline ( $img , 5+ $r , 15* $sok , 10+ $r , 15* $sok , $green ) ; imageline ( $img , 10+ $r , 15* $sok , 10+ $r , 10* $sok , $green ) ; imageline ( $img , 10+ $r , 10* $sok , 5+ $r , 10* $sok , $green ) ; }
if ( $text { $i - 1 } == "7" ) { //Цифра 7
imageline ( $img , 5+ $r , 5* $sok , 11+ $r , 5* $sok , $green ) ; imageline ( $img , 11+ $r , 5* $sok , 7+ $r , 15* $sok , $green ) ; }
if ( $text { $i - 1 } == "8" ) { //Цифра 8
imageline ( $img , 5+ $r , 5* $sok , 10+ $r , 5* $sok , $green ) ; imageline ( $img , 5+ $r , 5* $sok , 5+ $r , 10* $sok , $green ) ; imageline ( $img , 5+ $r , 10* $sok , 10+ $r , 10* $sok , $green ) ; imageline ( $img , 10+ $r , 10* $sok , 10+ $r , 5* $sok , $green ) ; imageline ( $img , 5+ $r , 10* $sok , 5+ $r , 15* $sok , $green ) ; imageline ( $img , 10+ $r , 10* $sok , 10+ $r , 15* $sok , $green ) ; imageline ( $img , 5+ $r , 15* $sok , 10+ $r , 15* $sok , $green ) ; }
if ( $text { $i - 1 } == "9" ) { //Цифра 9
imageline ( $img , 5+ $r , 5* $sok , 10+ $r , 5* $sok , $green ) ; imageline ( $img , 5+ $r , 5* $sok , 5+ $r , 10* $sok , $green ) ; imageline ( $img , 5+ $r , 10* $sok , 10+ $r , 10* $sok , $green ) ; imageline ( $img , 10+ $r , 10* $sok , 10+ $r , 5* $sok , $green ) ; imageline ( $img , 10+ $r , 10* $sok , 10+ $r , 15* $sok , $green ) ; imageline ( $img , 10+ $r , 15* $sok , 5+ $r , 15* $sok , $green ) ; }
}
header ( "Cache-control: private" ) ; header ( "Content-type: image/png" ) ; ?>
White
Отправлено: 10 Октября, 2011 - 22:25:53
Частый посетитель
Покинул форум
Сообщений всего: 830
Дата рег-ции: Июнь 2011
Откуда: Днепропетровск
Помог: 28 раз(а)
Вот простенькая капча на gd2, писал сам думаю сложностей с ней быть не должно. В архиве 2 шрифта и сам скрипт
Спойлер (Отобразить ) PHP:
скопировать код в буфер обмена
<?PHP
//Отсылаем заголовки
header ( "Content-type: image/png" ) ; //Создаем Основу для изображения
$code = '' ;
$symbols = 'abcdefghijklmnopqrstuwxyzABCDEFGHIJKLMNOPQRSTUWXYZ1234567890' ;
//Рисуем царапины
$crack_num = rand ( 80
, 160
) ; for ( $i = 0 ; $i < $crack_num ; $i ++ ) {
$crack_length = rand ( 100
, 160
) ; for ( $j = 0 ; $j < $crack_length ; $j ++ ) {
if ( rand ( 0
, 1
) ) $point_x += 1 ; else $point_x -= 1 ; if ( rand ( 0
, 1
) ) $point_y += 1 ; else $point_y -= 1 ; }
}
//Сглаживаем
//Наносим текст
for ( $i = 0 ; $i < $col ; $i ++ ) {
//Варьируем цвет
//Выбираем символ из набора
$code .= $symbol ;
//Рисуем текст
$pos_x = 45
- $col * 6
+ $i * 30
+ rand ( - 2
, 2
) ; //Делаем тень
if ( rand ( 0
, 1
) ) $disp_x = - $disp_x ; if ( rand ( 0
, 1
) ) $disp_y = - $disp_y ; imagettftext ( $img , $size , $angle , $pos_x + $disp_x , $pos_y + $disp_y , $shadow , $font , $symbol ) ; //Текст
imagettftext ( $img , $size , $angle , $pos_x , $pos_y , $color , $font , $symbol ) ;
}
//Записываем результат в сессию
$_SESSION [ 'CAPTCHA' ] = $code ;
//Выводим изображение
?>
-----if(time()>1356048000) die();
saber135791
Отправлено: 11 Октября, 2011 - 14:34:19
Гость
Покинул форум
Сообщений всего: 120
Дата рег-ции: Сент. 2011
Помог: 0 раз(а)
DeepVarvar пишет: А напрямую по адресу открывается?
Да, нормально отображается!
saber135791
Отправлено: 11 Октября, 2011 - 20:20:23
Гость
Покинул форум
Сообщений всего: 120
Дата рег-ции: Сент. 2011
Помог: 0 раз(а)
Получилось, капча отображается, но появилась другая проблема: не получается вывести цифры из капчи на страницу регистрации в виде текста, пробовал с помощью с сессии, не получилось (пробовал сессии присвоить переменную $text, не получилось, пробовал вместо переменной $text написать сессию, тоже не получилось), подскажите как можно вывести?
CODE (
htmlphp ):
скопировать код в буфер обмена
<? php
for ( $k = 1 ; $k <= 5 ; $k ++ )
{
}
imagefill ( $img , 0, 0, $gray ) ; //Заливаем изображение белым
imageline ( $img , 20, 0, 80, 13, $black ) ; //Линия чёрного цвета imageellipse ( $img , 0, 0, 70, 40, $black ) ; //Эллипс чёрного цвета
for ( $i = 1 ; $i <= 5 ; $i ++ )
{
$r = $i * 15 ; //Нужно, чтобы соблюдалась ширина между цифрами и они не лепились друг на друга.
if ( $i % 2 == 0 ) // Условие, для выбора высоты цифры.
{
$sok = 1.3 ; // Если $i делиться на 2 без остатка, то высота цифры увеличивается в 1.3 раза.
}
else
{
$sok = 1.5 ; // Иначе высота увеличивается в 1.5 раза.
}
if ( $text { $i - 1 } == "1" ) //Если цифра равна 1, то рисуем её
{
imageline ( $img , 7+ $r , 5* $sok , 7+ $r , 15* $sok , $beige ) ; imageline ( $img , 7+ $r , 5* $sok , 5+ $r , 9* $sok , $beige ) ; }
if ( $text { $i - 1 } == "2" ) { //Цифра 2
imageline ( $img , 5+ $r , 6* $sok , 7+ $r , 3* $sok , $beige ) ; imageline ( $img , 7+ $r , 3* $sok , 10+ $r , 6* $sok , $beige ) ; imageline ( $img , 10+ $r , 6* $sok , 6+ $r , 14* $sok , $beige ) ; imageline ( $img , 6+ $r , 14* $sok , 10+ $r , 14* $sok , $beige ) ; }
if ( $text { $i - 1 } == "3" ) { //Цифра 3
imageline ( $img , 5+ $r , 5* $sok , 10+ $r , 5* $sok , $beige ) ; imageline ( $img , 10+ $r , 5* $sok , 10+ $r , 10* $sok , $beige ) ; imageline ( $img , 10+ $r , 10* $sok , 5+ $r , 10* $sok , $beige ) ; imageline ( $img , 10+ $r , 10* $sok , 10+ $r , 15* $sok , $beige ) ; imageline ( $img , 10+ $r , 15* $sok , 5+ $r , 15* $sok , $beige ) ; }
if ( $text { $i - 1 } == "4" ) { //Цифра 4
imageline ( $img , 5+ $r , 4* $sok , 5+ $r , 10* $sok , $beige ) ; imageline ( $img , 5+ $r , 10* $sok , 10+ $r , 10* $sok , $beige ) ; imageline ( $img , 10+ $r , 10* $sok , 10+ $r , 4* $sok , $beige ) ; imageline ( $img , 10+ $r , 10* $sok , 10+ $r , 15* $sok , $beige ) ; }
if ( $text { $i - 1 } == "5" ) { //Цифра 5
imageline ( $img , 5+ $r , 4* $sok , 11+ $r , 4* $sok , $beige ) ; imageline ( $img , 5+ $r , 4* $sok , 5+ $r , 10* $sok , $beige ) ; imageline ( $img , 5+ $r , 10* $sok , 11+ $r , 10* $sok , $beige ) ; imageline ( $img , 11+ $r , 11* $sok , 11+ $r , 15* $sok , $beige ) ; imageline ( $img , 11+ $r , 15* $sok , 5+ $r , 15* $sok , $beige ) ; }
if ( $text { $i - 1 } == "6" ) { //Цифра 6
imageline ( $img , 10+ $r , 4* $sok , 5+ $r , 4* $sok , $beige ) ; imageline ( $img , 5+ $r , 4* $sok , 5+ $r , 15* $sok , $beige ) ; imageline ( $img , 5+ $r , 15* $sok , 10+ $r , 15* $sok , $beige ) ; imageline ( $img , 10+ $r , 15* $sok , 10+ $r , 10* $sok , $beige ) ; imageline ( $img , 10+ $r , 10* $sok , 5+ $r , 10* $sok , $beige ) ; }
if ( $text { $i - 1 } == "7" ) { //Цифра 7
imageline ( $img , 5+ $r , 5* $sok , 11+ $r , 5* $sok , $beige ) ; imageline ( $img , 11+ $r , 5* $sok , 7+ $r , 15* $sok , $beige ) ; }
if ( $text { $i - 1 } == "8" ) { //Цифра 8
imageline ( $img , 5+ $r , 5* $sok , 10+ $r , 5* $sok , $beige ) ; imageline ( $img , 5+ $r , 5* $sok , 5+ $r , 10* $sok , $beige ) ; imageline ( $img , 5+ $r , 10* $sok , 10+ $r , 10* $sok , $beige ) ; imageline ( $img , 10+ $r , 10* $sok , 10+ $r , 5* $sok , $beige ) ; imageline ( $img , 5+ $r , 10* $sok , 5+ $r , 15* $sok , $beige ) ; imageline ( $img , 10+ $r , 10* $sok , 10+ $r , 15* $sok , $beige ) ; imageline ( $img , 5+ $r , 15* $sok , 10+ $r , 15* $sok , $beige ) ; }
if ( $text { $i - 1 } == "9" ) { //Цифра 9
imageline ( $img , 5+ $r , 5* $sok , 10+ $r , 5* $sok , $beige ) ; imageline ( $img , 5+ $r , 5* $sok , 5+ $r , 10* $sok , $beige ) ; imageline ( $img , 5+ $r , 10* $sok , 10+ $r , 10* $sok , $beige ) ; imageline ( $img , 10+ $r , 10* $sok , 10+ $r , 5* $sok , $beige ) ; imageline ( $img , 10+ $r , 10* $sok , 10+ $r , 15* $sok , $beige ) ; imageline ( $img , 10+ $r , 15* $sok , 5+ $r , 15* $sok , $beige ) ; }
}
header ( "Cache-control: private" ) ; header ( "Content-type: image/png" ) ; ?>
(Отредактировано автором: 11 Октября, 2011 - 20:21:33)
Поиск в теме | Версия для печати
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
Powered by ExBB FM 1.0 RC1. InvisionExBB