[php] Postback triggeren in ASP.NET

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
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.

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 ]


Acties:
  • 0 Henk 'm!

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 08:24

gorgi_19

Kruimeltjes zijn weer op :9

Of je moet je Viewstate disablen in de pagina. Echter, of alle controls dan nog goed werken is een tweede, en daar zal je zelf workarounds voor moeten bedenken.

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Het probleem is dat ik NIET de eigenaar ben van de te openen pagina.
Komt er op neer dat ik bijv een review van tweakers.net wil plukken.

Het gekken is dat als ik de viewstate wel mee stuur (alleen die van de eerste pagina) dan werkt het wel. Maar laat ik de viewstate leeg.... dan werkt het niet meer.

Acties:
  • 0 Henk 'm!

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 08:24

gorgi_19

Kruimeltjes zijn weer op :9

Verwijderd schreef op 30 August 2003 @ 17:31:
Het probleem is dat ik NIET de eigenaar ben van de te openen pagina.
Komt er op neer dat ik bijv een review van tweakers.net wil plukken.

Het gekken is dat als ik de viewstate wel mee stuur (alleen die van de eerste pagina) dan werkt het wel. Maar laat ik de viewstate leeg.... dan werkt het niet meer.
wat is daar gek aan?

enig idee waar de viewstate voor dient? zo nee, dan kan het in ieder geval geen kwaad om hier eens naar te kijken en wat het doet voor een postrequest en waar het algemeen voor dient.

[ Voor 14% gewijzigd door gorgi_19 op 30-08-2003 17:35 ]

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik heb zelf met asp.net gewerkt.

de viewstate is bedoeld om het clientside cachen van de startwaarden van de controls.
Het gaat mij om de inhoud van een "pagable" datagrid, waarbij de volgende page NIET in de viewstate staat/wordt opgeslagen. Dus is de viewstate niet nodig.
Ik heb geprobeerd een "lege" asp.net viewstate te sturen, maar daar reageerde de andere kant niet op.

Waarschijnlijk slaat de applicatie toch iets op in de viewstate die die na een postback nodig heeft.