Santyago

Рейтинг
139
Регистрация
15.07.2008
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:

Ладно, установил я каптчу от http://www.captcha.ru/
Боты бойтесь :)

О! Чувствуется профессионал и влюблённый в своё дело человек! :)

Вместо того, чтобы доказывать свою правоту, подумал и сделал! Респект! 🍻

Мысли по поводу Аякса отпишу вечером. Может, подскажу чего полезное...

LEOnidUKG:
Если Б не аякс, конечно можно было обойтись и простой капчей, но я не знаю как реализовать с помощью Ajax-а это :(

Да так же, как и без Аякса :)

Могу предложить варианты и с использованием БД, так и без.

LEOnidUKG:
также есть простой способ проверки куков. Если куков нету значит скрипт.

Это уже ближе к правде... И каждый кук делать уникальным с временем валидности, скажем, 1 час, и сохранять его в БД. Если кук есть и он валидный, то просто его продлевать. Плюс к этому ограничение количества выдач новых куков на один IP. И всё. Это всё тоже обходится, конечно. Но уже не каждый школьник сможет за***ть сайт с комментами на этом скрипте. :) Удачи!

LEOnidUKG:
Запатентовать что-ли... :)

Аха. И мну в соавторы взять... ☝

LEOnidUKG:
и куда они пошлют данные? у меня action="", но самого скрипта нету на этой странице т.к. данные отправляются через ajax, а чтобы они отправились нужно обязательно нажать на кнопочку :)

Та совершенно всё равно, как они отправляются. Я любым сниффером посмотрю, что уходит на сервер при отправке комментария и элементарным скриптом заспамлю по полной программе. Если будет Капча - всё становится сложнее.

В любом случае, делать доступность кнопки отправки по наведению мышью в качестве защиты от ботов - это новаторский подход. :)

LEOnidUKG:

1. Насчёт капчи, есть куча вариантов как обойтись без этих стреотипов. Можно например, чтобы кнопка отправки была доступна, только после наведения мышки, у ботов есть мышка? не думаю :)

Это я не осилил. 😕

Ботам вообще не пофигу наличие кнопки на форме? Главное, чтобы action у формы был прописан и был известен формат запроса. И вот тут уже возможны варианты...

Master_globus:
Гуру,обращаюсь к Вам за советом. Как можно вырезать данный кусок?
Пытаюсь из кода вырезать через str_replace следующие:
<div id='svtov' style='visibility: visible; display: none;'>

<a href="javascript: void(showText('svtov'));">Сопутствующие товары. ПОСМОТРЕТЬ</a>


Делаю так
$где вырезаем = 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;'>"

bubl1k:
Не обязательно делать двойные страницы, можно обойтись и без onclick, просто перехватывать javascript'ом клики нужных ссылок.
Будут довольны и поисковики и посетители с отключенным javascript'ом.
Почитайте про «ненавязчивый javascript».

Угу. И как по-вашему сделать возможность выбрать товар и отправить ссылку на него, просто скопировав ссылку из строки адреса, как это сделано сейчас?

Всего: 304