Небольшой опыт из реальной жизни с оттенком "никогда бы не подумал".
А рецепт до безумия прост:
1. Создайте модуль и при установке подпишитесь на событие OnProlog.
2. В include.php своего модуля объявите класс с методом-обработчиком.
3. В конце файла include.php оставьте перенос строки после закрывающего "?>" (а если у вас платный модуль с демо-режимом вы не можете не написать этот закрывающий тег, все ведь в курсе, да?)
Profit!
Первым признаком такой безобидной шалости является ошибка при проверке сайта "Лишний вывод в файлах конфигурации" (хотя в dbcon и init.php ничего лишнего нет).
Работает достаточно просто: стандартная каптча генерируется запросом к php-скрипту который обратно (в stdout) возвращает картинку. Однако "благодаря" подключению (include при отправке события подписчику) нашего обработчика в stdout будет добавлен перенос строки, а это уже невалидная картинка.
А рецепт до безумия прост:
1. Создайте модуль и при установке подпишитесь на событие OnProlog.
2. В include.php своего модуля объявите класс с методом-обработчиком.
3. В конце файла include.php оставьте перенос строки после закрывающего "?>" (а если у вас платный модуль с демо-режимом вы не можете не написать этот закрывающий тег, все ведь в курсе, да?)
Profit!
Первым признаком такой безобидной шалости является ошибка при проверке сайта "Лишний вывод в файлах конфигурации" (хотя в dbcon и init.php ничего лишнего нет).
Работает достаточно просто: стандартная каптча генерируется запросом к php-скрипту который обратно (в stdout) возвращает картинку. Однако "благодаря" подключению (include при отправке события подписчику) нашего обработчика в stdout будет добавлен перенос строки, а это уже невалидная картинка.
Как я и написал выше - косяк из разряда "никогда бы не подумал".
В конце файла include.php оставьте перенос строки после закрывающего "?>"
Это очень строгое правило должно быть - ставишь тег = проверь отсутствие чего бы то ни было после него. Именно поэтому настоятельно не рекомендуется его ставить (кроме случаев когда без него никак, как в платном модуле, да).
Первым признаком такой безобидной шалости является ошибка при проверке сайта "Лишний вывод в файлах конфигурации"
А я то думал, где он у меня такое находит. Видать какой-то модулек корявый стоит.