Hallo mede devvers,
ik wil enige data van een website halen. Alleen is de website geschreven in ASP.NET en is de data alleen te krijgen via een link (een postback).
Nu dacht ik, mooi die functie doPostback geeft twee variabele mee. __EVENTTARGET en __EVENTARGUMENT, de viewste laat ik leeg. Net als de __EVENTARGUMENT.
De variabele __EVENTTARGET is het control dat de postback triggerd.
dus ik dacht, ik kan gewoon met php dat form posten.
dit is de php code waarmee ik een post formulier kan simuleren.
nu dacht ik als ik dan dit doe,
krijg ik mooi de html terug:
nu krijg ik wel iets terug, maat niet wat ik terug moet/wil krijgen.
Weet iemand of het mogelijk is om een postback event te triggeren vanuit php?
[UPDATE]
als ik de viewstate kopier en WEL meestuur werkt het wel.
Als ik em leeg laat werkt het NIET.
Zou dit liggen aan dat asp.net altijd iets wil hebben als viewstate, of zou er gecontroleerd worden op een variabele erin. Het nadaal is nu wel dat ik de HELE viewstate van de begin pagina iedere keer verstuur. Maar goed...
ik wil enige data van een website halen. Alleen is de website geschreven in ASP.NET en is de data alleen te krijgen via een link (een postback).
Nu dacht ik, mooi die functie doPostback geeft twee variabele mee. __EVENTTARGET en __EVENTARGUMENT, de viewste laat ik leeg. Net als de __EVENTARGUMENT.
De variabele __EVENTTARGET is het control dat de postback triggerd.
dus ik dacht, ik kan gewoon met php dat form posten.
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
| function http_post($server, $port, $url, $vars) { $user_agent = "Mozilla/4.0 (compatible; MSIE 5.5; Windows 98)"; $urlencoded = ""; while (list($key,$value) = each($vars)) $urlencoded.= urlencode($key) . "=" . urlencode($value) . "&"; $urlencoded = substr($urlencoded,0,-1); $content_length = strlen($urlencoded); $headers = "POST $url HTTP/1.1 Accept: */* Accept-Language: en-au Content-Type: application/x-www-form-urlencoded User-Agent: $user_agent Host: $server Connection: Keep-Alive Cache-Control: no-cache Content-Length: $content_length "; $fp = fsockopen($server, $port, $errno, $errstr); if (!$fp) { return false; } fputs($fp, $headers); fputs($fp, $urlencoded); $ret = ""; while (!feof($fp)) $ret.= fgets($fp, 1024); fclose($fp); return $ret; } |
dit is de php code waarmee ik een post formulier kan simuleren.
nu dacht ik als ik dan dit doe,
krijg ik mooi de html terug:
PHP:
1
2
3
4
5
6
| http_post( "www.domein.com", 80, "/pagina.aspx", array("__EVENTTARGET" => "MyDataGrid:_ctl34:_ctl1", "__EVENTARGUMENT" => "") ) |
nu krijg ik wel iets terug, maat niet wat ik terug moet/wil krijgen.
Weet iemand of het mogelijk is om een postback event te triggeren vanuit php?
[UPDATE]
als ik de viewstate kopier en WEL meestuur werkt het wel.
Als ik em leeg laat werkt het NIET.
Zou dit liggen aan dat asp.net altijd iets wil hebben als viewstate, of zou er gecontroleerd worden op een variabele erin. Het nadaal is nu wel dat ik de HELE viewstate van de begin pagina iedere keer verstuur. Maar goed...
[ Voor 13% gewijzigd door Verwijderd op 30-08-2003 16:27 ]