Небольшой опыт из реальной жизни с оттенком "никогда бы не подумал".
А рецепт до безумия прост:
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 будет добавлен перенос строки, а это уже невалидная картинка.