2011-02-18 41 views
0

我想使用PHP CURL解析在ASP上構建的一個站點的搜索結果。 DOM沒有問題,但是POST變量有問題。我不知道如何在我的PHP腳本中生成它。生成ASP POST安全變量

ASP使用__前綴生成6個變量。

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

,我試圖從我的瀏覽器使用的是HttpFox該數據的腳本,並與幫助後複製數據的工作小時的一半:

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

如何產生__EVENTARGUMENT,__VIEWSTATE和__EVENTVALIDATION?

PS。解析網站是http://nakolesah.ru/。我解析表單的結果。表單提交按鈕的ID是「ctl00_contentPlaceHolder_btnSearchWheels」。結果頁面是:http://nakolesah.ru/wheels/podbor/porazmeru.aspx

回答

3

您無法生成這些值。它們由ASP.NET生成,並使用服務器密鑰加密並具有一定的有效性。使這項工作的唯一方法是首先發送GET請求到主頁面,刮取HTML,獲取這些隱藏字段的值,然後使用您讀取的值發送POST請求。

+0

aham,Thanx,我會盡力做到這一點。 – Mirgorod 2011-02-18 09:28:26