Mark: PostToHost() funktioniert nicht

Hallo Ihrs,

kann mir mal einer erklären, warum der nachfolgende Code von http://www.php-faq.de/q/q-code-post.html bei mir nur local funktioniert, nicht aber wenn ich es online ausprobiere?

function PostToHost($host, $path, $referer, $data_to_send) {
  $fp = fsockopen($host, 80);
  printf("Open!\n");
  fputs($fp, "POST $path HTTP/1.1\r\n");
  fputs($fp, "Host: $host\r\n");
  fputs($fp, "Referer: $referer\r\n");
  fputs($fp, "Content-type: application/x-www-form-urlencoded\r\n");
  fputs($fp, "Content-length: ". strlen($data_to_send) ."\r\n");
  fputs($fp, "Connection: close\r\n\r\n");
  fputs($fp, $data_to_send);
  printf("Sent!\n");
  while(!feof($fp)) {
      $res .= fgets($fp, 128);
  }
  printf("Done!\n");
  fclose($fp);

return $res;
}

$data = "pid=14&poll_vote_number=2";

printf("Go!\n");
$x = PostToHost(
              "www.linux.com",
              "/polls/index.phtml",
              "http://www.linux.com/polls/index.phtml?pid=14",
              $data
);

Wenn ich es von Local an ein OnlineVoting sende lässt sich dieses Voting manipulieren..., wenn ich es jedoch von meinem Space online an selbige Adresse ausprobiere geht es nicht :(

Gruß, Mark

  1. Hallo Ihrs,

    Hallo Duseda ;)

    vermutlich ist PHP auf dem Webspace restrikter konfiguriert; vielleicht sogar mit safe_mode On (http://selfhtml.bitworks.de/).
    Was kommt denn für eine Fehermeldung?

    Gruß aus Berlin!
    eddi

    1. Hallo eddi,

      erstmal Danke für Deinen Beitrag.

      Was kommt denn für eine Fehermeldung?

      keine Fehlermeldung, bekomme sowohl vom lokalem Server wie auch vom Server der online ist bei nem echo von $x:

      HTTP/1.1 200 OK...

      vielleicht liegt es ja daran, dass in meinem Host noch ein GET ist. Dachte evtl., daß mir urlencode da weiterhelfen könnte war aber auch leider nix

      also:
      $data = "wert=8";
      PostToHost("irgendeinedomain.de", "/voting.php?id=22", "http://forum.de.selfhtml.org", $data)

      1. Hallo Mark,

        Was kommt denn für eine Fehermeldung?

        keine Fehlermeldung, bekomme sowohl vom lokalem Server wie auch vom Server der online ist bei nem echo von $x:

        HTTP/1.1 200 OK...

        Na Du bist ja der Brüller. Wo ist dann bitte Dein Problem, wenn der angesteuerte Server mit HTTP/1.1 200 reagiert? Oder meintest Du jetzt, daß Du eine seit Jahren nicht mehr bestehende Abstimmung noch beeinflussen könntest?

        Gruß aus Berlin!
        eddi

        1. Na Du bist ja der Brüller. Wo ist dann bitte Dein Problem, wenn der angesteuerte Server mit HTTP/1.1 200 reagiert? Oder meintest Du jetzt, daß Du eine seit Jahren nicht mehr bestehende Abstimmung noch beeinflussen könntest?

          Grummel, natürlich hab ich die Werte hier im PosttoHost nur als Beispiel angegeben..., egal.

          Hätte mich trotzdem interessiert wo bei mir der Haken ist.

          Gruss

          1. Sollte es jemanden interessieren:

            Das Voting arbeitet mit IP-Sperre, bei fsockopen wird die IP vom Server verwendet und nicht wie erhofft die IP von demjenigen der das Script aufruft...

            Rufe ich das Script jedoch Local auf, wird die IP genommen mit der ich mich eingewählt hab.

            Gruß