Готового решения не видел, а так из мыслей - css-фильтр blur, картинки капель в случайных местах. Это для появления эффекта.
Для стирания - не знаю, возможно что-то на svg или canvas придётся делать.
Почему-то вспомнилось http://bash.im/quote/435718
Насколько я в курсе, у какого-то cdn была защита от ботов (cloudfront вроде) - сначала загружалась страница, там выполнялся js и затем уже открывалась нужная страница.
Еще есть какая-то защита на https://www.crunchbase.com/ - попробуйте дернуть несколько раз страницу скриптом - там по-моему будет название сервиса.
Но это если внешние сервисы использовать - они денег стоят и как на Seo отразятся - не знаю.
Какую ошибку конкретно выдает?
Вообще ругается из-за того, что у вас переменная $product в том месте в шаблоне не определена.
Либо вы её вообще туда не передаете, может опечатка в имени или она в другом скоупе (в цикле, например используется, а вы её вне цикла хотите использовать).
Ну вот по таймеру и проверяйте, есть ли форма. Как форму нашли - выполняйте нужный код и отключайте таймер.
Подозреваю, что вот этот скрипт
<script> /* <![CDATA[ */ jQuery(document).bind("keydown", function(e) { if(e.ctrlKey && (e.which == 65 || e.which == 67 || e.which == 88 || e.which == 83 ||e.which == 85)) { e.preventDefault(); return false; } }); jQuery(document).on( "mousedown", function(event) { if(event.which=="3") { document.oncontextmenu = document.body.oncontextmenu = function() {return false;} } }); /* ]]> */ </script>
Но это всё защита от школьников. F12 не запретили.
Во-первых, discount перевдится как скида - вы точно цену выбираете?
Во-вторых, какой тип поля у discount? Судя по результатам - наверно строка какая-то.
Деньги вообще принято хранить в DECIMAL(10,2) например, даже не во float
Clickjacking нужен, чтобы чел кликал по какому-то элементу сайта, а его втихаря подписывало на канал.
Делается это наоборот - не сверху виджета ставится блок, а наоборот - виджет делается прозрачным и ставится над кнопкой на сайте.
А что должно быть в логах, если скрипт/css не загрузился? Или для каждой страницы надо знать какие скрипты/стили на ней используются и по отсутствию запросов на них определять, что они не загрузились?
Из промышленных решений возможно вам подойдёт https://newrelic.com/browser-monitoring или какой-нибудь аналог. Но не уверен, что он всем вашим требованиям удовлетворяет.
Ну и если у пользователя проблемы с сетью - банально код самого newrelic может не загрузиться.
А если чисто под вас - то скорее всего самопис, проверяющий наличие определённых блоков на странице, глобальных переменных и т.п. Только вот проблема в том, что непрогрузиться они могут из-а проблем с инетом, тогда и к вам на сервер отправить все данные об ошибках не смогут. Ну как вариант - хранить их в localStorage, а при появлении инета - уже отправлять на сайт. Но это опять же, если ваш сайт таки прогрузится.