1.1, igor (??), 02:48, 13/07/2004 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
У тебя в урле картинки прямым текстом указано число, которое изображено ... не хорошо | |
|
2.3, scorp21 (??), 11:33, 13/07/2004 [^] [^^] [^^^] [ответить]
| +/– |
От этого избавиться можно.
А так в принципе очень даже ничего.
Немного подшлифовать, заменить gif на png и рабочий package готов. | |
|
|
2.4, Vladimir Maximenko (?), 11:35, 13/07/2004 [^] [^^] [^^^] [ответить]
| +/– |
Упс !
действительно ошибся с кодом сессии
исходник исправил
нужно читать так
Картинка отображается на странице как STDOUT работы небольшого скрипта, генерирующего картинку, код сессии передаем скрипту как параметр
<img align="right" src="/cgi-bin/anti_robot_img.cgi?code=<session_code>" border=1 alt=""> | |
|
1.5, AcidumIrae (?), 12:45, 13/07/2004 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
Perl конечно хороший язык, но PHP рулит
----------------------------------------
header("Content-type: image/png");
session_start();
//Config
$font = 4; //Largest built-in font
$width = 100; //Image width
$height = 35; //Image height
$num = 255; //Number of random background lines
$minc = 4; //Minimum word length
$maxc = 8; //Maximum word length
// seed with microseconds
function make_seed()
{
list($usec, $sec) = explode(' ', microtime());
return (float) $sec + ((float) $usec * 100000);
}
mt_srand(make_seed());
$len=mt_rand($minc,$maxc);
$string="";
for($i=0;$i<$len;$i++)
{
if(mt_rand(0,1))
$c=mt_rand(65,90);
else
$c=mt_rand(97,122);
$string.=chr($c);
}
$_SESSION['word_verify']=$string;
/*********************************************************/
$im = imagecreatetruecolor($width,$height);
$tcolor = imagecolorallocate($im, 0, 0, 0);
$bcolor = imagecolorallocate($im, 255, 255, 255);
$fx = imagefontwidth($font);
$fy = imagefontheight($font);
$x=mt_rand(2,$width-$fx*strlen($string)-2);
$y=mt_rand(2,$height-$fy-2);
imagefill($im, 1, 1, $bcolor);
imagerectangle( $im, 0, 0, $width-1, $height-1, $tcolor);
//Drawing random lines
for($i=0;$i<$num;$i++)
{
$tx = mt_rand(0,$width);
$ty = mt_rand(0,$height);
$dx = mt_rand(mt_rand(-3,0),mt_rand(0,3));
$dy = mt_rand(mt_rand(-3,0),mt_rand(0,3));
imageline($im,$tx,$ty,$tx+$dx,$ty+$dy,$tcolor);
}
//cleaning box for text
imagefilledrectangle( $im, $x-1, $y-1, $x+$fx*strlen($string)+1, $y+$fy+1, $tcolor);
imagefilledrectangle( $im, $x-1, $y-1, $x+$fx*strlen($string)+1, $y+$fy+1, $bcolor);
//Writing text
imagestring($im, $font, $x, $y, $string, $tcolor);
imagestring($im, $font, $x+1, $y, $string, $tcolor);
imagerectangle( $im, 0, 0, $width-1, $height-1, $tcolor);
imagepng($im);
imagedestroy($im);
| |
1.7, foobar (?), 17:48, 13/07/2004 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
Можно и картинки обойти, если очень захотеть ;)
На /. как-то пробегало, открываем какой-нить порно ресурс и за показ фришного контента требуем от юзеров распознать _вашу_ картинку...
| |
|
2.9, Astor (?), 02:04, 15/07/2004 [^] [^^] [^^^] [ответить]
| +/– |
Потому что это стандарт де-факто для опенсурсного ПО. JPEG'и, BMP и прочие GIF'ы не подходят по лицензионным соображениям. | |
|
1.10, Dr. Nebula (?), 11:55, 13/05/2005 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
Хороший модуль, только на мой взгляд несколько сыроват: есть лишние подпрограммы, да и удалять старые файлы сессий лучше не при начале новой (ибо при частом обращении есть шанс, что кто то начнет новую еще до того как будет обработан преведущий запрос), а в подпрограмме проверки - если есть такая сессия, но код неправильный - удалить файл сессии
И возможно следует объединить в одну подпрограмму создание новой сессии и генерации картинки
Но это только мое мнение, глубоко модуль не копал, только посмотрел | |
1.12, СТАС (?), 14:20, 23/12/2005 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
Что за шняга дайте готовый скрипт накой нам это ?? выложите сам скрипт как он должен вызывать модуль а то я ламер и и не тока я незнаем как чё делать ! | |
|
2.13, Dr. Nebula (?), 23:37, 25/12/2005 [^] [^^] [^^^] [ответить]
| +/– |
>Что за шняга дайте готовый скрипт накой нам это ?? выложите сам
>скрипт как он должен вызывать модуль а то я ламер и
>и не тока я незнаем как чё делать !
Учиться | |
|
1.14, Lookfor (?), 14:28, 26/12/2005 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
Друзья, помогите ламеру разобраться что к чему.
Что и куда нужно поместить что-бы это все заработало...
Есть сервер, на нем стоит Perl, и сайт на котором есть заполняемая форма.
Что нужно написать в htm файле? И какие куда скрипты поместить? Спасибо!!! | |
1.17, Жан (?), 17:29, 24/05/2006 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
Жалко, что на последнее сообшение по установке так никто и не ответил. | |
1.19, Федор (?), 16:55, 17/08/2006 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
да жалко но можно покапаться и найти самому что куда вставлять, так и сказано выше УЧИТЬ :) | |
1.20, Roman (??), 17:51, 29/08/2006 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
на РНР проще организовать... и в JPEG можно, и в PNG и даже в файл - а потом этот файл читать.
а зачем сохранять данные в файл? можно ведь сохранять в сессию, а код сессии - в куки пользователю. | |
1.21, Костя (??), 11:43, 23/01/2007 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
У меня неболшая проблемка по работе указанного модуля.
У меня не получается сходу картинку выводить в форму приходится сохранять на сервере, а src= выводить её местоположение.
Нельзя как нить выводить в браузер без создания файла?
| |
1.22, grey (??), 14:42, 28/02/2007 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
Господа... Вешался на Annotate? покопал форумы - нарыл что параметр gravity - обязательный... воткнул, вешацца перестало, но в картинку текст не пихает, выдает только фон и шум.
Шрифт видит - проверено.
Куда копать?
ЗЫЖ: Неплохо бы в статью добавить несколько строк про Контент-тайп, а то ведь у слабодумающих набор символов будет выдавать ;о) | |
|