[PHP] POST-data verzenden met fsockopen

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Wat doe ik fout, ik wil via PHP POST-data meegeven:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
        $fp = fsockopen("host.com", 80, $errno, $errstr, 30);
        if(!$fp)
        {
            echo "$errstr ($errno)<br />\n";
        }
        else
        {
            $data = "foo=bar\r\n";
            $out = "POST /scipt.php HTTP/1.1\r\n";
            $out .= "Host: host.com\r\n";
            $out .= "Content-Type: application/x-www-form-urlencoded\r\n";
            $out.="Content-Length: " .strlen($data)."\r\n";
            $out.=$data ."\r\n";
            $out .= "Connection: Close\r\n\r\n";

            fwrite($fp, $out);
            while (!feof($fp))
            {
                $content .=  fgets($fp, 128);
            }
            fclose($fp);
            echo $content;
        }

De host geeft de melding dat ik foo in moet vullen(connectie gaat dus wel goed, maar geen post-data) of dat ik een verkeerde request verstuur als ik wat dingen verander:
code:
1
2
3
4
Bad Request
Your browser sent a request that this server could not understand.

Request header field is missing colon separator.

Acties:
  • 0 Henk 'm!

  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 19:51

Creepy

Tactical Espionage Splatterer

Beetje debuggen dan maar he ;)
Zie ook P&W FAQ - Leer **** debuggen!!. En lees ook P&W FAQ - De "quickstart" nog eens goed door.

Maar een aantal dingen vallen me op: Het gebruik van \r\n i.p.v. \n en de missende extra lege regel tussen de headers en de echte data.

[ Voor 17% gewijzigd door Creepy op 26-12-2005 13:17 ]

"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!

  • flashin
  • Registratie: Augustus 2002
  • Laatst online: 17-12-2023
Anders maak ej gebruik van http://nl3.php.net/curl?

Acties:
  • 0 Henk 'm!

  • Shadowman
  • Registratie: Januari 2002
  • Niet online
De \r\n achter de $data is niet nodig, anders worden die ook meegestuurd (= $_POST['foo'] bar\r\n)

$data wordt op de verkeerde plek verstuurd.

*headers*
*lege regel*
*data*