Регистрация
Вход через соцсети
Восстановление пароля

Защита форм картинкой. Замечания!!!

Новый топик
01.12.2006, 09:54
Ответить | Цитировать
DiGGy
DiGGy
DiGGy

Зарегистрирован:
2005-04-04
Сообщений: 1546

В 2.4 в последнем апдейте появилась возможность защиты форм картинкой. Публикую своЈ резюме на эту тему:

1. Отсутствует какое-либо описание, документация, примеры реализации (ну это мелочь, по исходникам и так можно всЈ понять... только далеко не всем)

2. При отсутсвии библиотеки GD никакой информации не выводится - просто картинка не отобразится как и все остальное - и всЈ. Чтобы понять причины и решить проблему - по исходникам понять можно... улыбка

3. А вот что самое интересное - это то, что некорректно реализован этот механизм. ВсЈ замечательно работает, если форма добавления стандартная. Но, при составлении альтернативной формы добавления возникает нюансик: указываемые мною $warnText - переопределяются в конце файлика message_fields.php, причем переопределяются текстом с заранее заданным языком, т.е. если у меня админка на РУС. языке, а мне надо вывести ошибку на АНГЛ. языке, то я обламаюсь.

Не нашел ничего более простого, чем изменить движок:
Код:

было:
$warnText = NETCAT_MODULE_CAPTCHA_WRONG_CODE;

сделал:
if (!$warnText) $warnText = NETCAT_MODULE_CAPTCHA_WRONG_CODE;

При таком раскладе, если я уже определил $warnText, то переопределение не происходит...
Это не самое оптимальное решение проблемы. Самым оптимальным - было бы переписать логику работу.

зы: Отсюда и вопрос к разработчикам - кто чем думал, когда это создавал?

Temet nosce...
01.12.2006, 14:59
Ответить | Цитировать
Кирилл Хряпин

Зарегистрирован:
2006-06-15
Сообщений: 207

DiGGy писал(а):
1. Отсутствует какое-либо описание, документация, примеры реализации (ну это мелочь, по исходникам и так можно всЈ понять... только далеко не всем)

На странице "Обновление системы" не случайно красным по белому указано "Внимание! Перед установкой обновления необходимо прочитать инструкцию, прилагаемую к каждому патчу."

Убедительно просим Вас выполнять эту рекомендацию.

Если бы Вы потрудились пролистать инструкцию для обновления 243, то, думаю, заметили следующую строку:
"Подробнее о новых возможностях системы и ее модулей можно узнать в документации."
(Именно так, жирным шрифтом; ниже идут ссылки для скачивания документации. На всякий случай: Вы можете скачать документацию здесь - http://netcat.ru/support/docs/. В частности, в руководстве по модулям Вы найдете как описание механизма защиты форм картинкой в целом, так и всех функций, с примерами использования для альтернативных форм и форума.)

DiGGy писал(а):
2. При отсутсвии библиотеки GD никакой информации не выводится - просто картинка не отобразится как и все остальное - и всЈ. Чтобы понять причины и решить проблему - по исходникам понять можно... улыбка

Или прочитать документацию.

DiGGy писал(а):
3. А вот что самое интересное - это то, что некорректно реализован этот механизм. ВсЈ замечательно работает, если форма добавления стандартная. Но, при составлении альтернативной формы добавления возникает нюансик: указываемые мною $warnText - переопределяются в конце файлика message_fields.php, причем переопределяются текстом с заранее заданным языком, т.е. если у меня админка на РУС. языке, а мне надо вывести ошибку на АНГЛ. языке, то я обламаюсь.

Переопределение $warnText - стандартное поведение NetCat на данный момент; возможно, оно будет изменено в одной из следующих версий системы.

Что касается языка админки - он тут не при чем. Если в настройках сайта указан английский язык, сообщения будут выводиться на английском.

Кроме того, если используется альтернативная форма, можно вывести любое сообщение. Пример, опять же, Вы найдете в документации.

DiGGy писал(а):
зы: Отсюда и вопрос к разработчикам - кто чем думал, когда это создавал?

зы: На какой ответ Вы расчитываете, когда пишете сообщения в подобном тоне?
04.12.2006, 13:05
Ответить | Цитировать
DiGGy
DiGGy
DiGGy

Зарегистрирован:
2005-04-04
Сообщений: 1546

kx писал(а):
"Подробнее о новых возможностях системы и ее модулей можно узнать в документации."


В онлайн документации этого не было. chm файлы не скачивал, поэтому и не видел. каюсь.

kx писал(а):
DiGGy писал(а):
2. При отсутсвии библиотеки GD никакой информации не выводится - просто картинка не отобразится как и все остальное - и всЈ. Чтобы понять причины и решить проблему - по исходникам понять можно... улыбка

Или прочитать документацию.

Согласитесь, что намного удобнее, если система сама выдаст сообщение о неустановленном GD.

kx писал(а):
Кроме того, если используется альтернативная форма, можно вывести любое сообщение. Пример, опять же, Вы найдете в документации.

Дык я так и делал, как у Вас в документации:
Код:

if ( !nc_captcha_verify_code($nc_captcha_code, $nc_captcha_hash) ) {
$posting = 0;
$warnText = "Неправильный код!";
}

только вот переменная $warnText потом переопределялась в message_fields.php... отсюда и весь каламбур

kx писал(а):
DiGGy писал(а):
зы: Отсюда и вопрос к разработчикам - кто чем думал, когда это создавал?

зы: На какой ответ Вы расчитываете, когда пишете сообщения в подобном тоне?

Тон сообщения тут не определен. Тут лишь указано вопросительное предложение. И вопрос этот идет как следствие указанной выше причины. Если это чем-то задело - приношу извинения.

Temet nosce...
198 196 2006-12-04 13:05:02 8818
Описание проекта