Не мое дело конечно, но я бы посоветовал для парсинга XML использовать библиотеку SimpleXML. Ну или любую другую, предназначенную для работы с XML форматом. Это намного проще, чем взрывать мозг регулярными выражениями.
Ну тогда браузер у Вас удалит эти куки только после истечения времени. Нужно добиться, что бы PHP при установки сессии посылал куки без указания времени, тогда скорее всего они будут удалятся при закрытии вкладки. На вскидку сразу не скажу как это сделать, надо покопать. Как вариант выставить время жизни сессии в 0, посмотрите что в куки запишется в этом случае.
Есть форма. Есть метод поверки что ввели и выдачи капчи. После проверки капчи данные куда-то передаются.
Есть юзер зареганый, а есть не зареганый. Для зареганого юзера проблем постаить лимит на попытки нету. Проблема возникает когда юзер незареганый. Как ему лимит то "назначить"? К чему привязать? Куда сохранить временные данные? И по какому признаку блокировать? По IP не вариант скорее всего...
Как вариант в сессии хранить данные, правда это легко обходится обнулением идентификатора. Честно говоря я не в курсе, сохраняют ли cookie спам-роботы, думаю что врядли. Кстати можно сначала проверить возможность установки cookie и сохранять число неуспешных попыток в сессии, потом блокировать именно по сессиям.. но опять же это все так..
Еще один вариант связывать кол-во попыток с IP, но это может негативно отразится на локальных сетях и пользователей прокси-серверов... (Добавление)
DeepVarvar пишет:
Идея только одна:
Стартовать сессию всегда. И давать уникальный cid, на каждой странице новый, и зареганым и незареганым. Иметь стек с данными обо всех сразу. Там и считать кто, что и сколько раз делал. Зато можно логировать.
Если некий клиент, cid сессии не футболит обратно - значит 99% это не юзер с браузера, а бот.. Тогда сразу - хер ему в зубы.
Повесьте на страницу Javascript, который будет посылать Ajax запрос к сереверу с этим ключевым словом. В ответ от сервера возвращайте JSON данные, о том есть ли интересующие данные или нет.. ну и повесте этот скрипт на таймер
Прошу прощения, не верно понял задачу. Если страница не вашего сайта - через curl получать html код страницы, а дальше парсить его - можно попробовать в DOM перегнать...
А можно как-нибудь по другому? Можно на серверной стороне вызвать второй скрипт, передать ему параметры, чтобы он выполнился в отдельном потоке и просто вернул результат, не?
Самый идеальный вариант - это написать SOAP сервис для второго скрипта, и из первого его использовать. Покопайте на эту тему, в PEAR уже есть классы для работы с SOAP...