![]() |
|
Модераторы: korob2001, ginnie |
![]()
|
|
| 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 |
попросили сделать эту эрунду
сейчас хоть убей, но картинка просто пустая может кто-то показать рабочую, или в чем проблема?
|
|||
|
||||
![]()
|
| Правила форума "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. |