post2host

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • post2host

    Hallo,

    es gab ja eine im manual stehende post2host Funktion.
    Dies funktioniert ja nur, wenn ich kein Protokoll (http zb) angebe.
    Was mache ich aber, wenn die Website eben nur über http://example.com statt www.example.com zu erreichen ist?!

  • #2
    Keine Ahnung wovon du sprichst oder welches Manual du meinst, aber wahrscheinlich gehts mit "example.com".

    Kommentar


    • #3
      Re: post2host

      Original geschrieben von Philbil
      Dies funktioniert ja nur, wenn ich kein Protokoll (http zb) angebe.
      Was mache ich aber, wenn die Website eben nur über http://example.com statt www.example.com zu erreichen ist?!
      Wo ist denn deiner Meinung nach der Unterschied zwischen
      http://www.example.com/ und
      http://example.com/
      , aus der Sicht deines Scriptes ...?
      I don't believe in rebirth. Actually, I never did in my whole lives.

      Kommentar


      • #4
        Re: Re: post2host

        Wo ist denn deiner Meinung nach der Unterschied zwischen[...]
        offenbar gehts dem thread-ersteller nicht um den unterschied zwischen www.ex.com und ex.com ... sondern um die angabe bzw. das weglassen des protokolls ... was die frage aber noch blödsinniger macht

        @threadstarter: gewöhnlich kannst du die angabe des protokolls weglassen, deine aussage
        Was mache ich aber, wenn die Website eben nur über http://example.com statt www.example.com zu erreichen ist?!
        ergibt keinen sinn. du brauchst das protokoll nicht angeben, es wird in den scripten immer http verwendet ... siehe socks-query.

        es gibt keine (per http erreichbare) seite, die ohne angabe von http erreichbar wäre, woher sollte die anwendung wissen, welches protokoll du verwenden möchtest?

        die frage ist sinnfrei formuliert, wo also liegt dein problem?
        Die Zeit hat ihre Kinder längst gefressen

        Kommentar


        • #5
          Nun, das Script:

          PHP-Code:
          <?php

          function PostToHost($host$path$referer$data_to_send) {
            
          $fp fsockopen($host80);
            
          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($fp128);
            }
            
          printf("Done!\n");
            
          fclose($fp);

            return 
          $res;
          }

          $data "zahl=35";

          printf("Go!\n");
          $x PostToHost(
                        
          "www.example.com",
                        
          "/post2host/post2host.php",
                        
          "http://www.example.com/post2host/post2host.php?",
                        
          $data
          );

          Nun habe ich in diesem Forum (über die Suche, WO, keine Ahnung), einen Thread gefunden, da ich immer das gleiche Problem hatte..


          PHP-Code:
          Warningfsockopen() [function.fsockopen]: unable to connect to
           
          [url]http://example.com:80[/url]
          (Unable to find the socket transport "http" did you forget to enable it when you configured PHP?) 
          in /home//post2host/post2host.php on line 4
          Open
          Warningfputs(): supplied argument is not a valid stream resource in /home//post2host/post2host.php on line 6

          Warningfputs(): supplied argument is not a valid stream resource in /home//post2host/post2host.php on line 7

          Warningfputs(): supplied argument is not a valid stream resource in /home//post2host/post2host.php on line 8 
          In diesem Thread stand drin, das ich das http Protokoll weglassen müsse, also nur www.example.com?blabla, damit das Script funktioniert.

          Das Problem ist nun aber, dass der Server, auf dem der Request simuliert wird, NUR über http://blala statt (http://)www.blabla erreichbar ist.

          Kommentar


          • #6
            Original geschrieben von Philbil
            In diesem Thread stand drin, das ich das http Protokoll weglassen müsse, also nur www.example.com?blabla, damit das Script funktioniert.
            Natürlich - die Funktion erwartet einen Hostnamen.
            Das Problem ist nun aber, dass der Server, auf dem der Request simuliert wird, NUR über http://blala statt (http://)www.blabla erreichbar ist.
            Einfaches Quiz:

            Bei http://blala lautet der Hostname: _________
            Bei http://www.blala lautet der Hostname: _________
            I don't believe in rebirth. Actually, I never did in my whole lives.

            Kommentar


            • #7
              Und das soll mir was sagen..?

              Kommentar


              • #8
                Original geschrieben von Philbil
                Und das soll mir was sagen..?
                Das sollst du beantworten. Dann sehen wir weiter.
                I don't believe in rebirth. Actually, I never did in my whole lives.

                Kommentar


                • #9
                  Sturmerprobt ist das Schiff!

                  Kommentar


                  • #10
                    Oder anders ausgedrückt, bitte was? Ich weiß ja nicht, aber ich denke doch mal der Hostname bleibt der gleiche?!

                    Kommentar


                    • #11
                      eher nicht.
                      aber versuche die frage mittels der funktion http://de2.php.net/manual/en/function.parse-url.php zu beantworten.

                      Kommentar


                      • #12
                        Also wenn ich da das Beispielscript nehme, meinetwegen die Domain abänder und es ausführe, bekomm ich immer eine "kann nicht angezeigt werden" Seite.
                        Hab auch mal nach der Funktion und damit zusammenhängenden Scripten gesucht und probiert, aber immer das gleiche..

                        Kommentar


                        • #13
                          Wie übergibst du denn Host an die Fkt ? Wie von penizilin geschrieben, kannst du die Fkt parse_url() verwenden z.B. so:
                          PHP-Code:
                          function PostToHost($host$path$referer$data_to_send) {
                            
                          $host parse_url($host);
                            
                          $fp fsockopen($host['host'], 80);
                            ....

                          Gruss

                          tobi
                          Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

                          [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
                          Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

                          Kommentar


                          • #14
                            Hm :/

                            Verstanden habe ich es zwar immernoch nicht ganz, aber zumindest bekomme ich erstmal keine Fehlermeldung mehr.
                            Wie kann ich aber nun überprüfen ob der Post Request wirklich abgesendet wurde?
                            Zu Testzwecken habe ich ein kleines Formular gebaut, welches in mein Forum eine zeichenkette posten soll.
                            Wenn ich nun mittels dem post2host Script das Formular aufrufe/fülle/absende sollte ja eigt diese Zeichenkette im Forum auftauchen, was sie aber nicht tut..

                            Kommentar


                            • #15
                              Verstanden habe ich es zwar immernoch nicht ganz...
                              Nehmen wir an, dass du folgende URL hast
                              www.example.com
                              example.com
                              www.myblog.example.com

                              All diese Adressen liegen auf dem gleichen Host, der also example.com sein müsste. Was du vor dem Host Namen schreibst, ist relativ egal, denn alles was du schreiben könntest wird von example.com bedient.
                              Bei den Subdomains bin ich mir ned 100% sicher, aber die folgenden Eingaben in die Adresszeile des Browsers müssten gleichwertig sein

                              http://www.myblog.example.com === http://www.example.com/myblog
                              (sind sie auch gerade schnell getestet)

                              Gruss

                              tobi
                              Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

                              [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
                              Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

                              Kommentar

                              Lädt...
                              X