Boris A Dolgov: php он сам дурацкий... Язык, в котором возможна конструкция
$a = "b";
$$a = "123";
echo 2+$b;
ИМХО по определению нельзя оптимизировать на нормальное выполение.
Но, с другой стороны, он - самое то для начинающих программистов... Которые на си наделали бы больших глупостей.
Бред какой-то. Какое отношение имеет синтаксис языка к "нормальному выполнению"? Кстати, что это вообще такое?
Какие глупости можно наделать в Си, от которых ПХП уберегает "начинающих программистов"?
И наконец, а ничего, что Яху на ПХП писан? Не смущает? Ещё примеров привести?
LEOnidUKG: да я уже смотрел, есть у меня пример на аяксе, но доверия он у меня не вызвал. Да всё стандартно, но там проверяется запросом типо если всё ок 1 если нет то 0, я вот лично думаю, что спамерам не составит труда подставить эту "1" в запрос и проспамить.
Не. 1 и 0 - это для школьников. :)
Можно сделать так:
1. При инсталляции компонента или его первом запуске генерируется ключ, скажем, символов на 10 и записывается в конфиг-файл.
2. При запросе на картинку Капчи она генерируется либой и вместе с ней клиенту уходит кук с таким содержимым: md5( "НОМЕР_В_КАПЧЕ:УНИКАЛЬНЫЙ_КЛЮЧ" ). Не зная ключа, подобрать методом перебора номер невозможно. В принципе, зная правильный номер и соответствующий ему хеш, можно подобрать ключ, но если он будет больше 10 символов и цифро-буквенный, то подбирать будут долго.... 🚬 Я бы делал символов на 20... ;)
3. Во время отправки комментария Аяксом, уходит введенный номер капчи и кук.
4. На сервере делаем md5( "НОМЕР_ИЗ_ФОРМЫ:УНИКАЛЬНЫЙ_КЛЮЧ" ) и сравниваем полученный хеш с тем, что пришёл в куке. Если совпал - сохраняем и отдаём назад complete. Если не совпал - страшно матюкаемся. :)
LEOnidUKG: также есть простой способ проверки куков. Если куков нету значит скрипт.
Это уже ближе к правде... И каждый кук делать уникальным с временем валидности, скажем, 1 час, и сохранять его в БД. Если кук есть и он валидный, то просто его продлевать. Плюс к этому ограничение количества выдач новых куков на один IP. И всё. Это всё тоже обходится, конечно. Но уже не каждый школьник сможет за***ть сайт с комментами на этом скрипте. :) Удачи!
LEOnidUKG: и куда они пошлют данные? у меня action="", но самого скрипта нету на этой странице т.к. данные отправляются через ajax, а чтобы они отправились нужно обязательно нажать на кнопочку :)
Та совершенно всё равно, как они отправляются. Я любым сниффером посмотрю, что уходит на сервер при отправке комментария и элементарным скриптом заспамлю по полной программе. Если будет Капча - всё становится сложнее.
В любом случае, делать доступность кнопки отправки по наведению мышью в качестве защиты от ботов - это новаторский подход. :)
1. Насчёт капчи, есть куча вариантов как обойтись без этих стреотипов. Можно например, чтобы кнопка отправки была доступна, только после наведения мышки, у ботов есть мышка? не думаю :)
Это я не осилил. 😕
Ботам вообще не пофигу наличие кнопки на форме? Главное, чтобы action у формы был прописан и был известен формат запроса. И вот тут уже возможны варианты...
bubl1k: Не обязательно делать двойные страницы, можно обойтись и без onclick, просто перехватывать javascript'ом клики нужных ссылок.
Будут довольны и поисковики и посетители с отключенным javascript'ом.
Почитайте про «ненавязчивый javascript».
Угу. И как по-вашему сделать возможность выбрать товар и отправить ссылку на него, просто скопировав ссылку из строки адреса, как это сделано сейчас?
php он сам дурацкий... Язык, в котором возможна конструкция
$a = "b";
$$a = "123";
echo 2+$b;
ИМХО по определению нельзя оптимизировать на нормальное выполение.
Но, с другой стороны, он - самое то для начинающих программистов... Которые на си наделали бы больших глупостей.
Бред какой-то. Какое отношение имеет синтаксис языка к "нормальному выполнению"? Кстати, что это вообще такое?
Какие глупости можно наделать в Си, от которых ПХП уберегает "начинающих программистов"?
И наконец, а ничего, что Яху на ПХП писан? Не смущает? Ещё примеров привести?
да я уже смотрел, есть у меня пример на аяксе, но доверия он у меня не вызвал. Да всё стандартно, но там проверяется запросом типо если всё ок 1 если нет то 0, я вот лично думаю, что спамерам не составит труда подставить эту "1" в запрос и проспамить.
Не. 1 и 0 - это для школьников. :)
Можно сделать так:
1. При инсталляции компонента или его первом запуске генерируется ключ, скажем, символов на 10 и записывается в конфиг-файл.
2. При запросе на картинку Капчи она генерируется либой и вместе с ней клиенту уходит кук с таким содержимым: md5( "НОМЕР_В_КАПЧЕ:УНИКАЛЬНЫЙ_КЛЮЧ" ). Не зная ключа, подобрать методом перебора номер невозможно. В принципе, зная правильный номер и соответствующий ему хеш, можно подобрать ключ, но если он будет больше 10 символов и цифро-буквенный, то подбирать будут долго.... 🚬 Я бы делал символов на 20... ;)
3. Во время отправки комментария Аяксом, уходит введенный номер капчи и кук.
4. На сервере делаем md5( "НОМЕР_ИЗ_ФОРМЫ:УНИКАЛЬНЫЙ_КЛЮЧ" ) и сравниваем полученный хеш с тем, что пришёл в куке. Если совпал - сохраняем и отдаём назад complete. Если не совпал - страшно матюкаемся. :)
Вроде не сложно.
Ладно, установил я каптчу от http://www.captcha.ru/
Боты бойтесь :)
О! Чувствуется профессионал и влюблённый в своё дело человек! :)
Вместо того, чтобы доказывать свою правоту, подумал и сделал! Респект! 🍻
Мысли по поводу Аякса отпишу вечером. Может, подскажу чего полезное...
Если Б не аякс, конечно можно было обойтись и простой капчей, но я не знаю как реализовать с помощью Ajax-а это :(
Да так же, как и без Аякса :)
Могу предложить варианты и с использованием БД, так и без.
также есть простой способ проверки куков. Если куков нету значит скрипт.
Это уже ближе к правде... И каждый кук делать уникальным с временем валидности, скажем, 1 час, и сохранять его в БД. Если кук есть и он валидный, то просто его продлевать. Плюс к этому ограничение количества выдач новых куков на один IP. И всё. Это всё тоже обходится, конечно. Но уже не каждый школьник сможет за***ть сайт с комментами на этом скрипте. :) Удачи!
Запатентовать что-ли... :)
Аха. И мну в соавторы взять... ☝
и куда они пошлют данные? у меня action="", но самого скрипта нету на этой странице т.к. данные отправляются через ajax, а чтобы они отправились нужно обязательно нажать на кнопочку :)
Та совершенно всё равно, как они отправляются. Я любым сниффером посмотрю, что уходит на сервер при отправке комментария и элементарным скриптом заспамлю по полной программе. Если будет Капча - всё становится сложнее.
В любом случае, делать доступность кнопки отправки по наведению мышью в качестве защиты от ботов - это новаторский подход. :)
1. Насчёт капчи, есть куча вариантов как обойтись без этих стреотипов. Можно например, чтобы кнопка отправки была доступна, только после наведения мышки, у ботов есть мышка? не думаю :)
Это я не осилил. 😕
Ботам вообще не пофигу наличие кнопки на форме? Главное, чтобы action у формы был прописан и был известен формат запроса. И вот тут уже возможны варианты...
Гуру,обращаюсь к Вам за советом. Как можно вырезать данный кусок?
Пытаюсь из кода вырезать через str_replace следующие:
Делаю так
$где вырезаем = str_replace('<div id='svtov' style='visibility: visible; display: none;'>', '', $где вырезаем);$где вырезаем = str_replace('<a href="javascript: void(showText('svtov'));">Сопутствующие товары. ПОСМОТРЕТЬ</a>', '', $где вырезаем);
Но почему то не работает.
А id='svtov' и т.п. кто слэшить будет?
'<div id=\'svtov\' style=\'visibility: visible; display: none;\'>'
или так
"<div id='svtov' style='visibility: visible; display: none;'>"
Не обязательно делать двойные страницы, можно обойтись и без onclick, просто перехватывать javascript'ом клики нужных ссылок.
Будут довольны и поисковики и посетители с отключенным javascript'ом.
Почитайте про «ненавязчивый javascript».
Угу. И как по-вашему сделать возможность выбрать товар и отправить ссылку на него, просто скопировав ссылку из строки адреса, как это сделано сейчас?