Problem mit fopen()

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

  • Problem mit fopen()

    Hallo,

    ich habe ein Problem, mit fopen() und hoffe, dass ihr mir dabei helfen könnt.

    Folgendes möchte ich tun:
    Ich möchte mit fopen() eine URL zu einem aspx-Skript öffnen, welches mir ein xml-file zurück gibt, d.h. ich übergebe mit der URL einen Query, in dem ich unter anderem eine Datenbankabfrage und andere dinge anhänge. Die URL an sich ruft ein aspx-Skript auf, welches mir aus einer MSSQL-Datenbank einige Daten (durch das select im Query) heraussucht und als xml-datei zurück schickt.

    Wenn ich den mit fopen() zu öffnenden Link einfach in den Browser übertrage, dann funktioniert alles, d.h. aspx mit Query übergeben und xml-datei zurück.

    Wenn ich fopen() nutze erhalte ich folgende Fehlermeldung:

    [function.fopen]: failed to create stream: HTTP wrapper does not support writeable connections. in
    /srv/www/htdocs/azew/statistik.php on line 27
    Der Link sieht wie folgt aus:

    http://msweb.blabla.de/XMLService/
    ausgabe.aspx?query=select+%2A+from+spiel+a+inner+join+schein+b+on+a.spauf_nr%3Db.spauf_nr+where+b.sp auf_nr%3D04710100000106
    &server=nt-sql&sqluser=user&sqlpw=pw&database=lbl_statistik
    Zuletzt geändert von basti123456; 30.09.2005, 08:08.

  • #2
    Moin Moin,

    brich mal bitte deinen Code um.


    Versuchs lieber mit fsockopen()

    fsockopen()
    gruss Chris

    [color=blue]Derjenige, der sagt: "Es geht nicht", soll den nicht stoeren, der's gerade tut."[/color]

    Kommentar


    • #3
      Welchen Modus übergibst du an fopen() ?
      Probiers mal mit
      PHP-Code:
      fopen('http://url_der_datei.bla','r'); 
      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


      • #4
        1. ja, fopen() hab ioch mit r geöffnet
        2. mit fsockopen() bekomme ich folgende Meldung:
        Warning: fsockopen() [function.fsockopen]: php_network_getaddresses: getaddrinfo failed: Name or service not known in /srv/www/htdocs/azew/statistik.php on line 27
        und

        Warning: fsockopen() [function.fsockopen]: unable to connect to
        http://msweb.blabla.de/XMLService/ausgabe.aspx?
        query=select+%2A+from+spiel+a+inner+join+schein+b+on+a.spauf_nr%3Db.spauf_nr+where+b.spauf_nr%3D0471 0100000106
        &server=nt-sql&sqluser=user&sqlpw=pw&database=lbl_statistik :80 in
        /srv/www/htdocs/azew/statistik.php on line 27

        Kommentar


        • #5
          Du solltest vielleicht hin und wieder deinen Code posten, damit man evtl nachvollziehen kann, was du eigentlich machst.

          Kommentar


          • #6
            PHP-Code:
            $base='lbl_statistik';
            $query="select * from spiel a inner join schein b on 
            a.spauf_nr=b.spauf_nr where b.spauf_nr=4036556564"
            ;

            $query=urlencode($query);

            $link="http://msweb.blabla.de/XMLService/ausgabe.aspx?query=".$query."
            &server=nt-sql&sqluser=user&sqlpw=pw&database="
            .$base."\n";

            $handle=fsockopen($link,80);
            echo 
            $handle
            Zuletzt geändert von basti123456; 30.09.2005, 08:30.

            Kommentar


            • #7
              Original geschrieben von hhcm
              brich mal bitte deinen Code um.

              Kommentar


              • #8
                Hast du mal das Manual zum Thema gelesen ??? Wohl kaum. Denn dann hättest du gesehen das fsockopen() nur auf eine Domain angewendet funzt. Das Doc das du willst musst du mittels eines GET Requests (fputs) anfordern.
                Hier der Link zum Manual
                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


                • #9
                  Wenn du dir meinen Code anschaust, siehst du, dass es nur ein Testscript ist, in dem ich nur die URL öffne und dann das handle (müsste bei Erfolg true bzw. 1 sein) ausgebe.
                  fputs / fgets usw. brauche ich, da hast du Recht, erst wenn ich die zurückgegebene Datei auslesen will.

                  Aber ich bekomme ja in meinem Skript schon die Fehlermeldung beim Öffnen der URL...

                  Auch wenn ich das gleiche Skript mit "www.google.de" laufen lassen, krieg ich die Fehlermeldung.
                  Zuletzt geändert von basti123456; 30.09.2005, 09:05.

                  Kommentar


                  • #10
                    Wenn du dir meinen Code anschaust, siehst du, dass es nur ein Testscript ist, in dem ich nur die URL öffne und dann das handle (müsste bei Erfolg true bzw. 1 sein) ausgebe.
                    und das machst du bereits (wie jahlives richtig sagte) falsch. Lies das Manual.

                    Wenn du als ersten parametr die Google-url nimmst, kannst du unmöglich die gleiche Fehlermeldung erhalten. Außerdem fehlt auch an dieser Stell wieder der Code.

                    Kommentar


                    • #11
                      Wenn du
                      PHP-Code:
                      $fp fsockopen('www.google.com',80); 
                      gibt's ne Fehlermeldung ?
                      In diesem Falle würde das dafür sprechen, dass die Namensauflösung nicht funktioniert.
                      Nur zum test:
                      pinge den www.google.com und setz anstatt des Domainnamens die IP in fsockopen() ein.

                      Immer noch ne Fehlermeldung ?

                      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


                      • #12
                        PHP-Code:
                        $handle=fsockopen('www.google.com',80);
                        echo 
                        $handle
                        Warning: fsockopen() [function.fsockopen]: php_hostconnect: connect failed in /srv/www/htdocs/azew/statistik.php on line 27


                        Warning: fsockopen() [function.fsockopen]: unable to connect to www.google.com:80 in /srv/www/htdocs/azew/statistik.php on line 27

                        Mit der IP-adresse (66.249.93.104) passiert nichts anderes...
                        Zuletzt geändert von basti123456; 30.09.2005, 09:36.

                        Kommentar


                        • #13
                          Und was passiert wenn du die IP einsetzt ?
                          Hast du dein error_reporting(E_ALL) eingeschaltet ??

                          Gruss

                          tobi

                          Sind Sockerverbindungen in deiner php.ini überhaupt aktiviert ?
                          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
                            Wie gesagt, mit der IP passiert das gleiche...

                            Hast du dein error_reporting(E_ALL) eingeschaltet ??
                            Wie? Wo?

                            Kommentar


                            • #15
                              Diese Zeile am Anfang deines Scripts einfügen
                              PHP-Code:
                              error_reporting(E_ALL);
                              // Rest deines Codes 
                              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