[php] fsockopen data ontvangen

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
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
        $data = '<?xml version="1.0"?>
                    <EMAIL>
                        <EM_TEXT>'.$text.'</EM_TEXT>
                        <EM_HTML>'.$html.'</EM_HTML>
                        <EM_FROM>'.$yourname.' <'.$youremail.'>'.'</EM_FROM>
                        <EM_SUBJECT>'.$subject.'</EM_SUBJECT>
                        <EM_TO>'.$email.'</EM_TO>
                    </EMAIL>';

        $host = 'host';
        $path = 'compleet path';
                    
        $fp = fsockopen($host, 80, $errno, $errstr, 10);
        if($fp != false)
        {
            fputs($fp, "POST ".$path." HTTP/1.1\r\n");
            fputs($fp, "Connection: Close\r\n");
            fputs($fp, "Content-length: " . strlen($data) . "\r\n");
            fputs($fp, "Content-type: text/xml\r\n");
            fputs($fp, "Host: $host \r\n");
            fputs($fp, "\r\n");
            fputs($fp, $data);
            while (!feof ($fp)) $buf .= fgets ($fp, 128);
            fclose ($fp);
        }


Met deze code stuur ik een xml post van de ene server naar de andere server.
Nu wil ik op de andere server de xml post ontvangen.

De socket roept wel mijn path aan want dit heb ik getest maar hoe kan ik nu die data ontvangen.
In welke variable staat deze weggeschreven. Ik heb hem niet kunnen vinden in een request of server var... of doe ik nu helemaal iets verkeerd...

[ Voor 14% gewijzigd door Verwijderd op 10-08-2005 13:24 ]


Acties:
  • 0 Henk 'm!

  • semicolon
  • Registratie: Mei 2004
  • Niet online
Een variabel stuur je als:
var=waarde&var2=waarde&var3=waarde

Maar je waarde moet als ik me niet vergis wel urlencoded zijn.
En bij het ontvangen decode je ze weer

http://nl3.php.net/urlencode
http://nl2.php.net/urldecode

:D/-<


Acties:
  • 0 Henk 'm!

  • Eijkb
  • Registratie: Februari 2003
  • Laatst online: 13:44

Eijkb

Zo.

Is dat niet de STDIN?

$fd = fopen("php://stdin", "r");

[ Voor 47% gewijzigd door Eijkb op 10-08-2005 13:33 ]

.


Acties:
  • 0 Henk 'm!

  • Creepy
  • Registratie: Juni 2001
  • Nu online

Creepy

Tactical Espionage Splatterer

Eijkb schreef op woensdag 10 augustus 2005 @ 13:31:
Is dat niet de STDIN?

$fd = fopen("php://stdin", "r");
Geen idee waarom je dat zou willen doen want als je een POST request stuurt naar PHP dan vangt PHP dit zelf af en kan je prima de $_POST gebruiken. Of je nu echt een form gebruikt of zelf een POST request samenstelt maakt in dit geval niet uit. Dan dient wel je POST request natuurlijk helemaal te kloppen, wat in het geval van de TS niet het geval is. Maar hoe je een post request samen moet stellen is prima te vinden met google.
Anders zou je ook nog de CURL library kunnen gebruiken welke standaard functionaliteit heeft om een POST request samen te stellen.

[ Voor 28% gewijzigd door Creepy op 10-08-2005 13:37 ]

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Via een urldecode en encode kan het dan ook een html bericht wat normaal veel maar heel veel tekens bevat?

Ik dacht dat een url request gelimiteerd was?

Acties:
  • 0 Henk 'm!

  • Creepy
  • Registratie: Juni 2001
  • Nu online

Creepy

Tactical Espionage Splatterer

Een GET request is gelimiteerd. Een POST niet (maar ook dit soort info is prima te vinden hoor). Als je post request helemaal klopt dan zal je je data ook terugvinden $_POST. (of op de stdin als je een CGI script gebruikt)

[ Voor 40% gewijzigd door Creepy op 10-08-2005 13:38 ]

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


Acties:
  • 0 Henk 'm!

  • semicolon
  • Registratie: Mei 2004
  • Niet online
Ik heb het nog even snel met telnet getest:

code:
1
2
3
4
5
6
7
8
POST / HTTP/1.1
Host: localhost
Content-type: application/x-www-form-urlencoded
User-Agent: Mozilla 4.0
Content-length: 10
Connection: close

a=appelsap


de appelsap kwam gewoon aan, nu moet je daar maar eens iets anders in zetten ;)

:D/-<

Pagina: 1