[PHP] Post vanuit programma opvangen

Pagina: 1
Acties:

  • Funcracker
  • Registratie: Juni 2001
  • Laatst online: 28-04 18:17

Funcracker

The LedZ Collective

Topicstarter
Ik heb al eens een soortgelijke vraag gesteld, maar deze is wat duidelijker denk ik.

Ik heb een programma in C dat in het kort de volgende code bevat:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
s = socket(AF_INET, SOCK_STREAM, 0);

if((err=connect(s, (struct sockaddr*)&http_addr, sizeof(http_addr)))){
    sprintf(tempStr, "Couldn't connect to host %s!", http_host);
    return -1;
}

sprintf(buf, "POST %s HTTP/1.0\r\n", url);
send(s, buf, len, 0);

sprintf(buf, "Host: %s:%d \r\n", http_host, http_port);
send(s, buf, len, 0);

sprintf(buf, "Content-length: 600\r\n\r\n");
send(s, buf, len, 0);

sprintf(buf, "Een willekeurige string");
send(s, buf, len, 0);

De Host en de Content-length vind ik via de HTTP_SERVER_VARS, maar hoe vind ik die laatste string?
Wordt die niet herkend en weggegooid? Aangezien dit een post is leek me dit een HTTP_POST_VARS.. Maar die heeft een sizeof van 0.

Weet iemand hoe ik die regel kan vinden?

I am one hell of a guy, I can do anything I want, only I just don't have the faintest idea what.
Zaphod Beeblebrox, in The Hitch Hiker's Guide To The Galaxy


  • chem
  • Registratie: Oktober 2000
  • Laatst online: 27-08 13:53

chem

Reist de wereld rond

me dunkt dat je nog moet zeggen: var=een willekeurige string of iets dergelijks... dus in je C proggel.

Klaar voor een nieuwe uitdaging.


  • Funcracker
  • Registratie: Juni 2001
  • Laatst online: 28-04 18:17

Funcracker

The LedZ Collective

Topicstarter
Op woensdag 06 februari 2002 16:51 schreef chem het volgende:
me dunkt dat je nog moet zeggen: var=een willekeurige string of iets dergelijks... dus in je C proggel.
Ja.. wat er nu staat is niet zoals het letterlijk gebeurt.. is alleen een korte samenvatting..

Bovendien is het niet mijn C prog.

Het is door iemand anders gemaakt, en werkt ook gewoon.
In Perl werkt, wat ik wil doen, wel.. daar vragen ze die string op via <STDIN>.

I am one hell of a guy, I can do anything I want, only I just don't have the faintest idea what.
Zaphod Beeblebrox, in The Hitch Hiker's Guide To The Galaxy


  • Funcracker
  • Registratie: Juni 2001
  • Laatst online: 28-04 18:17

Funcracker

The LedZ Collective

Topicstarter
Sorry voor 't omhoog kicken.. maar is er niemand die me hiermee kan helpen? Misschien mensen met kennis van Perl en PHP, die weten hoe <STDIN> werkt in PHP?

I am one hell of a guy, I can do anything I want, only I just don't have the faintest idea what.
Zaphod Beeblebrox, in The Hitch Hiker's Guide To The Galaxy


  • franklin
  • Registratie: Februari 2000
  • Laatst online: 14-09 14:27

franklin

denkt teveel...

ik ben ook wel eens met zoiets bezig geweest,.. volgens mij moet er DATA voorstaan anders vind je m niet terug met php!
ik zou er de rfc eens op naslaan.

  • Funcracker
  • Registratie: Juni 2001
  • Laatst online: 28-04 18:17

Funcracker

The LedZ Collective

Topicstarter
Na even rondzoeken, kwam ik de optie fopen("php://stdin") tegen. Maar ook deze is leeg. Toch gebruikt Perl dit wel..

I am one hell of a guy, I can do anything I want, only I just don't have the faintest idea what.
Zaphod Beeblebrox, in The Hitch Hiker's Guide To The Galaxy


Verwijderd

volgens mij werkt php://stdin niet omdat php die al uitgelezen heeft. Check $HTTP_RAW_POST_DATA anders eens?

Anders zou ik het ook niet direct weten...

  • Funcracker
  • Registratie: Juni 2001
  • Laatst online: 28-04 18:17

Funcracker

The LedZ Collective

Topicstarter
Hehe :)
Dankje Trebel..
Maar dat werkt ook niet..

Ik begin sterk de indruk te krijgen dat HTTP_RAW_POST_DATA eruit is gesloopt sinds versie 4 en hoger van PHP ofzo..
Hij is namelijk compleet leeg..

Waar is mijn string nou :? :'(

I am one hell of a guy, I can do anything I want, only I just don't have the faintest idea what.
Zaphod Beeblebrox, in The Hitch Hiker's Guide To The Galaxy


  • Erik Jan
  • Registratie: Juni 1999
  • Niet online

Erik Jan

Langzaam en zeker

Zomaar wat ideeën:
code:
1
Content-Type: application/x-www-form-urlencoded

1) Mik er een Content-Type bij
2) Zet de Content-Length goed
3) Gebruik \n ipv \r\n
4) "POST /script.php HTTP/1.1" ipv 1.0?

This can no longer be ignored.


  • Funcracker
  • Registratie: Juni 2001
  • Laatst online: 28-04 18:17

Funcracker

The LedZ Collective

Topicstarter
Op woensdag 06 februari 2002 21:54 schreef Erik Jan het volgende:
Zomaar wat ideeën:
code:
1
Content-Type: application/x-www-form-urlencoded

1) Mik er een Content-Type bij
2) Zet de Content-Length goed
3) Gebruik \n ipv \r\n
4) "POST /script.php HTTP/1.1" ipv 1.0?
Ehmm.. bedankt voor de tips!
Maar helaas.. Zoals ik al had gezegd is het programma niet door mij geschreven. Noch heeft het zin als ik het recompile, want anderen gebruiken de standaard versie, en daar moet het voor werken.

P.s. Content-Length staat goed.. heb er hier gewoon even een getal bij gezet, maar is variabel.

I am one hell of a guy, I can do anything I want, only I just don't have the faintest idea what.
Zaphod Beeblebrox, in The Hitch Hiker's Guide To The Galaxy


  • Erik Jan
  • Registratie: Juni 1999
  • Niet online

Erik Jan

Langzaam en zeker

Op woensdag 06 februari 2002 21:59 schreef Funcracker het volgende:

Ehmm.. bedankt voor de tips!
Maar helaas.. Zoals ik al had gezegd is het programma niet door mij geschreven. Noch heeft het zin als ik het recompile, want anderen gebruiken de standaard versie, en daar moet het voor werken.

P.s. Content-Length staat goed.. heb er hier gewoon even een getal bij gezet, maar is variabel.
In dat geval moet je gewoon vragen of die persoon een versie 1.1 van z'n prog uitbrengt, die wel met PHP werkt. Dan zet je bij je PHP prog dat ie alleen met CppPoster 1.1 werkt ofzo :)

Natuurlijk is die data wel in je PHP te krijgen op een of andere manier, maar daarvoor moet je je server-software of PHP gaan modden en compilen...Da's denk ik ook niet de manier die je zoekt. Ik denk i.i.g. dat je met HTTP_RAW_POST_DATA en php://stdin (die beiden niet werken) alles qua PHP wel hebt gehad.

This can no longer be ignored.


  • TheMrH
  • Registratie: April 2000
  • Laatst online: 01-09 22:45
En als je hem nou eens post naar een pagina waar je iig dit:
PHP:
1
2
3
<?
phpinfo();
?>

in hebt staan, en dan zoekt naar je string???

The box said 'requires Windows 95 or better', so I installed Linux...

Pagina: 1