|
|
01.12.2006, 09:54
|
|
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
|
|
Кирилл Хряпин
NetCat
Зарегистрирован: 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
Зарегистрирован: 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...
|