![]() |
|
Модераторы: korob2001, ginnie |
![]()
|
|
| gcc |
|
||||||||
![]() Агент алкомафии ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2691 Регистрация: 25.4.2008 Где: %&й Репутация: 2 Всего: 17 |
выносит в текстовом формате любые картинки, как исправить?? найти не могу не получаеться!! вот я хочу вывести картинку между своими шаблонами!!
http://search.cpan.org/dist/GD-SecurityIma...ecurityImage.pm все остально работает - получаеться, еще куки не работают и редирект, наверно что-то с cgi модулем? н оя не понял что он хочет еще? подскажите как вывести это изображение? |
||||||||
|
|||||||||
| KSURi |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 887 Регистрация: 8.6.2006 Где: Russia Репутация: 2 Всего: 27 |
Вот это по идее должно работать -------------------- Died at Life.pl line 21 |
|||
|
||||
| gcc |
|
|||
![]() Агент алкомафии ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2691 Регистрация: 25.4.2008 Где: %&й Репутация: 2 Всего: 17 |
спасибо!
я еще сделал: 1) открыл картинку в срипте cgi 2) вставил всрипт cgi скрипт как картинку |
|||
|
||||
| gcc |
|
||||
![]() Агент алкомафии ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2691 Регистрация: 25.4.2008 Где: %&й Репутация: 2 Всего: 17 |
не работает!
тоест ьмне нужно передать закодированно число и картинку, можите показать правильно как?
это означает любой тип, короче не хочет работаеть! подскажимте полностью пожалуйста! ИЛИ если поставить вот так: <img src="my_image_script.cgi" /> то как сделать проверку вводимого числа? как передать число? или тчо нужно сделать? Это сообщение отредактировал(а) gcc - 22.5.2008, 15:57 |
||||
|
|||||
| nitr |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2543 Регистрация: 10.2.2006 Где: Россия :) Репутация: 12 Всего: 84 |
gcc, проверьте так:
Добавлено через 21 секунду Не зря ведь вы его получаете ;) Добавлено через 2 минуты и 14 секунд Просто обычно это PNG, а не JPG/JPEG |
|||
|
||||
| nitr |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2543 Регистрация: 10.2.2006 Где: Россия :) Репутация: 12 Всего: 84 |
gcc, закрывайте тему, раз помогло ;)
|
|||
|
||||
| gcc |
|
|||
![]() Агент алкомафии ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2691 Регистрация: 25.4.2008 Где: %&й Репутация: 2 Всего: 17 |
сори, я не пробовал еще, я замучался с этой картинкой, что не хочу печатать, поже попробую сделать, но по-моиму пробовал так как вы написали...
|
|||
|
||||
| nitr |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2543 Регистрация: 10.2.2006 Где: Россия :) Репутация: 12 Всего: 84 |
Если верить документации:
Но у меня с примером выше работает. |
|||
|
||||
| KSURi |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 887 Регистрация: 8.6.2006 Где: Russia Репутация: 2 Всего: 27 |
У меня на апаче 2.х отрабатывало и без binmode вообще.
PS: я не понимаю, зачем надо делать binmode на оба потока, вернее, что так делать и не надо вроде; делать надо на тот поток, который по умолчанию не принимает/отображает или некорректно обрабатывает непечатные символы. -------------------- Died at Life.pl line 21 |
|||
|
||||
| gcc |
|
||||
![]() Агент алкомафии ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2691 Регистрация: 25.4.2008 Где: %&й Репутация: 2 Всего: 17 |
не работает, все что пишу - не хочет работать
вод пример, код картинки в середине, кто-то скажет гже ошибка пожалуйста?
если поставить
пишет: Illegal division by zero at add line 286. Это сообщение отредактировал(а) gcc - 14.6.2008, 05:41 |
||||
|
|||||
| Itsys |
|
||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1338 Регистрация: 21.1.2008 Где: г. Москва Репутация: нет Всего: 34 |
Я не стал сильно копаться в твоем скрипте, но проблема в том, что ты пытаешься вставить содержимое картинки прямо в HTML, он тебе ее и показывает. Так что скрипт работает верно. Для того чтобы вставить в HTML именно картинку, а не ее машинное представление, необходимо указывать так:
gen_pic.pl (например, как написал KSURi - здесь):
|
||||
|
|||||
| tolkien |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 277 Регистрация: 5.4.2008 Репутация: нет Всего: 4 |
Я так понял. Вы генерите на лету html страничку и картинку. При этом код картинке вставляете в html документ. Отправляете заголовок Content-Type: */*; charset=utf-8. Откуда браузер знает как отобразить данный документ? Ему что надо самому догадки строить?
Короче отправляйте заголовок text/html. Картинку. Сохраните в файл. И ссылку на нее вставте в документ, в тег <img>. |
|||
|
||||
| nitr |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2543 Регистрация: 10.2.2006 Где: Россия :) Репутация: 12 Всего: 84 |
Исправьте на:
tolkien, такой способ работает 101% gcc, лучше в отдельный скрипт вынести код генерации картинки, как подсказал Itsys, вам же легче разбираться. gcc, и ещё посмотрите на ошибки в логах сервера, т.к. простые скрипты работают, как уже выше говорил. Добавлено через 30 секунд gcc, у вас $mime определён? |
||||
|
|||||
| gcc |
|
||||||
![]() Агент алкомафии ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2691 Регистрация: 25.4.2008 Где: %&й Репутация: 2 Всего: 17 |
nitr, определено:
просто если ставить так
но нужно делать запрос в базу еще, чтобы узнать число которое на картинке (именно так и сделал). тут написано, что можно в cgi вставить?
если можно вставить сразу через cgi скрипт, то покажите 100% работающий если не сложно... Это сообщение отредактировал(а) gcc - 16.6.2008, 03:20 |
||||||
|
|||||||
| tolkien |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 277 Регистрация: 5.4.2008 Репутация: нет Всего: 4 |
Смотри на заголовок в примере "print "Content-type: image/jpeg\n\n";"
Отправляется только картинка. Ты где нибудь вобще встречал html документ с внедренными бинарными данными? Если да. То дай ссылку на такой экземпляр. Я тоже на него посмотрю. |
|||
|
||||
| GoDleSS |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 105 Регистрация: 11.2.2007 Где: Пироговский Репутация: нет Всего: 2 |
Кстати допускаю такой вариант, только не в ХТМЛ напрямую, а попробовать генерить с яваскриптом, в переменную типа Image скармливать бинарные данные. Не пробовал, но покопать в этом направлении можно. --------------------
It's a nice day to die my friend! |
|||
|
||||
| tolkien |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 277 Регистрация: 5.4.2008 Репутация: нет Всего: 4 |
Плохое направление для раскопок. Javascript просто может быть отключен. Это раз. А во вторых. Данные отправятся не как бинарные, а как текстовые. Знаешь в чем разница? В том что в таком виде картинка будет битой.
|
|||
|
||||
| GoDleSS |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 105 Регистрация: 11.2.2007 Где: Пироговский Репутация: нет Всего: 2 |
1. Раскопки можно вести и в тупиковом направлении, для интереса 2. А вот с этим моментом вынужден согласиться, либо сильно изголяться, либо будет нарушение изображения. --------------------
It's a nice day to die my friend! |
|||
|
||||
| yurik_l |
|
|||
|
тарантиноман Профиль Группа: Участник Сообщений: 49 Регистрация: 17.9.2006 Репутация: нет Всего: 3 |
А что у Image есть такие свойства или методы? |
|||
|
||||
| gcc |
|
|||
![]() Агент алкомафии ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2691 Регистрация: 25.4.2008 Где: %&й Репутация: 2 Всего: 17 |
подсказали так:
Это сообщение отредактировал(а) gcc - 16.6.2008, 16:50 |
|||
|
||||
| ginnie |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1287 Регистрация: 6.1.2008 Где: Москва Репутация: 4 Всего: 49 |
Уважаемый gcc, последний способ наиболее эффективен и хорошо масштабируется на архитектуре с несколькими серверами. Надо в форму передавать зашифрованный параметр, содержащий хэш и дату устаревания картинки. Для повышения стойкости можно ключ шифрования выбирать случайно из набора.
-------------------- Написать код, понятный компьютеру, может каждый, но только хорошие программисты пишут код, понятный людям. (Мартин Фаулер. Рефакторинг) |
|||
|
||||
| gcc |
|
|||
![]() Агент алкомафии ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2691 Регистрация: 25.4.2008 Где: %&й Репутация: 2 Всего: 17 |
Уважаемый ginnie, что такое "устаревания картинки"? я найти не могу
Это сообщение отредактировал(а) gcc - 16.6.2008, 17:08 |
|||
|
||||
| ginnie |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1287 Регистрация: 6.1.2008 Где: Москва Репутация: 4 Всего: 49 |
gcc, обычно для капчи ограничивают время, в течении которого она принимается сервером, чтобы усложнить вариант использования системы распознавания изображений.
Т.е. схема такая:
Это сообщение отредактировал(а) ginnie - 16.6.2008, 18:16 -------------------- Написать код, понятный компьютеру, может каждый, но только хорошие программисты пишут код, понятный людям. (Мартин Фаулер. Рефакторинг) |
|||
|
||||
| nitr |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2543 Регистрация: 10.2.2006 Где: Россия :) Репутация: 12 Всего: 84 |
||||
|
||||
| ginnie |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1287 Регистрация: 6.1.2008 Где: Москва Репутация: 4 Всего: 49 |
Уважаемый nitr, представьте, что у Вас сервер должен показывать 100 капчей в секунду. Одна картинка генерируется 0.4 сек (для примера). Как это сделать?
Генерируем 10000 картинок (за 1 час) и показываем их пользователям случайным образом. Картинки не удаляем, а дополняем новыми (для получения необходимого объема) и заменяем через некоторое время. Код, изображенный на картинке включен в имя файла. Это сообщение отредактировал(а) ginnie - 16.6.2008, 23:36 -------------------- Написать код, понятный компьютеру, может каждый, но только хорошие программисты пишут код, понятный людям. (Мартин Фаулер. Рефакторинг) |
|||
|
||||
| nitr |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2543 Регистрация: 10.2.2006 Где: Россия :) Репутация: 12 Всего: 84 |
ваш подход мне ясен. Спасибо. Имхо, со временем заменить стоит ;) |
|||
|
||||
| tolkien |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 277 Регистрация: 5.4.2008 Репутация: нет Всего: 4 |
Я бы не использовал БД. Зачем она нужна там где без нее легко обойтись?
Можно поступить так 1.генерим случайную послед букв и цифр для картинки $captch_str 2.генерим саму картинку $captch_image содержащее $captch_str 3. генерим случайное имя файла для капчи $name_captch фиксированной длины. 4. создаем 2 файла 1й файл. картинка $captch_image с именем $name_capth.jpg 2ой файл с $captch_str c именем $name_captch.txt 5. добавляем $name_captch в файл $captch.txt В процессе работы случайным образом выбираем $namt_captch из файла $captch.txt. Кол.во записей опред. размер файла и делится на длину записи $name_captch. И дальше остается только случайным образом сгенерить число. Помоему это будет работать гораздо быстрее чем варианты с БД. |
|||
|
||||
| dmitryk1 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 118 Регистрация: 10.6.2008 Где: Новосибирск Репутация: нет Всего: 2 |
поищи tiddleWiki. В браузерах типа файерфокса он позволяет сохранять в себя бинарные файлы. А поскольку он сам страничка, получается что это именно то, что надо. Кстати, ещё пример - электронное письмо с вложением. Только они не бинарными вставляются, а перекодируются во что-то. |
|||
|
||||
| Ramirez |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 305 Регистрация: 18.1.2005 Где: Moscow, ExUSSR Репутация: 1 Всего: 5 |
Иногда очень хочется отдать данные вместе со страницей. Картинки например. Чтобы не генерить доп. обращений к серверу...
а ведь давноесть способ (и не только с картинками): <IMG SRC="data:image/gif;base64,[...]"> [...] - вместо этого идет картинка закодированная в base64. Но как всегда в IE это не работает (незнаю как в 7 версии) =\ вот пример как это работает: http://www.greywyvern.com/code/php/binary2base64 кстати, про IE7: http://dean.edwards.name/weblog/2005/06/base64-ie/ Вауу, это даже в IE6 (6.0.2900) работает! http://dean.edwards.name/my/base64-ie.html Это сообщение отредактировал(а) Ramirez - 13.8.2008, 20:19 |
|||
|
||||
| gcc |
|
|||
![]() Агент алкомафии ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2691 Регистрация: 25.4.2008 Где: %&й Репутация: 2 Всего: 17 |
попросили сделать эту эрунду
сейчас хоть убей, но картинка просто пустая может кто-то показать рабочую, или в чем проблема?
|
|||
|
||||
| gcc |
|
|||
![]() Агент алкомафии ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2691 Регистрация: 25.4.2008 Где: %&й Репутация: 2 Всего: 17 |
включаю ее так http://domain.ru/captcha.pl
|
|||
|
||||
| shamber |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1422 Регистрация: 5.9.2006 Где: Россия Репутация: нет Всего: 18 |
стормозил
Это сообщение отредактировал(а) shamber - 30.1.2009, 15:07 |
|||
|
||||
| gcc |
|
|||
![]() Агент алкомафии ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2691 Регистрация: 25.4.2008 Где: %&й Репутация: 2 Всего: 17 |
я еще вспомнил это в книге "Рецепты для Программирования на perl" по-моиму 3 издание это было
кстате, я вот не понял, зачем генерить случайно число и криптографировать его? если бот будет перебирать цыфры которые на картинке и вводить все в подрят, то в чем смылс от еще одного случайно числа или от криптографирования его? (если от перебора цифр и букв, то проще просто банить тех кто много раз вводит не правильно ...) Это сообщение отредактировал(а) gcc - 30.1.2009, 18:38 |
|||
|
||||
| Usmanec |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 24.2.2009 Репутация: нет Всего: нет |
Могу предложить рабочий пример.
Скрипт гостевой находиться на одном серваке каптча на другом и все работает! Форма с каптчей (Можно теститить сколько влезет сайт давно умер...) Каптча Каждый раз циферки каптчи разные (Всмысле прорисовываются по разному, делал, что они еще плясали то в лево наклонятся то в право и тд, но не понравилось). (Зайдите по ссылке и пообоновляйте страницу...) Скрипт каптчи
Обрезанный скрипт формы
Это сообщение отредактировал(а) Usmanec - 26.2.2009, 23:12 |
||||
|
|||||
| gcc |
|
|||
![]() Агент алкомафии ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2691 Регистрация: 25.4.2008 Где: %&й Репутация: 2 Всего: 17 |
вот нашел модель http://search.cpan.org/~kazeburo/Catalyst-...ugin/Captcha.pm но дело не в этом...
подскажите, по каким причинам картинка может не выводиться в mod_perl? в собственном сервере catalyst'a выводиться... в CGI по-моиму выдавалась нормально может загловок криво выдается, но пока не нашел как посмотреть или поменять.... Это сообщение отредактировал(а) gcc - 2.10.2009, 14:22 |
|||
|
||||
| gcc |
|
|||
![]() Агент алкомафии ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2691 Регистрация: 25.4.2008 Где: %&й Репутация: 2 Всего: 17 |
в /myapp_server.pl -r выводиться
а в mod_perl2 не хочет
|
|||
|
||||
| gcc |
|
|||
![]() Агент алкомафии ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2691 Регистрация: 25.4.2008 Где: %&й Репутация: 2 Всего: 17 |
догадываюсь что проблема в print $c->create_captcha(); то что mod_perl ее не видит через print ?
нашел метод body, но пусто тоже самое, как это отправить в mod_perl2?
|
|||
|
||||
| gcc |
|
||||
![]() Агент алкомафии ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2691 Регистрация: 25.4.2008 Где: %&й Репутация: 2 Всего: 17 |
сделал, я наверное не допонял
в шаблон поставить:
|
||||
|
|||||
![]()
|
| Правила форума "Perl: CGI программирование" | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Perl: разработка для Web | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |