Генерация безопасных переменных ASP POST - PullRequest
0 голосов
/ 18 февраля 2011

Я хочу проанализировать результаты поиска одного сайта, построенного на ASP, с использованием PHP CURL. Нет проблем с DOM, но есть проблема с переменными POST. И я не знаю, как сгенерировать его в моем PHP-скрипте.

ASP генерирует 6 переменных с префиксом __.

__EVENTTARGET
__EVENTARGUMENT (has Value like base 64 encoded)
__LASTFOCUS
__VIEWSTATE (has Value)
__VIEWSTATEENCRYPTED
__EVENTVALIDATION (has Value like base 64 encoded)

И я попытался скопировать данные POST из моего браузера с помощью httpfox, и с этими данными скрипт работает полчаса:

...
define('POSTVARS', '__EVENTTARGET=&__EVENTARGUMENT=&__LASTFOCUS=&__VIEWSTATE=1wI2MmTCR4DM7poU...
...
url_setopt($ch, CURLOPT_POSTFIELDS    ,POSTVARS);
...

Как генерировать __EVENTARGUMENT, __VIEWSTATE и __EVENTVALIDATION?

PS. Сайт разбора http://nakolesah.ru/. Я разбираю результат формы. Идентификатор кнопки отправки формы - "ctl00_contentPlaceHolder_btnSearchWheels". Страница результатов: http://nakolesah.ru/wheels/podbor/porazmeru.aspx.

1 Ответ

3 голосов
/ 18 февраля 2011

Вы не можете генерировать эти значения. Они генерируются ASP.NET, зашифровываются с помощью ключей машинного сервера и имеют определенную достоверность. Единственный способ выполнить эту работу - сначала отправить запрос GET на главную страницу, очистить HTML-код, получить значения этих скрытых полей, а затем отправить запрос POST, используя значения, которые вы прочитали.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...